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

maxireussite Messages postés 405 Statut Membre -  
maxireussite Messages postés 405 Statut Membre -
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 40050 Statut Modérateur 4 757
 
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 405 Statut Membre 5
 
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 405 Statut Membre 5
 
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 405 Statut Membre 5
 
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