Bonjour à tous,
J'ai un formulaire de commande, les produits disponibles sont extraits d'une table MySQL produits et ne sont pas toujours les mêmes (n'apparaissent que ceux qui sont oklot=1.
Mon problème est de générer automatiquement le nom du champs "qte" et qu'il suive sur la page de traitement en y associant la valeur des champs "id" et "prix" pour calculer les totaux.
Code PHP :
$select7 = "SELECT * FROM produits WHERE oklot='1' AND categorie='PPA' ORDER BY rproduit ";
$result7 = mysql_query($select7,$connexion) or die ('Erreur : '.mysql_error() ); $total7 = mysql_num_rows($result7);
if($total7) {
while ($row7 = mysql_fetch_array($result7)) {
echo '<tr>';
echo '<td>'.$row7["libelle"].' <b></td>';
echo '<td>'.$row7["prix"].' <b></td>';
echo '<td><input type="text" size="3" name="qte'.$row7["id"].'." value="'.$row7["qte"].'"> <b></td>';
$select8 = "SELECT * FROM produits WHERE oklot='1' AND categorie='PPB' ORDER BY rproduit ";
$result8 = mysql_query($select8,$connexion) or die ('Erreur : '.mysql_error() ); $total8 = mysql_num_rows($result8);
if($total8) {
while ($row8 = mysql_fetch_array($result8)) {
echo '<tr>';
echo '<td>'.$row8["libelle"].' <b></td>';
echo '<td>'.$row8["prix"].' <b></td>';
echo '<td><input type="text" size="3" name="qte'.$row8["id"].'." value="'.$row8["qte"].'"> <b></td>';
La seule solution que j'ai trouvé est tés loin d'être optimale puisque je fais ceci POUR CHAQUE PRODUIT !!! Il y en a 250 possible... :
Code PHP :
$id1 = $_POST['id1'];
$qte1 = $_POST['qte1'];
$sql_pdt1= "SELECT * FROM pdts WHERE id = '$id1'";
$query_pdt1= mysql_query($sql_pdt1);
$res_pdt1 = mysql_fetch_array($query_pdt1);
$prixu1= $res_pdt1['prixu'];
$libelle1 = addslashes($res_pdt1['libelle']);
$categorie1= $res_pdt1['categorie'];
$montant1 = $qte1* $prixu1;
if($qte5>'0')
{
$sql_insert1 = mysql_query("INSERT INTO panier VALUES ('', '$rclient', '$rlot', '$id1', '$qte1', '$prixu1', '$libelle1', '$montant1', '$categorie1');"); }
Le début de piste que j'ai essayé de suivre pour arranger ça est de mettre les valeurs en array mais je ne vois pas comment appliquer cela à un nombre de champs variable.
Merci de m'aider.
Nicolas