Verification donnee bdd

Résolu
Signaler
Messages postés
13
Date d'inscription
samedi 8 octobre 2005
Statut
Membre
Dernière intervention
27 juin 2007
-
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
-
Bonsoir,

Pouvez vous m'énoncez la maniére : pour verifier lors d'une inscription dans la bd si une valeur existe déjà et si elle l'existe de faire apparaitre un message d'erreur au visiteur.

J'ai cherché mais je ne trouve pas, je supose que cela ne doit pas être très compliqué mais si vous pouvez me donner la solution ça m'aiderai beaucoup 

Merci d'avance

10 réponses

Messages postés
13
Date d'inscription
samedi 8 octobre 2005
Statut
Membre
Dernière intervention
27 juin 2007

Mal recopié ça donne plutôt ça :

$r = mysql_query('SELECT pseudoFROM `MATABLE` WHERE email="'.email.'"'); or die('Erreur SQL !'.$sql.' ;
if(mysql_num_rows($r) > 0) { $erreurs[] ='Votre pseudo est déjà enregistré';
}
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
42
Salut

$r=mysql_query('select 1 from ... where champ="'.addslashes(valeur).'"') or ...;
if (mysql_num_rows($r)==0) // la valeur n'existe pas
else // la valeur existe

<hr />une recherche sur exalead vous aurait peut-etre evite de poser cette question

In a dream, I saw me, drop dead...
U were there, U cried...
It was just a dream,
if I die, U won't cry, maybe, U'll be happy
Messages postés
13
Date d'inscription
samedi 8 octobre 2005
Statut
Membre
Dernière intervention
27 juin 2007

Salut,
J'ai essayé ce que tu m'as donné coucou747, mais ça fait comme si je ne mettais rien.

Voici une partie du code :

 $pseudo=$_POST['pseudo'];
 $email=$_POST['email'];
 $raison=$_POST['raison'];
 $fruits=$_POST['fruits']; 
 $ip=$_SERVER['REMOTE_ADDR'];
 
//verification si le pseudo existe dans la bdd
$r = mysql_query('SELECT pseudo FROM `MATABLE` WHERE pseudo=\''.$pseudo.'\'');
if(!$r) { $erreurs[]='Votre pseudo est déjà enregistré';
}
//inscription dans la bdd
$sql= "INSERT INTO MATABLE VALUES('$pseudo','$email','$raison','$fruits','$ip') ";
mysql_query($sql)
or die('Erreur SQL !'.$sql.'
'.mysql_error());

Lorsque que je met le même pseudo j'ai de nouveau un doublon dans la bd. La variable $erreurs est censer mettre le message d'erreur dans un tableau. Si vous avez des idées.
Merci d'avance
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
42
Salut

c'est pas du tout ce que j'ai mis...

<hr />une recherche sur exalead vous aurait peut-etre evite de poser cette question

In a dream, I saw me, drop dead...
U were there, U cried...
It was just a dream,
if I die, U won't cry, maybe, U'll be happy
Messages postés
13
Date d'inscription
samedi 8 octobre 2005
Statut
Membre
Dernière intervention
27 juin 2007

Ben j'ai pas compris alors ...il faut mettre ?

$r = mysql_query('SELECT pseudo FROM `MATABLE` WHERE champ='''.addslashes($pseudo).\''); or die('Erreur SQL !'.$sql.' ;
if(mysql_num_rows($r)==0) { $erreurs[]='Votre pseudo est déjà enregistré';
}
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
42
Salut
la tu vas avoir une parse error...

$r = mysql_query('SELECT pseudo FROM `MATABLE` WHERE champ="'.addslashes($pseudo).'"
') or die(mysql_error());
if(mysql_num_rows($r)==0) {
$erreurs[]='Votre pseudo est déjà enregistré';
}

<hr />une recherche sur exalead vous aurait peut-etre evite de poser cette question

In a dream, I saw me, drop dead...
U were there, U cried...
It was just a dream,
if I die, U won't cry, maybe, U'll be happy
Messages postés
13
Date d'inscription
samedi 8 octobre 2005
Statut
Membre
Dernière intervention
27 juin 2007

$r = mysql_query('SELECT
pseudo
FROM `
MATABLE
` WHERE
champ='''.$pseudo.\'''
); or die('Erreur SQL !'.$sql.' ;
if(mysql_num_rows($r) > 0) { $erreurs[] ='Votre pseudo est déjà enregistré';
}


Voilà finallement trouvé, ça marche mieux comme ça.
Bye
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
42
Salut

t'aurais au moins pu accepter ma reponse.... ma premiere reponse etait parfaite...

<hr />une recherche sur exalead vous aurait peut-etre evite de poser cette question

In a dream, I saw me, drop dead...
U were there, U cried...
It was just a dream,
if I die, U won't cry, maybe, U'll be happy
Messages postés
13
Date d'inscription
samedi 8 octobre 2005
Statut
Membre
Dernière intervention
27 juin 2007

...<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /??>


tu as mis ==0 alors que en faite c'est >0 (je cherchais pour que cela empêche d'enregistrer).
 
Tu dis que ta réponse est parfaite certes pour moi une réponse parfaite c'est une réponse où l'on a pris la peine d'expliquer et de détailler ce que l'on a mis (parceque comprende ce que tu as mis c'est pas evident pour un novice!), donc non ta réponse ne l'ai pas, ma réponse ne l'ai pas non plus mais elle résout mon problème d'où le fait d'avoir mis réponse accepté.


....dans ma réponse il manque le $ pour définir la variable qu'il ne faut pas oublié.

Merci d'avoir répondu


 
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
42
Salut

$r=mysql_query('select 1 from ... where champ="'.addslashes(valeur).'"') or ...;
if (mysql_num_rows($r)==0) // la valeur n'existe pas

else // la valeur existe CA VEUT DIRE ERREUR

1) je te fais un code super proche de ton code final
2) je te corrige le code que t'as meme pas su copier coller... (avec des fautes de syntaxes enormes)

et ensuite tu valides ta reponse... serieux il y a de l'abus

<hr />une recherche sur exalead vous aurait peut-etre evite de poser cette question

In a dream, I saw me, drop dead...
U were there, U cried...
It was just a dream,
if I die, U won't cry, maybe, U'll be happy