Problème d'insertion multiple avec mon code php [Résolu]

Signaler
Messages postés
229
Date d'inscription
lundi 2 août 2010
Statut
Membre
Dernière intervention
25 juillet 2013
-
Messages postés
23
Date d'inscription
jeudi 23 février 2012
Statut
Membre
Dernière intervention
11 mars 2012
-
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

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

il manque encore une "}" à la fin du script pour fermer le "if (empty($NumCode1)) {"


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

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
Messages postés
23
Date d'inscription
jeudi 23 février 2012
Statut
Membre
Dernière intervention
11 mars 2012

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