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

    mysql_num_rows apparentemente non funzionante

    Salve a tutti,
    ho questo codice PHP che controlla se un nickname esiste già.
    eccolo qui:
    Codice PHP:
    $query='SELECT **, **, ** FROM ** WHERE **=\'' .$_POST['**']. '\' OR **=\'' .$_POST['**']. '\' OR **=\'' .$_POST['**']. '\''
    $result=mysql_query($query$db); 
    exit(); 
    if (
    mysql_num_rows($result) == 0){ }
    else{ 
    $error 'This Svegethcraft username already exist. Contact an admin if you really are ' .$_POST['NUSvegeth']. '.'; } 
    Ma non funziona: ho provato a mettere un parametro che esiste già nel DB, ma non funziona proprio.
    Potreste darmi una mano??

    Grazie
    My website: jymmy097.altervista.org

  2. #2
    Che fai? speri nei miracoli????

    Codice PHP:
    ......
    $result=mysql_query($query$db); 
    exit(); 
    ...... 
    Non ti chiedi che fa quel EXIT() ????

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

  3. #3
    quello l'ho messo io per verificare.
    anche senza l'exit non funziona...
    My website: jymmy097.altervista.org

  4. #4
    Originariamente inviato da jymmy097beta
    quello l'ho messo io per verificare.
    anche senza l'exit non funziona...
    allora non siamo per nulla certi del tuo script.

    Metti la query reale. tutti quegli * valgono tanto come l'exit.

    Giurin giureto solennemente di non copiare il nome dei tui campi e manco il nome delle variabili.

    Spiega anche cos'e' che non funziona....

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

  5. #5
    Originariamente inviato da piero.mac
    Spiega anche cos'e' che non funziona....
    ho riletto stamane.... usa i doppi apici per delimitare la query e gli apici per le stringhe all'interno della query. Inoltre passare direttamente il contenuto di $_POST alla query non e' consigliabile. Meglio controllare sempre il contenuto dei campi ed eventualmente passare la stringa a mysql_real_escape_string()

    L'errrore che ricevi lo dovresti visualizzare con mysql_error() al posto della tua stringa (poco significativa ai fini di determinare l'errore) almeno durante il debug.

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

  6. #6
    Originariamente inviato da piero.mac
    Giurin giureto solennemente di non copiare il nome dei tui campi e manco il nome delle variabili.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  7. #7
    Ho riscritto il codice PHP:

    Codice PHP:
    $user $_POST['Username'];
       
    $email $_POST['email'];
       
    $NUSvegeth $_POST['NUSvegeth'];
       
    $query="SELECT Username, Email, NUSvegeth FROM SUsers WHERE Username='" .mysql_real_escape_string($users). "' OR Email='" .mysql_real_escape_string($email). "' OR NUSvegeth='" .mysql_real_escape_string($NUSvegeth). "'";
       
    $result=mysql_query($query$db);
       if (
    mysql_num_rows($result) == 0){

       }else{
          
    $error 'This Svegethcraft username already exist. Contact an admin if you really are ' .$_POST['NUSvegeth']. '.';
       }
       echo 
    $error;
       exit(); 
    l'exit e l'echo sono sempre per debug.

    Io non ottengo però errori, mi sono spiegato male: $error è vuota se metto in $user uno username già esistente.
    Ho provato anche a eseguire la query ottenuta su PHPmyadmin e funziona!!
    A quanto pare è mysql_num_rows che non funziona bene....

    Non so come fixare l'errore....
    My website: jymmy097.altervista.org

  8. #8
    Prova modificando così il codice:

    Codice PHP:
    ...
       
    $query="SELECT Username, Email, NUSvegeth FROM SUsers WHERE Username='" .mysql_real_escape_string($users). "' OR Email='" .mysql_real_escape_string($email). "' OR NUSvegeth='" .mysql_real_escape_string($NUSvegeth). "'";
       echo 
    $query;
       
    $result=mysql_query($query$db) or die ("Error: ".mysql_error());
    ... 
    e vedi se la query che ti stampa è corretta e soprattutto se ti viene fuori qualche errore.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

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 © 2024 vBulletin Solutions, Inc. All rights reserved.