Formulaire php mysql

Fermé
seif4rock Messages postés 9 Date d'inscription mercredi 9 juillet 2008 Statut Membre Dernière intervention 29 avril 2009 - 1 janv. 2009 à 20:13
 seif4rock - 2 janv. 2009 à 15:46
Bonjour,
Bonjour,
Je developpe une application de facturation en PHP et MySQL
Une facture peut avoir un ou plusieurs artuicles
Apres avoir saisi une facture à travers un formulaire simple; je dois maintenant saisir les données qui concernent les articles appartenant à cette facture

Voila le code du formulaire (n est le nombre d'articles)

for ($i=1; $i <= $n; $i++) {
echo '
<table>
<tr>
<td><strong>'.$i.'/ </strong></td><td> </td><td> </td><td> </td><td> </td>

<td><strong>Designation</strong> </td><td><input type="text" id="designation_article'.$i.'" size="10" name="designation_article['.$i.']" /></td>

<td><strong>Quantité</strong> </td><td><input type="text" id="quantite'.$i.'" size="5" name="quantite['.$i.']"/></td>

<td><strong>Prix_Unit</strong> </td><td><input type="text" id="prix_unit'.$i.'" size="5" name="prix_unit['.$i.']"/></td>

<td><strong>Num Pièce</strong> </td><td><input type="text" id="num_piece'.$i.'" size="5" name="num_piece['.$i.']"/></td>

<td><strong>Nature Pièce</strong> </td><td><input type="text" id="nat_piece'.$i.'" size="5" name="nat_piece['.$i.']"/></td>

<td><strong>TVA</strong> ';
$query = "SELECT * FROM tva";
$result = mysql_query($query);
echo '<select name="code_tva">';

while ($row=mysql_fetch_array($result)) {
echo '<option ' . $row['code_tva'] . ' value="' . $row['code_tva'] . '">' . $row['code_tva'] . '%</option>';
}
echo '</select>
</td>
<td><input type="text" id="num_facture'.$i.'" name="num_facture['.$i.']" value="'.$num_facture.'" /></td>
</tr>
<tr><td> </td></tr>
</table> ';
}
***************************
Ensuite je dois recuperer ces données et les inserer dans la table article

**********************
<?PHP
mysql_connect("localhost", "root", "");
mysql_select_db("facturation3");
foreach ($_POST as $cat=>$value) {
mysql_query("INSERT into article (num_article, designation_article, quantite, prix_unit, num_piece, nature_piece, code_tva, num_facture) VALUES
('','$value[1]','$value[2]','$value[3]','$value[4]','$value[5]','$value[6]','$value[7]')") or die (mysql_error()) ;
}
?>
**********************
L'insertion dans la table échoue
Si par exemple j'entre deux article par le formulaire, je récupère seulement les $value[1] et $value[2] (représentant les désignations des deux articles) et le reste est vide...
Est ce que quelqun pourrait me rectifier le code d'insertion???
ça fait deux jours ke j'essaie mais j'obtiens tjrs pas de résultat...
Merci d'avance
A voir également:

2 réponses

afrodje Messages postés 759 Date d'inscription mardi 13 mars 2007 Statut Membre Dernière intervention 22 janvier 2014 168
2 janv. 2009 à 14:21
Essai comme ça :

C'est un problème de quote il me semble.


mysql_query('INSERT into article (num_article, designation_article, quantite, prix_unit, num_piece, nature_piece, code_tva, num_facture) VALUES
("","'.$value[1].'","'.$value[2].'","'.$value[3].'","'.$value[4].'","'.$value[5].'","'.$value[6].'","'.$value[7].'")') or die (mysql_error()) ;
0
Bonjour

Si seif4rock se trompe dans son écriture des quotes, dites-lui où. S'il ne se trompe pas, pourquoi lui proposer d'autres écritures ?

Le problème n'est pas dans les quotes (tant qu'il n'y a pas d'apostrophes dans les données, mais les autres propositions n'y changent rien).
Le problème c'est que le tableau que tu récupères dans $value à chaque boucle du foreach ne correspond pas à l'ensemble des caractérisques d'un article. La première fois, tu récupères toutes les désignations , la deuxième fois toutes les quantité, etc... Il faudrait refaire le formulaire pour appeler chaque champ article [$i]['designation'], article [$i]['quantite], etc...
0
En fait j'ai essayé avec une autre écriture et ça marché:

for ($i=1; $i <= $n ; $i++) {
mysql_query("INSERT INTO article (num_article, designation_article, quantite, prix_unit, num_piece, nature_piece, code_tva, num_facture) VALUES (
'', '".$_POST['designation_article'][$i]."', '".$_POST['quantite'][$i]."','".$_POST['prix_unit'][$i]."','".$_POST['num_piece'][$i]."','".$_POST['nature_piece'][$i]."','".$_POST['code_tva'][$i]."','".$_POST['num_facture'][$i]."')") or die (mysql_error());

Toutes les données sont insérées dans la tabel article sauf celle de la TVA, elle est touijours nulle
0