Visualizzazione risultati 1 fino 20 di 20

Discussione: Domanda Mysql

  1. #1
    Guest

    Predefinito Domanda Mysql

    Volevo chiedere una cosa che probabilmente può risultare molto semplice...

    Se cerco ad esempio di selezionare campi da un database con questo codice:

    $query = "SELECT * FROM ciao";

    $query mi restituisce TRUE o FALSE nel caso l'esito sia andato a buon fine?

  2. #2
    L'avatar di Evcz
    Evcz non è connesso Utente storico
    Data registrazione
    31-05-2002
    Residenza
    Vicenza
    Messaggi
    5,670

    Predefinito

    $query contiene una stringa...

    se fai

    $query=mysql_query($query);

    ottieni i dati

    per sapere se c'è stat qualche problema controlla mysql_error() ;)
    There are three kinds of people in this world: people who watch things happen ... people who complain about things that happen ... and people who make things happen...

  3. #3
    Guest

    Predefinito

    Quindi se faccio:

    $query=mysql_query(SELECT * FROM ciao);

    La variabile $query mi restituisce TRUE o FALSE?
    Ultima modifica di chiamatekatia : 24-09-2004 alle ore 15.59.32

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

    Predefinito

    No, ti restituisce un array contenente di dati della query!
    Come da precedente risposta per sapere se c'è stato errore basta usare "mysql_error()" dopo la 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

  5. #5
    L'avatar di Evcz
    Evcz non è connesso Utente storico
    Data registrazione
    31-05-2002
    Residenza
    Vicenza
    Messaggi
    5,670

    Predefinito

    già ;)

    l'array è in un formato un "po' particolare", per poterlo manipolare come un array normale devi fare un
    Codice:
    mysql_fetch_array($query);
    There are three kinds of people in this world: people who watch things happen ... people who complain about things that happen ... and people who make things happen...

  6. #6
    Guest

    Predefinito

    Allora...Vi spiego cosa avevo in mente...Devo fare una pagina di login e molto semplicemente avrei fatto:

    $query = "SELECT * FROM utents WHERE user= '$username' AND pass = '$password'";

    Quindi se mi restituiva TRUE o FALSE avrei fatto di conseguenza...
    Ora però scopro che non funziona così e cerco un altra via seguendo le vostre indicazioni che però non mi funzionano...

    Se scrivo: $risultati=mysql_query($query);

    Le variabili che vengono di conseguenza ( $risultati [0] , $risultati [1] ...) sono vuote...

    In più usando il codice per gli errore in questo modo: mysql_error($query)

    Non appare niente neanche se la variabile è sbagliata!

    Quindi non so più come fare!

  7. #7
    L'avatar di Evcz
    Evcz non è connesso Utente storico
    Data registrazione
    31-05-2002
    Residenza
    Vicenza
    Messaggi
    5,670

    Predefinito

    perfetto

    se l'utente non esiste ti torna un array vuoto :D

    quindi ti basta un

    Codice:
    if(mysql_num_rows($query) > 0){
    //utenteok
    }
    else{
    //utente o pass errati
    }
    NOTA: gli indici dell'array ottenuto con mysql_fetch_array() coincidono con i nomi delle colonne

    nel tuo caso
    $risultati=mysql_fetch_array(mysql_query($query));

    $risultati['user'] contiene l'utente
    $risultati['pass'] contiene la password
    Ultima modifica di Evcz : 24-09-2004 alle ore 16.48.05
    There are three kinds of people in this world: people who watch things happen ... people who complain about things that happen ... and people who make things happen...

  8. #8
    Guest

    Predefinito

    Mi dà però un problema...Dice che mysql_num_rows è sempre 0!

  9. #9
    L'avatar di Evcz
    Evcz non è connesso Utente storico
    Data registrazione
    31-05-2002
    Residenza
    Vicenza
    Messaggi
    5,670

    Predefinito

    anche se i dati ci sono?

    vai in phpmyadmin e prova ad eseguire la query da la e vedi come mai ;)

    forse hai sbagliato qualche nome nella query ;)
    There are three kinds of people in this world: people who watch things happen ... people who complain about things that happen ... and people who make things happen...

  10. #10
    Guest

    Predefinito

    La query funziona perfettamente in phpMyadmin!

  11. #11
    L'avatar di Evcz
    Evcz non è connesso Utente storico
    Data registrazione
    31-05-2002
    Residenza
    Vicenza
    Messaggi
    5,670

    Predefinito

    :?????:

    strano..

    (il mysql_num_rows() devi farlo PRIMA del fetch_array e devi farlo sul risultato della query)

    posta il codice ke hai usato
    There are three kinds of people in this world: people who watch things happen ... people who complain about things that happen ... and people who make things happen...

  12. #12
    Guest

    Predefinito

    Ho capito l'errore...Ehm...Stupido...Per sbaglio...Nel fare copia e incolla...Ho cancellato la parte che connette al database...

    Adesso riscrivo il codice e controllo se funziona!

    EDIT

    Ho rimesso a posto il codice, controllato la stinga con phpMyadmin e funziona, ma mi dà sempre utente inesistente! Il codice è il seguente:

    Codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Documento senza titolo</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    
    <body>
    <?
    
    $db_host = "";
    $db_user = "";
    $db_password = "";
    $db_name = "";
    
    $myconn = mysql_connect($db_host, $db_user, $db_password);
    
    if ($myconn == FALSE)
    die ("Errore nella connessione. Verificare lo script");
    
    mysql_select_db('my_compratutto', $myconn);
    
    $query = "SELECT * FROM utenti WHERE user = 'morbibi' AND pass = 'giulio'";
    
    mysql_num_rows($query);
    
    $risultati=mysql_fetch_array(mysql_query($query)); 
    
    if(mysql_num_rows($query) > 0)
    {
    echo"Tutto OK!";
    }
    else
    {
    echo "Utente inesistente!";
    }
    
    ?>
    
    </body>
    </html>
    Perché non funziona?
    Ultima modifica di chiamatekatia : 24-09-2004 alle ore 18.34.24

  13. #13
    Guest

    Predefinito

    Prova così:


    $risultati=mysql_fetch_array(mysql_query($query));

    if(count($risultati) > 0)
    {
    echo"Tutto OK!";
    }
    else
    {
    echo "Utente inesistente!";
    }

  14. #14
    Guest

    Predefinito

    è normale che così nn funzioni
    non dovevi mettere solo $query ma mysql_query($query) altrimenti non esegue la query
    if(mysql_num_rows(mysql_query($query)) > 0)
    {
    echo"Tutto OK!";
    }
    else
    {
    echo "Utente inesistente!";
    }

  15. #15
    Guest

    Predefinito

    Grazie mille!!! Ora funziona tutto!

  16. #16
    Guest

    Predefinito

    Rieccomi qua con un'altra domanda! Funziona tutto perfettamente e sono veramente contento di ciò! Comunque ora vi faccio vedere un altro problema che avevo nella pagina di registrazione!
    In pratica quando registra i dati nel database ne fa due...Quindi due ID con gli stessi dati!
    Per aggirare il probelma nella pagina di attivazione eliminavo l'ID!
    Comunque sarebbe meglio mettere a posto il problema dalla fonte!

    Il codice della pagina registrazione:

    Codice:
    <?
    
    
    if ($username =="" OR $password=="" OR $email==""){
    echo "Campi username, password o e-mail errati!";
    }
    else {
    
    $attivo = "1";
    
    // Parametri di connessione al database
    $db_host="";
    $db_username="";
    $db_password="";
    $db_name="";
    
    $db = mysql_connect($db_host, $db_username, $db_password);
    if ($db == FALSE)
    die ("Errore nella connessione. Verificare i parametri nel file configua.php");
    mysql_select_db($db_name, $db)
    or die ("Errore nella selezione del database. Verificare i parametri nel file configura.php"); 
    
    
    $query = "INSERT INTO utenti (user, pass, mail, Attivo) VALUES ('$username', '$password', '$email', '$attivo')";
    mysql_query($query);
    $num = mysql_insert_id();
    
    $tuoemail="???@???.it";
    
    $soggetto="Conferma iscrizione a ???";
    
    
    $corpo_mesaggio="La ringraziamo per essersi iscritto a ???.
    Per confermare la sua iscrizione clicchi il link sottostante:
    http://compratutto.altervista.org/hp/attiva.php?ID=$num
    
    Lo Staff";
    
    
    mail ("$email", "$soggetto", "$corpo_mesaggio", "From: $tuoemail");
    
    
    if (mysql_query($query, $db))
    echo "Sei stato registrato correttamente!";
    else
    echo "Errore durante la registrazione!";
    mysql_close($db);  
    
    }
    
    
    ?>
    Non mi sembra registri due volte...Quindi non riesco a capire il perché!

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

    Predefinito

    Se ripeti l'INSERT INTO ti ripete la cosa!!
    Devi usare UPDATE(vedi la sintassi) e mettere nella clausola WHERE id = $num (che è l'id che ripeschi dal primo inserimento)
    esempio:
    UPDATE nome_tabella SET EMAIL='nuova mail' WHERE ID=$num

    PS
    Per il primo script se lo metti come hai scritto avrai problemi di SQLinjections ATTENTO!
    Ultima modifica di binarysun : 24-09-2004 alle ore 22.42.56
    "L'intelligenza è una pianta che va curata continuamente.
    Dovreste vedere com'è bello, il mio bonsai."
    Rat-man®

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

  18. #18
    Guest

    Predefinito

    Ma io non ho ripetuto di nuovo INSERT...

  19. #19
    L'avatar di Evcz
    Evcz non è connesso Utente storico
    Data registrazione
    31-05-2002
    Residenza
    Vicenza
    Messaggi
    5,670

    Predefinito

    lanci la query due volte

    mysql_query($query);

    e dopo con

    mysql_query($query, $db);

    togli il secondo (quello dentro all'if) :P
    There are three kinds of people in this world: people who watch things happen ... people who complain about things that happen ... and people who make things happen...

  20. #20
    Guest

    Predefinito

    Grazie mille! Non l'avevo notato! Ma pensate sia finita qui? Bhé vi siete sbagliati!
    Non vi libererete mai di me!

    Vi chiedo due cose (Poi forse abbiamo finitò!)

    1) Qual'è il codice per dirgli ad esempio...Aspetta 5 secondi e poi continua con il codice?

    2) Sempre nel mio sistema di registrazione/login sto facendo una pagina per modificare i dati degli utenti! Ho fatto un form che ounta ad una pagina che controlla i dati inseriti! Se il campo è bianco non fa niente e lascia com'è se invece si è scritto qualcosa allora fa l'update!

    Problema? Non uppa!

    Io scrivo:
    mysql_query("UPDATE utenti SET username = '$username' WHERE id = '$id'");

    Ma non funziona!

    E non so il perché...

    Grazie in anticipo!

Regole di scrittura

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