requête sql help!!


webac
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 373
Inscription: 4 Mar 2005

requête sql help!!

Message le Mer Jan 30, 2008 22:32

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: Tout sélectionner
<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: Tout sélectionner
<?
$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.


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3827
Inscription: 14 Sep 2006

Message le Mer Jan 30, 2008 23:23

Et l'erreur c'est quoi ?


biddybulle
WRInaute passionné
WRInaute passionné
 
Messages: 1602
Inscription: 30 Mai 2005

Message le Mer Jan 30, 2008 23:25

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


webac
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 373
Inscription: 4 Mar 2005

Message le Mer Jan 30, 2008 23:33

YoyoS
L'erreur que j'obtiens c'est :

Code: Tout sélectionner
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...
Dernière édition par webac le Mer Jan 30, 2008 23:41, édité 1 fois.


biddybulle
WRInaute passionné
WRInaute passionné
 
Messages: 1602
Inscription: 30 Mai 2005

Message le Mer Jan 30, 2008 23:38



biddybulle
WRInaute passionné
WRInaute passionné
 
Messages: 1602
Inscription: 30 Mai 2005

Message le Mer Jan 30, 2008 23:40

Insert into n'ajoute en effet qu'un enregistrement dans une table non ?


UsagiYojimbo
WRInaute accro
WRInaute accro
 
Messages: 8303
Inscription: 23 Nov 2005

Message le Mer Jan 30, 2008 23:54

biddybulle a écrit:Insert into n'ajoute en effet qu'un enregistrement dans une table non ?


Me semble bien aussi.


webac
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 373
Inscription: 4 Mar 2005

Message le Mer Jan 30, 2008 23:55

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);


UsagiYojimbo
WRInaute accro
WRInaute accro
 
Messages: 8303
Inscription: 23 Nov 2005

Message le Jeu Jan 31, 2008 0:01

webac a écrit:dans ce cas comment faire pour inserer plusieurs enregistrements dans la meme requete?


A priori comme ceci :

Code: Tout sélectionner
mysql> INSERT INTO table (a,b,c) VALUES (1,2,3),(4,5,6)


CF : http://dev.mysql.com/doc/refman/5.0/fr/insert.html


webac
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 373
Inscription: 4 Mar 2005

Message le Jeu Jan 31, 2008 9:07

n'y a t-il pas moyen de faire une boucle pour inserer un enregistrement par ligne?


liilo
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 16
Inscription: 11 Sep 2007

Message le Jeu Jan 31, 2008 14:21

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: Tout sélectionner
$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é


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité