Formulaire php mysql
seif4rock
Messages postés
9
Statut
Membre
-
seif4rock -
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
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:
- Formulaire php mysql
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook compte désactivé - Guide
- Formulaire de reclamation instagram - Guide
- Easy php - Télécharger - Divers Web & Internet
- Mysql community server - Télécharger - Bases de données
2 réponses
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()) ;
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()) ;
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...
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...
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
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