Visualizzazione risultati 1 fino 14 di 14

Discussione: QUERY non funziona!

  1. #1
    alino74 non è connesso Utente giovane
    Data registrazione
    22-06-2009
    Messaggi
    38

    Predefinito QUERY non funziona!

    Ciao raga!

    Stè cercando di creare uno script in php x login e password.

    Utlizzo un DB (sul server altervista) che ha una tabella 'login' i cui campi sono:
    'id_login', 'nome_utente' e 'password'.

    Lo script (che ricere username e password da un form html) apre una connessione al server MySql, accede al DB e alla tabella 'login' con successo; ma non trova MAI nessun utente!

    Codice PHP:
    $user=$_POST["username"];
    $passwd=$_POST["password"];

    $query = "SELECT * FROM login WHERE nome_utente=$user AND password=$passwd";
    $result=$data->query($query);

    if (!
    $result) {
    echo
    "utente non registrato!";
    }
    else {
    echo
    "TROVATO !!!";
    }
    Help!
    Ultima modifica di karl94 : 28-05-2011 alle ore 12.16.23 Motivo: Formattazione del codice

  2. #2
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,259

    Predefinito

    Dipende molto da cosa faccia il metodo $data->query(). Esiste poi, $data è stato creato prima?

    Per sicurezza, magari stampati anche mysql_error().

  3. #3
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    devi racchiudere tra gli apici le variabili nella query:
    Codice PHP:
    $query = "SELECT * FROM login WHERE nome_utente='$user' AND password='$passwd'";
    comunque devi criptare la password con md5() in fase di registrazione, e utilizzi la stessa funzione md5() per il controllo....
    Ultima modifica di EuroSalute : 28-05-2011 alle ore 12.28.20 Motivo: info...
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  4. #4
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Inoltre devi correggere la query così:
    Codice PHP:
    $query = "SELECT * FROM login WHERE nome_utente='$user' AND password='$passwd'";

  5. #5
    alino74 non è connesso Utente giovane
    Data registrazione
    22-06-2009
    Messaggi
    38

    Predefinito

    Dunque:
    $data->query() è perchè ho creato una mia classe per l'utilizzo di MySql e query è una funzione che richiama, appunto, mysql_query().

    Questo è l'err:
    1054: Unknown column 'admin' in 'where clause'
    Ho corretto inserendo gli apici,
    ma così trova sempre l'utente!
    Ultima modifica di karl94 : 28-05-2011 alle ore 12.48.06 Motivo: Formattazione del messaggio di errore

  6. #6
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,259

    Predefinito

    Citazione Originalmente inviato da alino74 Visualizza messaggio
    Dunque:
    $data->query() è perchè ho creato una mia classe per l'utilizzo di MySql e query è una funzione che richiama, appunto, mysql_query().
    Si, immaginavo, ma cosa restituisce la funzione? E' semplicemente una chiamata a mysql_query(), oppure fa fetch_row o simile, e magari ti restituisce un array?

  7. #7
    alino74 non è connesso Utente giovane
    Data registrazione
    22-06-2009
    Messaggi
    38

    Predefinito

    E' semplicemente una chiamata a mysql_query()
    e restituisce l'identificativo di risorsa dato da msql_query() stessa, se a buon fine, oppure false in caso di errore.

  8. #8
    L'avatar di binarysun
    binarysun non è connesso Utente storico
    Data registrazione
    02-07-2004
    Messaggi
    2,017

    Predefinito

    L'errore sembra nell'esecuzione della query.
    Prima di eseguire la query cerca di farti restituire la variabile query per vedere che non ci siano errori.
    echo $query;
    "L'intelligenza è una pianta che va curata continuamente.
    Dovreste vedere com'è bello, il mio bonsai."
    Rat-man®

    [Gradient Text]
    [Su che server sei?]
    ->flickr

  9. #9
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,259

    Predefinito

    Citazione Originalmente inviato da alino74 Visualizza messaggio
    E' semplicemente una chiamata a mysql_query()
    e restituisce l'identificativo di risorsa dato da msql_query() stessa, se a buon fine, oppure false in caso di errore.
    Perfetto, quindi se la query è sintatticamente sbagliata, o non riesce ad eseguirla, ti restituisce false (quello che succedeva prima); se la query è corretta e può essere eseguita, ti restituisce una risorsa, che punta ad un set di risultati vuoto o pieno, ma che ha valore booleano sempre vero (quello che ti succede adesso).

    Il valore di ritorno non ti dice quindi nulla a proposito dell'utente che ti interessa, devi andare a vedere i dati veri e proprii restituiti dalla query.

  10. #10
    alino74 non è connesso Utente giovane
    Data registrazione
    22-06-2009
    Messaggi
    38

    Predefinito

    ma.....non capisco....
    la query eseguita con il comando SELECT non seleziona, appunto, SOLO i record che
    soddisfano la condizione WHERE ?
    Nel mio caso richiedo solo l'utente che abbia nome_utente & password = a quelli inseriti tramite il form html...
    Altrimenti, cosa la faccio a fare la query ?!?!?!
    x cui, se la query va a buona fine, dovrei aspettarmi restituita una risorsa che contiene, appunto, solo una entrata: l'utente che si è loggato ?!?!?!

  11. #11
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,259

    Predefinito

    La query funziona correttamente, se tu che non sai usare la funzione mysql_query(). Questa ti restituisce una "risorsa" ovvero un collegamento al risultato della query, oppure false se la query non è andata a buon fine.

    La risorsa non è il risultato. Quello devi andarlo a prendere con mysql_fetch_row, mysql_num_rows o simile.

    Tempo di leggersi bene la documentazione, oppure un tutorial sull'argomento

  12. #12
    alino74 non è connesso Utente giovane
    Data registrazione
    22-06-2009
    Messaggi
    38

    Predefinito

    ok, forse insisto, ma....
    allora la query a cosa serve? Non la uso forse x selezionare SOLO! una parte dei tanti, immensi dati che si trovano dentro al DB?

    Le funzioni che dite, non le uso x lavorare su dei valori già selezionati dalle query?

  13. #13
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    resource mysql_query ( string $query [, resource $link_identifier ] )

    Return Values

    For SELECT, SHOW, DESCRIBE, EXPLAIN and other statements returning resultset, mysql_query() returns a resource on success, or FALSE on error.

    The returned result resource should be passed to mysql_fetch_array(), and other functions for dealing with result tables, to access the returned data.
    Per esem. puoi fare:
    Codice PHP:
    if(mysql_num_rows($result) == 1){
    echo
    'TROVATO !!!';
    }
    else{
    echo
    'utente non registrato!';
    }

  14. #14
    alino74 non è connesso Utente giovane
    Data registrazione
    22-06-2009
    Messaggi
    38

    Predefinito

    GRANDE andreafallico, cosi' funziona!!!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •