Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Date un'occhiata? Problemi in Update db

    Ciao a tutti.
    Ho dei problemi ad aggiornare un paio di campi del database.
    [Essendo in fase di testing ci sono diverse cosine commentate..]
    codice:
     sql_voto="SELECT * FROM notizie WHERE id=1612"'&id_news
     rs.Open sql_voto, conn,3,3
     'If NOT rs.EOF Then
     ' If rs.fields("voto_ip")=Request.ServerVariables("REMOTE_ADDR") Then
      ' alert="Spiacente hai già votato"
      'Else
       voto_db=rs.fields("voto")
       If voto_db="" Then
        voto_db=0
       End If
       voto_votanti_db=rs.fields("voto_votanti")
       If voto_votanti="" Then
        voto_votanti=0
       End If
       rs.fields("voto")=(voto_db+voto_news)
       rs.fields("voto_votanti")=(voto_votanti_db+1)
       'rs.fields("voto_ip")=Request.ServerVariables("REMOTE_ADDR")  
       Response.Write("Fatto!! Voto:" & (voto_db+voto_news))
       rs.Update
     ' End If
     'End If
     rs.Close
    Ma non vedo nulla: nella pagina non ho errori, vedo correttamente l'html/pagina senza però le variabili:
    "Fatto!! Voto:"

    Cosa c'è che non va? Io non capisco..

    Grazie mille!!

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Riabilita le righe che hai remmato e metti in coda un response.end

    Roby

  3. #3
    Grazie Roby,
    non ho mai usando un Response.End()
    dove lo metto esattamente, alla fine degli If ? O prima?
    E a cosa serve esattamente il Response.End() ?

    Grazie mille =)

    Riky

  4. #4
    Prova così:

    codice:
    sql_voto="SELECT * FROM notizie WHERE id=1612"'&id_news
     rs.Open sql_voto, conn,3,3
     If NOT rs.EOF Then
      If rs.fields("voto_ip")=Request.ServerVariables("REMOTE_ADDR") Then
       alert="Spiacente hai già votato"
      Else
       voto_db=rs.fields("voto")
       If voto_db="" Then
        voto_db=0
       End If
       voto_votanti_db=rs.fields("voto_votanti")
       If voto_votanti="" Then
        voto_votanti=0
       End If
       rs.fields("voto")=(voto_db+voto_news)
       rs.fields("voto_votanti")=(voto_votanti_db+1)
       rs.fields("voto_ip")=Request.ServerVariables("REMOTE_ADDR")  
       Response.Write("Fatto!! Voto:" & (voto_db+voto_news))
       response.end 
       rs.Update
      End If
     End If
     rs.Close
    "response.end" blocca l'elaborazione del codice asp della pagina; in questo caso blocca l'elaborazione nel punto in cui è impostata (ovvero prima dell'update).
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  5. #5
    In effetti ho un bello stop
    codice:
    [..]
    </head>
    
    <body>Fatto!! Voto:
    Però ahimè, il response.write delle variabili è sempre desolatamente vuoto..

    Cos'è che non va??
    Ovviamente la sringa per le connessione al database è a posto e funzionante... bhò??

    Riky

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    voto_news non lo recuperi e quindi non può stampartelo.

    Roby

  7. #7

    in effetti non l'ho scritto sul post. Ma mi arriva da un querystring....

    mmh :master:

  8. #8
    Se ti arrivasse da un querystring, te lo dovrebbe comunque stampare, se non te lo stampa, non arriva.
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  9. #9

    Trova l'ordine corretto..

    Ho risolto il problema:
    ho aggiunto questi due campi in un database con già 1649 tuple..
    Sebbene abbia messo come predefinito per due campi numerici lo '0', nei primi 1649 non c'è: con il risultato che non mi calcola, e mi da problemi..
    Cosa conviene fare:
    un piccolo sql per riempire gli spazi,
    un controllo asp del tipo se il campo="" allora campo=0,
    o attivare questo update solo per tuple con id>1649?

    Io opterei per la prima... voi?
    Un codice per aggiornare potrebbe essere
    codice:
    sql_edit="Select top 1649 * from notizie ORDER BY id asc"
    rs.Open sql_edit,conn,3,3
    Do While Not rs.EOF
    rs.fields("voto")=0
    rs.fields("voto_votanti")=0
    rs.update
    rs.movenext
    Loop
    rs.close

    Grazie ancora per l'aiuto!

    Riky

  10. #10
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    No, apri il db ed esegui direttamente lì dentro una query di questo tipo:

    codice:
    update notizie set voto = 0, voto_votanti = 0 where id < 1649
    Roby

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.