Formulaire avec un nombre de champs variable

Résolu
nlsitdeo Messages postés 2 Date d'inscription mercredi 6 janvier 2010 Statut Membre Dernière intervention 27 mai 2010 - 26 mai 2010 à 20:35
nlsitdeo Messages postés 2 Date d'inscription mercredi 6 janvier 2010 Statut Membre Dernière intervention 27 mai 2010 - 27 mai 2010 à 21:26
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.

  $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"].' </td>'; 
  echo '<td>'.$row7["prix"].' </td>'; 	
  echo '<td> </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"].' </td>'; 
  echo '<td>'.$row8["prix"].' </td>'; 	
  echo '<td> </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... :

$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

2 réponses

devil_may_cry Messages postés 194 Date d'inscription dimanche 18 mars 2007 Statut Membre Dernière intervention 11 juillet 2015
27 mai 2010 à 06:03
salut
voila une information qui pourra peu etre aider le html lui meme permet d'envoyer des tableaux donc tu poura juste faire

insi a la reception t'a juster a boucler sur $_POST['qte'] pour avoir les qunatites et pour id et prix tu faix la meme chose et l'ordre importera peut vu que la correspondance tu pourra la faire avec les index ce qui veut dire que $_POST['qte'][0]=>$_POST['prix'][0]=>$_POST['id'][0] etc ...
3
nlsitdeo Messages postés 2 Date d'inscription mercredi 6 janvier 2010 Statut Membre Dernière intervention 27 mai 2010
27 mai 2010 à 21:26
Me voilà débloqué...

Pour ceux que ça pourrait intéresser dans l'avenir voici ma boucle :

	for ($i = 0; $i < 1; $i++)
{
$id[] = $_POST['id'][$i];
$qte[] = $_POST['qte'][$i];
$prix[] = $_POST['prix'][$i];

foreach($_POST['id'] as $cle => $value)
{
echo ''.$id[$cle].', '.$qte[$cle].' , '.$prix[$cle].'  
'; }} 


Merci beaucoup devil_may_cry !!!
0
Rejoignez-nous