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

    [PHP] Problemi con query

    Ciao ragazzi,
    ho un problema con una query.

    Vorrei fare in modo che se un utente ha già votato un articolo non possa rifarlo.

    Codice PHP:
    $result mysql_query("SELECT id_img = '$_POST[id]' FROM voto_img WHERE utente = '$user[username]'");

        if(
    mysql_num_rows($result) != 1) {
    .... 
    Ma non mi fa mai votare! E' come se anche se per un id non ci sia l'utente $user[username]' sia restituita una riga vuota.

    Dove sbaglio?

    Grazie

  2. #2
    La query e' sbagliata.

    aggiungi la segnalazione di errore mysql_error() per vederla.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    L'ho provata nel campo sql di php myadmin e non mi da errori...
    Dov'è l'errore?

  4. #4
    codice:
    SELECT id_img = '$_POST[id]' 
    FROM voto_img 
    WHERE utente = '$user[username]'

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    guarda che è uguale...



    io credo che il problema stia nel fatto che cmq questa query restituisce una riga anche se non c'è il voto di quell'utente. Che mi dici?

    :master:

  6. #6
    contento tu... figurati io.

    usa count(*) cosi' il risultato sara' sempre 1 riga con scritto il numero delle righe contate. 0 o 1000 che siano.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    Grazie mille, lo provo subito e modifico anche la query se è più corretta quella sintassi...

    Ciao e grazie

  8. #8
    Originariamente inviato da pezzo
    Grazie mille, lo provo subito e modifico anche la query se è più corretta quella sintassi...

    Ciao e grazie
    Quella sintassi rende 0 = FALSE oppure 1 se TRUE. La puoi usare se sai quello che cerchi. Usare where campo != 1 per dire che ha gia' votato sappi che anche 2 e' diverso da 1 e non solo 0.

    Bisogna vedere bene scopo e composizione della tabella. Se la tabella voto e' composta da user e immagine, ti converrebbe una query del genere:
    codice:
    SELECT COUNT(*) AS tot
    FROM voto_img
    WHERE utente = 'username'
    AND id_img = 'id'
    poi verifichi il numerello ricevuto nel campo "tot".

    se zero non c'e' alcun record.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.