Formulaire avec un nombre de champs variable [Résolu]

nlsitdeo 2 Messages postés mercredi 6 janvier 2010Date d'inscription 27 mai 2010 Dernière intervention - 26 mai 2010 à 20:35 - Dernière réponse : nlsitdeo 2 Messages postés mercredi 6 janvier 2010Date d'inscription 27 mai 2010 Dernière intervention
- 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
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
devil_may_cry 195 Messages postés dimanche 18 mars 2007Date d'inscription 11 juillet 2015 Dernière intervention - 27 mai 2010 à 06:03
3
Merci
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 ...

Merci devil_may_cry 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de devil_may_cry
nlsitdeo 2 Messages postés mercredi 6 janvier 2010Date d'inscription 27 mai 2010 Dernière intervention - 27 mai 2010 à 21:26
0
Merci
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 !!!
Commenter la réponse de nlsitdeo

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.