Problème d'insertion multiple avec mon code php

Résolu
msi079
Messages postés
229
Date d'inscription
lundi 2 août 2010
Statut
Membre
Dernière intervention
25 juillet 2013
- 1 févr. 2012 à 21:19
audiogenic
Messages postés
23
Date d'inscription
jeudi 23 février 2012
Statut
Membre
Dernière intervention
11 mars 2012
- 1 mars 2012 à 18:45
salut je viens de concevoir un code qui marche mais pas comme je veux .
je veux insérer des données dans ma base de données en utilisant la boucle for .
quand je choisi d'enregistrer 2 ou plusieurs préjudices ça insère qu'un seul préjudice dans la base de donnés .

voici mon code :
  <?php
  /*IMPORTANT*/ 

//include("connection.php"); 
// Connexion à la BDD
 mysql_connect("localhost","root","") or die("erreur de connexion");
 // Sélection de la base de données
mysql_select_db("DirectVictime2") or die("Erreur de selection de la BD");

/*faut securiser*/ 
foreach($_POST as $k = > $v){ 
$v=mysql_real_escape_string(strip_tags($v)); 
$_POST[$k]=$v; 
} 

/*faut securiser*/ 
foreach($_GET as $k => $v){ 
$v=mysql_real_escape_string(strip_tags($v)); 
$_POST[$k]=$v; 
}


$NumCode1=trim($_POST["NumCode1"]);
$designation1=trim($_POST["designation1"]);
$code1=trim($_POST["code1"]);
$quantite1=trim($_POST["quantite1"]);
$dateSurv1=trim($_POST["dateSurv1"]);
$lieuSurv1=trim($_POST["lieuSurv1"]);
$naturePrej1=trim($_POST["naturePrej1"]);
$autrePrej1=trim($_POST["autrePrej1"]);

if (empty($NumCode1)) {
$msg="Veuillez saisir  le numero du questionnaire!!!!!!!!!";
}
else {
//On se connecte à la base de donnée  
         //  include("connection.php");
     // on regarde si le nom existe déjà 
    $sql = "SELECT NumCode1 FROM prejudice1 WHERE NumCode1='$NumCode1'"; 
    $req = mysql_query($sql) or die('Erreur SQL !'.$sql.'
'.mysql_error());  
     
    // on compte le nombre de résultats 
    $res = mysql_num_rows($req); 

    if($res!=0)  // l'url existe déjà, on affiche un message d'erreur 
        { 
       //echo 'Désolé, mais ce nom  existe déjà dans notre base.'; 
    $msg = 'Désolé, mais ce numero  existe déjà dans notre base.'; 
        echo '<script>alert(\' '.$msg.' \');</script>';
        //echo ''.$msg.''; 
        } 
    else  // L'url n'existe pas, on insère les informations du formulaire dans la table 
        {

 // on fait l'INSERT dans la base de données
$sql="INSERT INTO prejudice1(id_prejudice1,NumCode1,designation1,code1,quantite1,dateSurv1,lieuSurv1,naturePrej1,autrePrej1,prejud_sid) VALUES('','".$NumCode1."','".$designation1."','".$code1."','".$quantite1."','".$dateSurv1."','".$lieuSurv1."','".$naturePrej1."','".$autrePrej1."','".$prejud_sid."')";
mysql_query($sql) or die(mysql_error());
echo 'Les informations sur les prejudices ont été ajoutées dans la base de données.';
     	

  }
}
?>

<!--choix_fichier.html-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
<style type="text/css">
<!--
.Style2 {font-size: 18px;
font-weight: bold;
}
.Style3 {	color: #333333;
font-weight: bold;
}
-->
</style>
</head>


<table width="1232" height="101" border="0" align="center" bordercolor="#F0F0F0" background="image/elephan3.jpg" bgcolor="#FFCC99">
----,
 N° 
</td>
DESIGNATION DU PEJUDICE ,
CODE,
QUANTITE,
DATE DE SURVENANCE ,
LIEU DE SURVENANCE ,
NATURE DU PREJUDICE
</td>
  </tr>
  <tr>
    <td> </td>
  </tr>
</table>
<form action ="" method="post"  >

<?php
if(isset($_GET['prejud_sid'])) $id = urldecode($_GET['prejud_sid']);
if(isset($_POST['bouton_submit']) && ($_POST['nbre'])){
extract($_POST);
$nbre_ligne = $nbre;
for($j = 1; $j<=  $nbre_ligne; $j++){

echo'
<table width="1203" border="0">
----, 

</td>

,

,

,

,

,

<select name="naturePrej1">
<option></option>
<option>Pillage</option>
<option>Expropriation</option>
<option>Réquisition</option>
<option>Destruction</option>
</select>
,
Autre

';
        	
        	                }
        	
        	}
        	    ?>
      

      

      
    </form></td>
  </tr>
</table>
 






 


<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="50" height="37" title="ACCUEIL">

</object>

 



</html>

3 réponses

audiogenic
Messages postés
23
Date d'inscription
jeudi 23 février 2012
Statut
Membre
Dernière intervention
11 mars 2012

1 mars 2012 à 18:45
il manque encore une "}" à la fin du script pour fermer le "if (empty($NumCode1)) {"


Mon site en cours de développement
3
audiogenic
Messages postés
23
Date d'inscription
jeudi 23 février 2012
Statut
Membre
Dernière intervention
11 mars 2012

1 mars 2012 à 14:05
Je suis pas sûr mais je te propose cette solution :
<?
// on regarde si le nom existe déjà 
    $sql = "SELECT NumCode1 FROM prejudice1 WHERE NumCode1='$NumCode1'"; 
    $req = mysql_query($sql) or die('Erreur SQL !'.$sql.'
'.mysql_error());  
     
    // on compte le nombre de résultats 
    $res = mysql_num_rows($req); 
//CORRECTION PROPOSEE ICI:
while($data = mysql_fetch_assoc($res)) 
{ 
    if($res!=0)  // l'url existe déjà, on affiche un message d'erreur 
        { 
       //echo 'Désolé, mais ce nom  existe déjà dans notre base.'; 
    $msg = 'Désolé, mais ce numero  existe déjà dans notre base.'; 
        echo '<script>alert(\' '.$msg.' \');</script>';
        //echo ''.$msg.''; 
        } 
    else  // L'url n'existe pas, on insère les informations du formulaire dans la table 
        {

 // on fait l'INSERT dans la base de données
$sql="INSERT INTO prejudice1(id_prejudice1,NumCode1,designation1,code1,quantite1,dateSurv1,lieuSurv1,naturePrej1,autrePrej1,prejud_sid) VALUES('','".$NumCode1."','".$designation1."','".$code1."','".$quantite1."','".$dateSurv1."','".$lieuSurv1."','".$naturePrej1."','".$autrePrej1."','".$prejud_sid."')";
mysql_query($sql) or die(mysql_error());
//SOLUTION PROPOSEE ICI2:
}?>


En espérant que cela soit correct.

Mon site en cours de développement
0
audiogenic
Messages postés
23
Date d'inscription
jeudi 23 février 2012
Statut
Membre
Dernière intervention
11 mars 2012

1 mars 2012 à 18:22
Amélioration et correction:
<?
// on regarde si le nom existe déjà 
    $sql = "SELECT NumCode1 FROM prejudice1 WHERE NumCode1='$NumCode1'"; 
    $req = mysql_query($sql) or die('Erreur SQL !'.$sql.'
'.mysql_error());  
     
    // on compte le nombre de résultats 
    $res = mysql_num_rows($req); 

    if($res!=0)  // l'url existe déjà, on affiche un message d'erreur 
        { 
       //echo 'Désolé, mais ce nom  existe déjà dans notre base.'; 
    $msg = 'Désolé, mais ce numero  existe déjà dans notre base.'; 
        echo '<script>alert(\' '.$msg.' \');</script>';
        //echo ''.$msg.''; 
        } 
    else  // L'url n'existe pas, on insère les informations du formulaire dans la table 
        {
//CORRECTION: "req" à la place de "res"
while($data = mysql_fetch_assoc($req)) 
{ 
 // on fait l'INSERT dans la base de données
$sql="INSERT INTO prejudice1(id_prejudice1,NumCode1,designation1,code1,quantite1,dateSurv1,lieuSurv1,naturePrej1,autrePrej1,prejud_sid) VALUES('','".$NumCode1."','".$designation1."','".$code1."','".$quantite1."','".$dateSurv1."','".$lieuSurv1."','".$naturePrej1."','".$autrePrej1."','".$prejud_sid."')";
mysql_query($sql) or die(mysql_error());
}//Fermeture du while
}//Fermeture du else
?>

Voilà

Mon site en cours de développement
0