Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di tziggie
    Registrato dal
    Mar 2007
    Messaggi
    105

    [mysql_query] problema con insert

    Salve a tutti.

    Ho creato un form per registrarsi su un sito.
    Premendo "invia" do il via a uno script per verificare se il nome o l'email inseriti nei campi non siano già presenti nella tabella; in caso contrario permetto la query INSERT con i dati inseriti nel form.

    Codice PHP:
    $user=$_POST['user'];
        
    $pswd_db=criptpass($_POST['pswd']);
        
    $email=$_POST['email'];
        
    $nome=$_POST['nome'];
        
    $cognome=$_POST['cognome'];
        
    $societas=$_POST['societas'];
        
            
        
    $query=mysql_query("SELECT * FROM `utenti`WHERE username='$user' OR email='$email'") or die
    (
    mysql_error());// query per verificare l'eventuale esistenza dell'utente nella tabella

        
    $num_rows=mysql_num_rows($query) or die (mysql_error());
        echo 
    $num_rows."
    "
    ;

            
        if(
    $num_rows=='1'){

            while(
    $ordina=mysql_fetch_array($query)){
                if(
    $ordina['username']==$user AND $ordina['email']!=$email){
                    echo 
    "username gi&agrave esistente";
                }else if(
    $ordina['username']!=$user AND $ordina['email']==$email){
                    echo
    "indirizzo email gi&agrave utilizzato";
                }else{
                    echo 
    "utente gi&agrave registrato";
                }
            }
        }else{

            
    $inserisci=mysql_query("INSERT INTO `utenti` (id, email, username, password, nome,
     cognome, societas, stato, caso) VALUES (NULL, '
    $email', '$user', '$pswd_db', '$nome', '$cognome',
     '
    $societas', '0', '12457896')") or die(mysql_error());// query per inserire i valori 
        

    Il problema è che quando la query di verifica non trova alcuna riga, cioè quando verifico che nella tabella non sono già presenti utenti con lo stesso user o la stessa email, non esegue la query di inserimento.
    Ho provato con un po' di controlli e mi sono anche accorto che se il primo controllo è nullo non legge più le variabili $_POST, come se non fossero settate.

    Dove sto sbagliando?

  2. #2
    Il tuo errore e proprio il tentare di dare un valore nullo alla tabella id, si dovrebbe usare NOW(), oppure semplicemente ommettere il campo id, poichè mysql incrementa automaticamente il valore se gli si dice di farlo con l'istruzione autoincrement alla creazione della tabella id.
    Codice PHP:
    $inserisci=mysql_query("INSERT INTO `utenti` (id, email, username, password, nome, 
    cognome, societas, stato, caso) VALUES (NOW(), '
    $email', '$user', '$pswd_db', '$nome', '$cognome', 
    '
    $societas', '0', '12457896')") or die(mysql_error());// query per inserire i valori 
    Sono sicuro di questo, perchè anch'io facevo lo stesso errore tempo fà

  3. #3
    Utente di HTML.it L'avatar di tziggie
    Registrato dal
    Mar 2007
    Messaggi
    105
    Grande!

    Eppure altre volte, facendo lo stesso tentativo, funzionava tutto alla perfezione con NULL.

    Comunque grazie mille, ciao!

  4. #4
    Utente di HTML.it L'avatar di joker06
    Registrato dal
    Dec 2006
    Messaggi
    782
    cmq quando il campo è autoincrement nella query di insert non va messo

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.