Formulaire php mysql

seif4rock Messages postés 9 Statut Membre -  
 seif4rock -
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   Statut Membre Dernière intervention   168
 
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
toto
 
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
seif4rock
 
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