Controllare l'esistenza di un record in una tabella.

Ciabo

Nuovo Utente
8 Set 2012
4
0
0
Salve a tutti, ho cominciato da poco a scrivere il mio primo sito e non ho ancora molta esperienza, avendo ancora 15 anni, e oggi mi sono imbattuto in un problema che non riesco a risolvere: per effettuare la registrazione ho creato all'interno di un db due tabelle: una serve per gli utenti temporanei finchè non confermano l'email("utenti_temp") e l'altra invece per gli utenti che l'hanno già confermata("utenti"). Ovviamente per evitare che più utenti abbiano gli stessi username o gli stessi indirizzi e-mail ho inserito dei controlli che svolgono perfettamente il loro lavoro solamente nel database che ospita gli utenti che hanno già confermato la loro mail; mentre per la taballa degli utenti "temporanei" i controlli non funzionano. Di seguito posto il codice:

$controlname = mysql_query("SELECT username FROM utenti WHERE username = '$username'");
$controlname_temp = mysql_query("SELECT username FROM utenti_temp WHERE username = '$username'");
$controlemail = mysql_query("SELECT email FROM utenti WHERE email = '$email'");
$controlemail_temp = mysql_query("SELECT email FROM utenti_temp WHERE email = '$email'");

$countuser = mysql_num_rows($controlname);
$countuser_temp = mysql_num_rows(controlname_temp);
$countemail = mysql_num_rows($controlemail);
$countemail_temp = mysql_num_rows($controlemail_temp);

//se l'username o la password esiste allora mysql_num_rows restituirà valore 1 o più altrimenti 0

if($countuser || $countuser_temp > 1){
echo "l'username scelto è già in uso";
}elseif($countemail || $countemail_temp > 1){
echo "Questa mail è già stata utilizzata";
}else{
$inviautenti = mysql_query("INSERT INTO utenti_temp (codiceconferma , username , password , email) VALUES('$confirm_code', '$username', '$password' , '$email')");

Se nel form inserisco username o email che esistono nella tabella utenti allora mi da errore, ma se esistono nella tabella utenti_temp tutto va a buon fine(cosa che non dovrebbe accadere).
P.s. se ho fatto un errore gigantesco non prendetemi troppo in giro...
 
Ciao, benvenuto
maggiore di 1 vuol dire almeno 2 record
il paragone va fatto su entrambe le variabili
modifica cosi:
PHP:
if ($countuser > 0 || $countuser_temp > 0) {
    echo "l'username scelto è già in uso";
} elseif ($countemail > 0 || $countemail_temp > 0) {
    echo "Questa mail è già stata utilizzata";
}

racchiudi il codice che posti tra i tag che trovi nella barra di formattazione ( seconda linea ultime 3 icone)
 
Ti ringrazio davvero tanto per la velocità con cui mi hai risposto e la correttezza della tua risposta, adesso funziona tutto a meraviglia , avevo fatto un errore stupidissimo. Grazie ancora!
P.s. non avevo notato i tag , scusami.
 

Discussioni simili