Comment eviter des donnees duplique/PHPSQL ?

Résolu
squid3570 Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   -  
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je suis nouven en dev!
J ai un site d inscription qui fonctionne tres bien !
il utilise PHP/MYSQL.Mon problem est que les meme donnees peuvent etre enregistree sans message d erreur!!
Par exemple si "alexandre " a ete deja enregistre,il n y a pas de message d error pour un nouveau enregistrement " alexandre".
Quelqu un peut il m aider ? Voici mon code:


<?php
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("identity", $con);
$name=mysql_real_escape_string($_POST['name']);
$email=mysql_real_escape_string($_POST['email']);
$sql="INSERT INTO form_data (name,email) VALUES ('$name','$email')";

name and email are the respective table fields*/
if (!mysql_query($sql,$con)) {
die('Error: ' . mysql_error());
}
echo "The form data was successfully added to your database.";
mysql_close($con);
?>
A voir également:

8 réponses

le père
 
Bonjour

Et pourquoi y aurait-il un message d'erreur ? Si tu n'as pas imposé de contrainte particulière sur le champ 'nom', comme le déclarer 'primary', mysql n'a aucune raison de refuser.
C'est à toi de tester si un utilisateur existe déjà
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
bonjour,

Fait un test pour voir si le nom et l'adresse mail ne sont pas déjà dans ta base en faisant :
Select * from form_data where name = '$name' And email = '$email'

;o)

Polux
0
squid3570 Messages postés 19 Date d'inscription   Statut Membre Dernière intervention  
 
Merci , je vais essayer .a bientot ,
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
de rien
0
squid3570 Messages postés 19 Date d'inscription   Statut Membre Dernière intervention  
 
Voici le message d erreur :

Parse error: syntax error, unexpected T_STRING avec ce code :

<?php
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("identity", $con);
$name=mysql_real_escape_string($_POST['name']);
$email=mysql_real_escape_string($_POST['email']);
$sql="INSERT INTO form_data (name,email) VALUES ('$name','$email')";

if (!mysql_query($sql,$con)) {
die('Error: ' . mysql_error());
}
echo "The form data was successfully added to your database.";
Select * from form_data where name = '$name' And email = '$email'

mysql_close($con);
?>3 message(s) posté(s) depuis le mardi 18 décembre 2007
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
squid3570 Messages postés 19 Date d'inscription   Statut Membre Dernière intervention  
 
Voici le message d erreur :

Parse error: syntax error, unexpected T_STRING avec ce code :

<?php
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("identity", $con);
$name=mysql_real_escape_string($_POST['name']);
$email=mysql_real_escape_string($_POST['email']);
$sql="INSERT INTO form_data (name,email) VALUES ('$name','$email')";

if (!mysql_query($sql,$con)) {
die('Error: ' . mysql_error());
}
echo "The form data was successfully added to your database.";
Select * from form_data where name = '$name' And email = '$email'

mysql_close($con);
?>
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
oulala .... ça fait bien longtemps que je n'ai pas fait de PHP, je n'ai plus la syntaxe en tête.

De mémoire mysql_query retourne un booléen (vrai ou faux) donc ce qu'il faut faire c'est faire la vérification avant de faire l'insert en testant le retour du recordset, du genre :

$sql="Select * from form_data where name = '$name' And email = '$email'"
if (mysql_query($sql,$con)=false){
$sql="INSERT INTO form_data (name,email) VALUES ('$name','$email')";
else
if (!mysql_query($sql,$con)) {
'message' ....
die('Error: ' . mysql_error());
}


Je fais ça de tête sans tester, à toi d'arranger ça, mais le principe est le suivant : je teste l'existance dans la base (Select * from form_data where name = '$name' And email = '$email') si je ne trouve pas alors je fais l'insert (INSERT INTO form_data (name,email) VALUES ('$name','$email')) sinon j'envoie un message d'avertissement à l'utilisateur ...
0
squid3570 Messages postés 19 Date d'inscription   Statut Membre Dernière intervention  
 
Merci d avance !!


ok voici le message d erreur :

Fatal error: Can't use function return value in write context ligne 15

et le code :

<?php
$con = mysql_connect("localhost","root",""); //Replace with your actual MySQL DB Username and Password
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("identity", $con); //Replace with your MySQL DB Name
$name=mysql_real_escape_string($_POST['name']); //This value has to be the same as in the HTML form file
$email=mysql_real_escape_string($_POST['email']); //This value has to be the same as in the HTML form file

$sql="Select * from form_data where name = '$name' And email = '$email'";
if (mysql_query($sql,$con)=false){
$sql="INSERT INTO form_data (name,email) VALUES ('$name','$email')";
else
if (!mysql_query($sql,$con)) {
'message' ....
die('Error: ' . mysql_error());
}

echo "The form data was successfully added to your database.";
mysql_close($con);
?>
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
lol .... si tu fais juste un copier/coller de mon code c'est sûr que ça ne peut pas marcher ... je te l'ai dit, je n'ai plus en tête la syntaxe de PHP que je ne pratique plus depuis longtemps maintenant ... je t'ai juste donné la marche à suivre, à toi de remettre ça dans la bonne syntaxe en cherchant dans tes cours ou sur le net ... ce n'est pas à moi de faire cette démarche

bon courage

;o)

Polux
0