Bonjour à tous !
Pour une appli de gestion des stocks, je crée un array à partir des données d'une table.
Je récupère l'id produit ainsi que les valeurs des options (couleurs et tailles) pour chaque produit.
Ce tableau multi-dimensions, une fois créé, se présente ainsi (exemple sur deux produits) et est stocké dans une variable $tableau :
Ce code fonctionne très bien lorsque je code "en dur" $tableau :
Voici le code que j'utilise pour l'exploiter :
Seulement, lorsque je veux exploiter le $tableau créé à partir de ma requête SQL, je me retouve avec cette erreur :
Warning: Invalid argument supplied for foreach() in etc...
Logique, puisque lorsque je fais un gettype(), il me retourne qu'il s'agit d'un type String.
Forcer le type par un settype($tableau, "array"); ne fonctionne pas.
Des idées ?
Merci d'avance !
Modifié par Keyser Soze (26 Mar 2007 - 14:12)
Pour une appli de gestion des stocks, je crée un array à partir des données d'une table.
Je récupère l'id produit ainsi que les valeurs des options (couleurs et tailles) pour chaque produit.
Ce tableau multi-dimensions, une fois créé, se présente ainsi (exemple sur deux produits) et est stocké dans une variable $tableau :
array(array(102,array(10,11,13,14,49,50),array(1,2,5,6,7,8)),array(183,array(41,44,47,50),array(5,6,7,8)))
Ce code fonctionne très bien lorsque je code "en dur" $tableau :
$ tableau = array(array(102,array(10,11,13,14,49,50),array(1,2,5,6,7,8)),array(183,array(41,44,47,50),array(5,6,7,8)))
Voici le code que j'utilise pour l'exploiter :
function afficher_tableau($tableau)
{
// on fait une boucle qui lit les éléments du tableau
foreach ($tableau as $cle=>$valeur)
{
// si l'un des éléments est lui même un tableau
// alors on applique la fonction à ce tableau
if(is_array($valeur))
{
// on affiche le nom de la clé et
// le début d'une liste pour
// décaler le contenu vers la droite
echo $cle.' : <ul>';
// ici se réalise la récursivité
// c'est à dire qu'on applique la fonction
// à l'élément en cours car c'est lui aussi un tableau
afficher_tableau($valeur);
// on ferme la liste
echo '</ul>';
}
// si ce n'est pas un tableau
// alors on affiche le contenu de l'élément
else
{
echo $cle.' = '.$valeur.' <br>';
}
}
}
Seulement, lorsque je veux exploiter le $tableau créé à partir de ma requête SQL, je me retouve avec cette erreur :
Warning: Invalid argument supplied for foreach() in etc...
Logique, puisque lorsque je fais un gettype(), il me retourne qu'il s'agit d'un type String.
Forcer le type par un settype($tableau, "array"); ne fonctionne pas.
Des idées ?
Merci d'avance !
Modifié par Keyser Soze (26 Mar 2007 - 14:12)