MySQL dans liste déroulante

Résolu
salut tous le monde,

je vais essayer d'être claire, j'ai un petit probleme qui je suis sur va vous prendre 2,5 secondes a resoudre, tous du moins j'espère.

je souhaite affiché 2 champs d'une table dans 1 liste deroulante, et que cette liste me renvoi la valeur des 2 champs pour pouvoir l'ecrire dans le champ d'une autres table.

voici mon code
merci a tous pour votre aide

//je suis deja connecté a la bdd en PDO

<?php
$rep_enseigne = $bdd->query('SELECT enseigne,ville FROM client');
$rep_enseigne->execute(array('enseigne', 'ville'));

echo '<select>';
foreach($rep_enseigne as $element1)
{
echo '<option value:"'.$element1[0].'">'.$element1[0].'</option>'."\n";
}

echo '</select>'
?>

8 réponses

  1. Bonjour,

    Euhm je n'ai pas fait de php depuis un moment, mais tu ne devrais pas parcourir ton tableau element1 ? C'est-à-dire modifier ton foreach à la fin comme ça :

    i=0;
    foreach($rep_enseigne as $element1) 
    { 
    i=i+1;
    echo '<option value:"'.$element1[i].'">'.$element1[i].'</option>'."\n"; 
    } 
    0
    1. bonjour,

      Il faut connaître la nature du contenu du tableau $rep_enseigne

      Pour celà, faire un print_f($rep_enseigne); avant la boucle.

      Si c'est un tableau associatif comem je le suppose,a boucle foreach sera de ce type:

      foreach($rep_enseigne as $key => $row)  {  // $row  = ligne de données
           echo $row['enseigne'];
           echo $row['ville'];
          echo "<br>\n";
      } 


      Ce petit bout de code donne une idée du contenu du tableau. Si j'ai raison, je comprends pas pourquoi mettre dans option:

      <option value='CARREFOUR'>LA VILLE DU BOIS</option>

      En tant qu'identifiant unique, il serait plus judicieux de sortir l'id de l'enregistremenrt en tant que valeur de OPTION.... Non?

      A+
      0
    2. en faite le résulta que je veut avoir c'est plus ça:
      <option value='CARREFOUR LA VILLE DU BOIS'>CARREFOUR LA VILLE DU BOIS</option>
      enfaite je veut récupéré la valeur de 2 champs en lecture pour le renvoyer dans une autre table de ma bdd dans un seul champs
      0
    3. Bonjour,

      la solution:

      <option value='CARREFOUR LA VILLE DU BOIS'>CARREFOUR LA VILLE DU BOIS</option> 


      Utiliser un caractère spécial, genre "pipe" | et faire comme ceci:

      <select name="mesDonnees"> 
        <option value='CARREFOUR|LA VILLE DU BOIS'>CARREFOUR LA VILLE DU BOIS</option> 
        ...mes autres options... 
      </select> 


      Après envoi des données, dans le script de traitement, on retrouve ceci:

      echo $_POST['mesDonnees'];


      affiche CARREFOUR|LA VILLE DU BOIS

      noter le | , on sépare les données comme ceci:

      list($magasin, $commune) = explode('|', $_POST['mesDonnees']); 
      echo $magasin."<br>".$commune;


      affiche:

      CARREFOUR
      LA VILLE DU BOIS

      A+
      0