| |
|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
webac WRInaute impliqué

Inscrit le: 04 Mar 2005 Messages: 304 Localisation: Ile de France
|
Posté le : Mer Jan 30, 2008 23:32 Sujet du message: requête sql help!! |
|
|
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 : <input type="text" name="fournisseur[]"size="5"> Marque du Produit : <input name="marque[]" type="text" size="5"/> Référence : <input type="text" name="ref[]"size="5"> N° Facture/BL : <input type="text" name="fact[]"size="5"> N° de serie : <input type="text" name="ser[]"size="5"> Panne constatée : <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 :
<input name="fournisseur[]" type="text" id="fournisseur" size="5"/>
Marque du Produit :
<input name="marque[]" type="text" id="marque" size="5"/>
Référence :
<input name="ref[]" type="text" id="ref" size="5"/>
N° Facture/BL :
<input name="fact[]" type="text" id="fact" size="5"/>
N° de serie :
<input name="ser[]" type="text" id="ser" size="5"/>
Panne constaté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. |
|
| |
|
 |
YoyoS WRInaute accro

Inscrit le: 14 Sep 2006 Messages: 2199
|
Posté le : Jeu Jan 31, 2008 0:23 Sujet du message: requête sql help!! |
|
|
| Et l'erreur c'est quoi ? |
|
| |
|
 |
biddybulle WRInaute accro

Inscrit le: 30 Mai 2005 Messages: 1346
|
Posté le : Jeu Jan 31, 2008 0:25 Sujet du message: requête sql help!! |
|
|
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é

Inscrit le: 04 Mar 2005 Messages: 304 Localisation: Ile de France
|
Posté le : Jeu Jan 31, 2008 0:33 Sujet du message: requête sql help!! |
|
|
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...
Dernière édition par webac le Jeu Jan 31, 2008 0:41; édité 1 fois |
|
| |
|
 |
biddybulle WRInaute accro

Inscrit le: 30 Mai 2005 Messages: 1346
|
|
| |
|
 |
biddybulle WRInaute accro

Inscrit le: 30 Mai 2005 Messages: 1346
|
Posté le : Jeu Jan 31, 2008 0:40 Sujet du message: requête sql help!! |
|
|
| Insert into n'ajoute en effet qu'un enregistrement dans une table non ? |
|
| |
|
 |
UsagiYojimbo WRInaute accro

Inscrit le: 23 Nov 2005 Messages: 2262 Localisation: Lyon, capitale des Gaules
|
Posté le : Jeu Jan 31, 2008 0:54 Sujet du message: requête sql help!! |
|
|
| biddybulle a écrit: |
| Insert into n'ajoute en effet qu'un enregistrement dans une table non ? |
Me semble bien aussi. |
|
| |
|
 |
webac WRInaute impliqué

Inscrit le: 04 Mar 2005 Messages: 304 Localisation: Ile de France
|
Posté le : Jeu Jan 31, 2008 0:55 Sujet du message: requête sql help!! |
|
|
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

Inscrit le: 23 Nov 2005 Messages: 2262 Localisation: Lyon, capitale des Gaules
|
Posté le : Jeu Jan 31, 2008 1:01 Sujet du message: requête sql help!! |
|
|
| webac a écrit: |
| dans ce cas comment faire pour inserer plusieurs enregistrements dans la meme requete? |
A priori comme ceci :
| Code: |
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é

Inscrit le: 04 Mar 2005 Messages: 304 Localisation: Ile de France
|
Posté le : Jeu Jan 31, 2008 10:07 Sujet du message: requête sql help!! |
|
|
| n'y a t-il pas moyen de faire une boucle pour inserer un enregistrement par ligne? |
|
| |
|
 |
liilo Nouveau WRInaute
Inscrit le: 11 Sep 2007 Messages: 16 Localisation: Paris
|
Posté le : Jeu Jan 31, 2008 15:21 Sujet du message: requête sql help!! |
|
|
ta requête n'est pas bonne:
tu as écris
| Citation: |
| $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é |
|
| |
|
 |
| |
|
|
|
|
Autres sujets de discussion :
Définitions :
|
|