seif4rock
Messages postés9Date d'inscriptionmercredi 9 juillet 2008StatutMembreDernière intervention29 avril 2009
-
30 déc. 2008 à 15:18
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 2012
-
2 janv. 2009 à 16:23
Bonjour à tous
Je suis entrain de développer une application de facturation pour une compagnie de transport.
Une facture peut avoir un ou plusieurs articles.
J'ai crée d'abord un formulaire pour la saisie d'une facture avec un champ pour la saisie du nombre d'articles (n) correspondant à cette facture.
Ensuite, quand je valide le formulaire et j'insère les données dans la table facture(fait), je veux créer un formulaire pour la saisie des articles, il y aura donc n formulaires correspondant chacun à un article, puis insérer ces données dans la table articles.
ça ressemble un peu au formulaire du phpMyAdmin qui demande le nombre de champs puis affiche tant de lignes de formulaires que le nombre de champs saisis.
J'espère que j'ai pu expliquer le problème.
Merci pour votre aide.
Seif4rock
seif4rock
Messages postés9Date d'inscriptionmercredi 9 juillet 2008StatutMembreDernière intervention29 avril 2009 30 déc. 2008 à 16:22
Donc vous proposez de faire une boucle sur les champs de saisie des articles..
Mais reste encore la récupération des données saisies car on a plus un seul mais n champs a insérer dans la table articles (on a plus par exemple une seule quantité à insérer ($_POST['quantite']) mais n quantité à inserer)
Merci
Seif4rock
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 30 déc. 2008 à 16:59
Re,
Le mieux est encore de construire les champs sous cette forme :
...
Comme ça tu récupères un array du genre :
[ref] => Array
(
[0] =>
[reference du premier article]
[1] =>
[reference du second article]
[2] =>
...)
[prix] => Array
(
[0] =>
[prix du premier article]
[1] =>
[... du second]
[2] =>
...)
[qte] => Array
(
[0] =>
[1] =>
[2] =>
)
ensuite l'insertion en DB :
foreach ($_POST as $cat=>$value) {
$sql = "INSERT into DB (reference, prix, qte) VALUES ('$value[0]','$value[1]','$value[2]')";
}
----
';
}
***************************
Ensuite je récupère comme tu me l'as dit ces données et j'essaie l'insèrtion dans ma table:
**********************
<?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...
ça fait deux jours ke j'essaie mais j'obtiens tjrs pas de résultat...
Seif4rock
Vous n’avez pas trouvé la réponse que vous recherchez ?
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 2 janv. 2009 à 11:22
Salut,
J'ai une erreur dans mon code. Au lieu de :
foreach ($_POST as $cat=>$value) {
$sql = "INSERT into DB (reference, prix, qte) VALUES ('$value[0]','$value[1]','$value[2]')";
}
=>
for ($i=0; $i < count($_POST); $i++) {
$sql = 'INSERT into DB (reference, prix, qte) VALUES ('.$_POST['ref'][$i].','.$_POST['prix'][$i].','.$_POST['qte'][$i].')';
}
'', '".$_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 table article sauf celles de la TVA, elle est toujours nulle???
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 2 janv. 2009 à 16:23
C'est le rêve une TVA toujours nulle !!! ... si seulement tu pouvais travailler aux impôts
Fais un :
print_r[$_POST] tout en haut de ta page. Si 'code_tva' n'est pas correct ça vient du formulaire, sinon il peut y avoir un pb sur cette valeur vis à vis de mysql :
if (false === mysql_query("INSERT INTO[...])) die (mysql_error());