requête sql help!!

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


webac
WRInaute impliqué
WRInaute impliqué
 
Messages: 359
Inscription: Ven Mar 04, 2005 17:30

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: 3062
Inscription: Jeu Sep 14, 2006 4:53

Message le Mer Jan 30, 2008 23:23

Et l'erreur c'est quoi ?


biddybulle
WRInaute accro
WRInaute accro
 
Messages: 1469
Inscription: Lun Mai 30, 2005 21:55

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 impliqué
WRInaute impliqué
 
Messages: 359
Inscription: Ven Mar 04, 2005 17:30

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 accro
WRInaute accro
 
Messages: 1469
Inscription: Lun Mai 30, 2005 21:55

Message le Mer Jan 30, 2008 23:38



biddybulle
WRInaute accro
WRInaute accro
 
Messages: 1469
Inscription: Lun Mai 30, 2005 21:55

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: 5178
Inscription: Mer Nov 23, 2005 10:38

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 impliqué
WRInaute impliqué
 
Messages: 359
Inscription: Ven Mar 04, 2005 17:30

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: 5178
Inscription: Mer Nov 23, 2005 10:38

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 impliqué
WRInaute impliqué
 
Messages: 359
Inscription: Ven Mar 04, 2005 17:30

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
 
Messages: 16
Inscription: Mar Sep 11, 2007 18:52

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é


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités