Sql génère 3 lignes au lieu d'une seule..

Fermé
maxireussite Messages postés 372 Date d'inscription jeudi 10 mai 2007 Statut Membre Dernière intervention 11 mars 2020 - Modifié par maxireussite le 13/06/2015 à 23:52
maxireussite Messages postés 372 Date d'inscription jeudi 10 mai 2007 Statut Membre Dernière intervention 11 mars 2020 - 14 juin 2015 à 18:03
Bonjour,

Je suis emm.. par ce truc.
Qu'est ce qui peut faire que sql génère 3 lignes au lieu d'une seule... Une complétement remplie avec les variables les deux autres avec id incrémenté ?

    if(isset($_POST['titre'])) $titre=$_POST['titre'];
    else $titre="";
     
    if(isset($_POST['nom'])) $nom=$_POST['nom'];
    else $nom="";
     
    if(isset($_POST['prenom'])) $prenom=$_POST['prenom'];
    else $prenom="";
     
 if(isset($_POST['mobile'])) $mobile=$_POST['mobile'];
    else $mobile="";
     
    if(isset($_POST['email'])) $email=$_POST['email'];
    else $email="";


   $sql = "INSERT INTO mr_clients(client_id, titre, nom, prenom, mobile, email) VALUES('','$titre','$nom','$prenom','$mobile', '$email')";
      mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
      
      echo '<font color="green">Le client a bien été ajouté</font>';
      echo"<html><br /><BR><a href=\"javascript:window.history.go(-1)\">Ajouter un client</a></html>";


la même table est alimentée par un autre script du même acabit et je n'ai pas ce problème...


A voir également:

4 réponses

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
Modifié par jordane45 le 14/06/2015 à 00:00
Bonjour,

Pour commencer ... il ne faut pas, dans les requêtes INSERT y mettre ton champ ID (car il est AUTO-INCREMENTE.. et donc.. c'est ta BDD qui s'en chargera toute seule comme une grande).

Tu peux donc déjà modifier ta requête ainsi :

  $sql = "INSERT INTO mr_clients
                          ( titre ,  nom  ,  prenom  ,  mobile ,  email ) 
              VALUES('$titre','$nom','$prenom','$mobile', '$email')";



Ensuite.. si le souci persiste ... vide le cache de ton navigateur.. parfois ça peut jouer des tours...

Vérifie également que ton script n'est pas appelé dans une boucle.


Au passage ... tous tes IF .. tu peux les écrire avec l'écriture TERNAIRE ...
comme ceci :
$titre = isset($_POST['titre']) ? $_POST['titre'] : '';
$nom = isset($_POST['nom']) ? $_POST['nom'] : '';
$prenom = isset($_POST['prenom']) ? $_POST['prenom'] : '';
$mobile = isset($_POST['mobile']) ? $_POST['mobile'] : '';
$email= isset($_POST['email']) ? $_POST['email'] : '';


... c'est mieux non ??

PS: Attention.. tu utilises une vielle extension mysql .. considérée comme obsolète.
Je t'invite à lire ceci :
https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top


.

Cordialement,
Jordane
0
maxireussite Messages postés 372 Date d'inscription jeudi 10 mai 2007 Statut Membre Dernière intervention 11 mars 2020 5
14 juin 2015 à 00:10
Merci bcp,

Je vais m'aérer un peu la tête et regarder tout cela après. Je viens d'y passer 4 heures...

MErci encore, je te tiens au courant.
0
maxireussite Messages postés 372 Date d'inscription jeudi 10 mai 2007 Statut Membre Dernière intervention 11 mars 2020 5
14 juin 2015 à 06:28
Bon, en fait je crois que le problème venait d'ailleurs vu que c une page adaptée.

Cela m'aurait permis en tout cas de bénéficier des judicieux conseils de Jordane45.

Merci.
0
maxireussite Messages postés 372 Date d'inscription jeudi 10 mai 2007 Statut Membre Dernière intervention 11 mars 2020 5
14 juin 2015 à 18:03
Bon en fait mon problème est loin d'être résolu.

C bien la 1ère fois que j'ai ce problème...!!

Même en partant d'un feuille vièrge avec le strict nécessaire. La première fois cela marche, mais si je le fait une 2è fois ça me le refait ! 2.3 voire 4 lignes supplémentaires non remplies, alors que la 1ère l'est bien...

Je n'ai pas ce problème avec mes autres script du même genre. Incroyable ? Mais vrai !
Notez que je verrai pour MysQli après. D'ailleurs ça m'embête bien, alors que je commençais à peine à piger un peu, v'là qui faut que je me remette à autre chose, mais bon .

Voilà le script final, qqu'un sait-il d'où peut venir cette emmerde ?

<?php 

	$titre = isset($_POST['titre']) ? $_POST['titre'] : '';
	$nom = isset($_POST['nom']) ? $_POST['nom'] : '';
	$prenom = isset($_POST['prenom']) ? $_POST['prenom'] : '';
	$mobile = isset($_POST['mobile']) ? $_POST['mobile'] : '';
	$email= isset($_POST['email']) ? $_POST['email'] : '';
	$message= isset($_POST['message']) ? $_POST['message'] : '';
	$heuredappel= isset($_POST['heuredappel']) ? $_POST['heuredappel'] : '';
	$connucomment= isset($_POST['connucomment']) ? $_POST['connucomment'] : '';
	$precisions= isset($_POST['precisions']) ? $_POST['precisions'] : '';
	
	
	  	$sql = "INSERT INTO mr_clients
	  		 (titre, nom, prenom, mobile, email) 
	  		 VALUES('$titre','$nom','$prenom','$mobile', '$email')";
      	mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
      

	 	$client_id = mysql_insert_id();
	 	
	 	$sql = "INSERT INTO mr_rappel
	  		(client_id, message, heuredappel, connucomment, precisions) 
	  		VALUES('$client_id','$message','$heuredappel','$connucomment','$precisions')";
      	mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
      
      	echo '<font color="green">Appel demandé !</font>';
      	echo"<html><br /><BR><a href=\"javascript:window.history.go(-1)\">Ajouter un client</a></html>";
?>
0