Page 1 sur 1

aide tableau 2d

Posté : 16 févr. 2011, 13:20
par michael410
bonjour
j'ai récupéré un morceau de code pour enregistrer les produits consultés mais je n'arrive pas à corriger 2 bugs:
1. pas de test si le produit est déjà dans le tableau
2. affichage de 8 images dont 7 vides si le tableau ne contient qu'une ligne

est ce qu'une bonne âme peut m'aider?

Code : Tout sélectionner

if (isset($_SESSION['ProdVu'])) { $ProdVu = ($_SESSION['ProdVu']); } else { $ProdVu = array(array()); } // ici bug1 manque test si article deja present array_unshift($ProdVu, array("ID" => $resultat['ID'], "IMG" => $resultat[$image])); if (sizeof($ProdVu) > 8) { array(array_pop($ProdVu)); } //limite a 8 $_SESSION['ProdVu'] = $ProdVu; $NbProdVu = sizeof($ProdVu);
partie affichage:

Code : Tout sélectionner

<? for ($row = 0; $row < 8; $row++) //ici bug 2 { echo "<td><a href='lien.php?ID=".$ProdVu[$row]['ID']."'> <img src='/".$ProdVu[$row]['IMG']."' border='0' width='50' /> </a> </td>"; } ?>

Re: aide tableau 2d

Posté : 16 févr. 2011, 13:33
par xTG
Bug 2 : il faut tester l'existence de la variable => isSet() ou empty()

Re: aide tableau 2d

Posté : 16 févr. 2011, 15:30
par michael410
j'ai trouvé pour le bug 2, le tableau étant dans un tableau, je compte le nombre de ligne du tableau - 1

$NbProd=sizeof($ProdVu);

for ($row = 0; $row < ($NbProd-1); $row++)
{
echo "<a href='lien.php?ID=".$ProdVu[$row]['ID']."'><img src='/".$ProdVu[$row]['IMG']."' width='50' /></a>";
}

je cale completement sur le bug1....

Re: aide tableau 2d

Posté : 16 févr. 2011, 15:45
par xTG
Pour le bug 1 : in_array()
Je ne l'ai pas posté avant car je n'étais pas sûr qu'on pouvait lui faire rechercher un tableau. :)

Re: aide tableau 2d

Posté : 16 févr. 2011, 15:59
par michael410
merci, je trouve pas comment faire le test dans le tableau, ce dernier etant deja dans un tableau (sic...)

Re: aide tableau 2d

Posté : 16 févr. 2011, 17:16
par xTG
Exemple numéro 3 de la documentation. ;)

Re: aide tableau 2d

Posté : 16 févr. 2011, 17:27
par michael410
if (in_array(array($resultat['ID']), $ProdVu)) {
}else{
array_unshift($ProdVu, array("ID" => $resultat['ID'], "IMG" => $resultat[$Image]));
}

>> marche toujours pas, je vais devenir fou....

pour info un print_r me donne:
Array ( [0] => Array ( [ID] => 8675 [IMG] => 8675.jpg ) [1] => Array ( [ID] => 14564 [IMG] => 14564.jpg ) [2] => Array ( [ID] => 14564 [IMG] => 14564.jpg ) [3] => Array ( ) )

Re: aide tableau 2d

Posté : 16 févr. 2011, 17:30
par xTG
Ton print_r() nous renseigne bien pourtant sur le fait que le tableau intérieur ne contient pas que l'id. ;)
Pour PHP : array( 'id' => 1) != array( 'id' => 1, 'img' => "image.jpg")

Re: aide tableau 2d

Posté : 16 févr. 2011, 17:41
par michael410
est ce qu'il y a un forum extra debutant? ou gros nuls?
car là je suis absolument pas...

Re: aide tableau 2d

Posté : 16 févr. 2011, 19:44
par xTG
C'est pas une question de langage qui te bloque mais de compréhension. :/
Je t'explique avec un bel exemple ce qui ne va pas.

Si tu préfères avec des termes sur un autre exemple plus simple :
Pour PHP : "toto" != "tata"
Et aussi : "toto" != "toto1"