2 votes

Valeurs multiples dans un champ de la base de données

J'ai un tableau de spécifications pour certains produits. Certains produits existent en différentes couleurs. Pour que ce soit clair, il y a des petites cases de couleur. J'ai donc un champ de table "couleurs" qui stocke les couleurs comme ceci : noir, blanc, vert

Je suis venu jusqu'ici avec le code :

<?php 
foreach($result as $kleur) {

    $myString = $kleur['kleur'];
    $myArray = explode(',', $myString);
    print_r($myArray);
?>
    <tr>
        <td width="20%">Kleur:</td>
        <td>
            <div class="item">
                <img src="http://www.ledframes.nl/images/product_details/accessoires/kleuren/<?php echo $myArray[0];?>.jpg"/></a>
            </div>
        </td>
    </tr>
<?php
    }
?>

Le print_r montre toutes les valeurs du champ. Et si l'on change le nombre à echo $myArray[0], les cases de la bonne couleur apparaissent dans mon tableau de spécifications.

Ma question est la suivante : si le champ de couleur a plusieurs valeurs, comment puis-je le boucler pour qu'il affiche tous les blocs de couleur ?

J'ai lu quelque part que vous pouvez utiliser quelque chose comme ça :

foreach( $array as $name => $key)

J'ai essayé d'implémenter ceci dans mon code mais je n'arrive pas à le faire fonctionner.

1voto

dwytrykus Points 76

Si je comprends bien votre problème, $result est le tableau des enregistrements de la base de données, et pour chaque enregistrement (que vous appelez $kleur), $myArray est le tableau des noms de couleurs.

Ainsi, pour afficher tous les champs de couleur, il faut une autre boucle sur $myArray, par exemple comme ceci :

<?php 
foreach($result as $kleur) {

    $myString = $kleur['kleur'];
    $myArray = explode(',', $myString);
    print_r($myArray);
?>
<tr>
    <td width="20%">Kleur:</td>
    <td>
    <?php
    foreach($myArray as $colorName) {
    ?>
      <div class="item">
          <img src="http://www.ledframes.nl/images/product_details/accessoires/kleuren/<?php echo $colorName;?>.jpg"/></a>
      </div>
    <?php
    }
    ?>
    </td>
</tr>
<?php
}
?>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X