Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    439

    aggiornare campo si/no su database access

    ...come posso fare per far si che quando viene visualizzata questa pagina (contenente questo codice):

    codice:
     
    <%
    Set conn = Server.CreateObject("ADODB.Connection")
    conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("/mdb-database/dbase.mdb")
    
    set oRs= Server.CreateObject("ADODB.Recordset")
    strsql="SELECT * FROM msgPvt WHERE msgPvt.idmsgpvt="& Request.Querystring("idmsgpvt") &" "
    
    oRs.Open strsql, Conn
    %>
    e visualizzata attraverso questo link:

    codice:
     
    <% Response.Write "<a href=/incontri/MessaggiDettaglioArrivatiDETTAGLIO.asp?idmsgpvt=" & (oRs.Fields.Item("idmsgpvt").Value) & ">" & "Leggi" & "</a>"%>
    far mettere la spunta nel campo letto (campo si/no) del database?

    Grazie

  2. #2
    Se quando esegui il codice sopra significa che quello che dici è stato visualizzato basta che aggiungi

    oRs.Open strsql, Conn,1,3 (questo lo sostituisci al tuo)
    oRs("visto")=true
    ors.Update

  3. #3
    basta che inserisci sql=update nometab set campo = valore

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    439
    Si ha funzionato!

    Visto che con access ci sapete fare ... io ci sto sbattendo la testa da molto tempo senza trovare soluzione...

    Allora provo a spiegarmi. Ho creato una pagina dove vengono visualizzati tutti i messaggi che una persona ha ricevuto da un'altra... in questa pagina oltre a far visualizzare i messaggi che io ho ricevuto da questa persona, vorrei far visualizzare anche i messaggi che io ho inviato a quella persona ... come posso fare?

    Per arrivare alla pagina della visualizzazione uso questo link:

    codice:
    <% Response.Write "<a href=/incontri/MessaggiDettaglioArrivati.asp?idAutore=" & (oRs.Fields.Item("idAutore").Value) & ">" & "Leggi" & "</a>"%>
    che visualizza una pagina con questo codice:

    codice:
    <%
    Set conn = Server.CreateObject("ADODB.Connection")
    conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("/mdb-database/dbase.mdb")
    
    set oRs= Server.CreateObject("ADODB.Recordset")
    strsql="SELECT * FROM msgPvt WHERE msgPvt.idAutore="& Request.Querystring("idAutore") &" "
    oRs.Open strsql, Conn
    %>
    i campi del database sono i seguenti:
    idmsgpvt (contatore)
    idAutore (numerico)
    usernameAutore (testo)
    idDestinatario (numerico)
    usernameDestinatario (testo)
    dataMsg (data)
    oggettoMsg (testo)
    corpoMsg (testo)
    letto (si/no)

  5. #5
    Utente di HTML.it L'avatar di buji
    Registrato dal
    Nov 2002
    Messaggi
    178
    Originariamente inviato da Marco7303
    codice:
    <% Response.Write "<a href=/incontri/MessaggiDettaglioArrivati.asp?idAutore=" & (oRs.Fields.Item("idAutore").Value) & ">" & "Leggi" & "</a>"%>
    che visualizza una pagina con questo codice:

    codice:
    <%
    Set conn = Server.CreateObject("ADODB.Connection")
    conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("/mdb-database/dbase.mdb")
    
    set oRs= Server.CreateObject("ADODB.Recordset")
    strsql="SELECT * FROM msgPvt WHERE msgPvt.idAutore="& Request.Querystring("idAutore") &" or (msgPvt.idAutore="& Id di chi è connesso &" and msgPvt.idDestinatario="&request.querystring("idAutore")&")"
    oRs.Open strsql, Conn
    %>


    i campi del database sono i seguenti:
    idmsgpvt (contatore)
    idAutore (numerico)
    usernameAutore (testo)
    idDestinatario (numerico)
    usernameDestinatario (testo)
    dataMsg (data)
    oggettoMsg (testo)
    corpoMsg (testo)
    letto (si/no)
    Prova così... magari funziona
    Buji

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    439
    Hey... ha funzionato!
    ...adesso mi stavo imbattendo in quest'altro problema... puoi vedere se hai una soluzione anche per questo? (GRAZIE in anticipo)

    Nella pagina dove vengono visualizzati i messaggi (o corrispondenza) ho inserito anche una scritta se ci sono messaggi non letti corrispondenti a ogni singola persona...
    Il problema è che questa pagina viene visualizzata attraverso una distinct perchè volevo mostrare un solo username (anche se quell'username mi ha inviato 10 messaggi) quindi basterebbe un solo messaggio non letto che deve comparire accanto all'username la scritta messaggi non letti...

    Allora la pagina la visualizzo con questo script:

    codice:
    set oRs= Server.CreateObject("ADODB.Recordset")
    strsql="SELECT DISTINCT msgPvt.usernameAutore, msgpvt.idAutore FROM msgPvt WHERE msgPvt.idDestinatario="& Session("ID_access")&""
    oRs.Open strsql, Conn
    
    set mRs2= Server.CreateObject("ADODB.Recordset")
       strsqlmRs2="SELECT * FROM msgPvt"
    	  mRs2.Open strsqlmRs2, Conn
    e la scritta se ci sono messaggi la visualizzo con questo codice all'inetrno di un ciclo - if not oRs.eof then -

    codice:
    <% if mRs2.Fields.Item("letto").Value=True Then Response.Write("NON ci sono nuovi messaggi") else Response.Write("Ci sono nuovi messaggi") & "
    "%>
    Il problema che in questo modo se c'è un solo messaggio non letto ... vale per tutti ...

    Ho provato ad aggiungere msgpvt.letto in set oRs però a quel punto se leggo un messggio solamente e un altro no, l'username della persona viene visualizzato due volte...

    Quindi... qual è la procedura corretta? Oppure come posso ovviare facendo vedere una sola volta l'username?

  7. #7
    Utente di HTML.it L'avatar di buji
    Registrato dal
    Nov 2002
    Messaggi
    178
    Potresti fare qualcosa tipo:
    1 - Aggiungi l'id del messaggio nella prima query
    2 - Fai una scansione del primo recordset
    codice:
    ' Dichiari una variabile checontiene il numero di msg letti
    nLetti=0
    while not Ors.eof
       nId=Ors.fields("idmsgpvt")
       strsqlmRs2="SELECT letto FROM msgPvt idmsgpvt="&nId
       mRs2.Open strsqlmRs2, Conn
       if mRs2.field("letto")=true
           nLetti=nLetti+1
       end if
       mRs2.close
       Ors.movenext()
    wend
    3 - Alla fine testi la variabile nLetti.
    Se nLetti=0 hai messaggi non letti, se nLetti>0 non ci sono msg non letti

    Dovrebbe funzionare... Almeno spero
    Buji

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    439
    Ciao!
    Scusmi ho letto solamente adesso (aprendo per caso) non mi è arrivata l'email che mi diceva che qualcuno mi aveva risposto...

    ...non ho capito bene come devo procedere...

    Dove devo scrivere lo script che mi hai postato?

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    439
    Buji ... potresti aiutarmi a capire lo script che mi hai scritto per favore? Non sono riuscito ad implementarlo!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.