requête sql help!!

  • Auteur de la discussion Auteur de la discussion webac
  • Date de début Date de début
WRInaute occasionnel
Bonjour,

cela va faire plus de deux semaines que je stagne sur la même requête et je ne m'en sort pas.

voici mon code :

Page du formulaire :

Code:
<script language="javascript">
<!--
function create_champ(i) 
{
var i2 = i + 1;

document.getElementById('input_'+i).innerHTML = '<div id="champs_'+i+'">Fournisseur :&nbsp;&nbsp;<input type="text" name="fournisseur[]"size="5"> Marque du Produit : <input name="marque[]" type="text" size="5"/> Référence :&nbsp;<input type="text" name="ref[]"size="5"> N° Facture/BL :&nbsp;<input type="text" name="fact[]"size="5"> N° de serie :&nbsp;<input type="text" name="ser[]"size="5"> Panne constatée :&nbsp;<input type="text" name="typepanne[]"size="5"></div></span>';
document.getElementById('input_'+i).innerHTML += (i <= 10000) ? '<span id="input_'+i2+'"><input class="input2" type="button" onClick="javascript:create_champ('+i2+')" value="Nouvelle ligne"></span>' : '';
}
-->
</script>
</head>
<body>
<form action="input2.php" method="post" name="toto">
  <div id="champs_1">
    <div align="left"> Fournisseur :&nbsp;
      <input name="fournisseur[]" type="text" id="fournisseur" size="5"/>
      Marque du Produit :
      <input name="marque[]" type="text" id="marque" size="5"/>
    R&eacute;f&eacute;rence : 
    <input name="ref[]" type="text" id="ref" size="5"/>
    N&deg; Facture/BL : 
    <input name="fact[]" type="text" id="fact" size="5"/>
    N&deg; de serie : 
    <input name="ser[]" type="text" id="ser" size="5"/>
     Panne constat&eacute;e : 
     <input name="typepanne[]" type="text" id="typepanne" size="5"/>
    </div>
  </div>
  <div align="left"> <span id="input_2">
    <input name="button" type="button" class="input2" onClick="javascript:create_champ(2)" value="Nouvelle ligne">
    </span>
    <input name="Envoyer" type="submit" value="Envoyer" id="Envoyer">
  </div>
</form>

Page de traitement du formulaire :

Code:
<?
$fournisseur = implode(', ', $_POST['fournisseur']) ; 
$marque      = implode(', ', $_POST['marque']) ; 
$ref         = implode(', ', $_POST['ref']) ; 
$fact        = implode(', ', $_POST['fact']) ; 
$ser         = implode(', ', $_POST['ser']) ;
$typepanne   = implode(', ', $_POST['typepanne']) ;  


$sql="INSERT INTO rma (`fournisseur`, `marque`, `ref`, `facture`, `serie`, `typepanne`) VALUES($fournisseur, $marque, $ref, $fact ,$ser, $typepanne)";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 

?>

cette requête ne fonctionne pas biensur c'est la raison pour laquelle je poste ce message.

si vous pouvez me fournir la bonne requête j'avoue que cela me soulagerais énormément.
Merci d'avance.
 
WRInaute passionné
Bon je l'écrirais comme cela

J'ajouterais un Addslashes sur les variables qui ont une quote car des fois ca n'aime pas trop.

$sql="INSERT INTO rma (fournisseur, marque, ref, facture, serie, typepanne) VALUES('".$fournisseur."', '".$marque."', '".$ref."', '".$fact."' ,'".$ser."', '".$typepanne."')";

Tu peux faire un echo de $sql avec une donnée que tu tentes d'insérer
 
WRInaute occasionnel
YoyoS
L'erreur que j'obtiens c'est :

Code:
Column count doesn't match value count at row 1

biddybulle
Ta requête fonctionne mais les données s'inserent dans un seul enregistrement!
fournisseur marque ref facture serie typepanne
champ1ligne1, champs1ligbe2 champs2ligne1, champs2ligne2 etc...
 
WRInaute occasionnel
dans ce cas comment faire pour inserer plusieurs enregistrements dans la meme requete?

exemple : INSERT INTO t1 (v1,v2,v3) VALUES (1,2,3),(4,4,4),(5,1,10);
 
Nouveau WRInaute
ta requête n'est pas bonne:

tu as écris
$sql="INSERT INTO rma (`fournisseur`, `marque`, `ref`, `facture`, `serie`, `typepanne`) VALUES($fournisseur, $marque, $ref, $fact ,$ser, $typepanne)";

il manque des quotes !!!

Code:
$sql="INSERT INTO rma (`fournisseur`, `marque`, `ref`, `facture`, `serie`, `typepanne`) VALUES ('".$fournisseur."', '".$marque."', '".$ref."', '".$fact."' ,'".$ser."', '".$typepanne."')";

les quotes sont facultatives SAUF dans le cas du texte, je ne connais pas la nature de tes champs mais si c'est du texte, date, ... tu mets des quotes; si c'est du numéric pas besoin...

voilà en espèrant t'avoir aidé
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut