Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/02/2011, 12h16   #1
Invité de passage
 
Inscription : février 2011
Messages : 10
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 10
Points : 0
Points : 0
Par défaut aide tableau 2d

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 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
    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 :
1
2
3
4
5
6
7
8
9
10
 <?  
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>"; 
} 
?>
michael410 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2011, 13h12   #2
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 014
Points : 5 014
Hello,

je comprends pas ce que tu veux faire mais:
Citation:
pas de test si le produit est déjà dans le tableau
> utilise !empty, isset, in_array ou array_keys pour trouver si un élément du tableau est déjà présent.

Citation:
affichage de 8 images dont 7 vides si le tableau ne contient qu'une ligne
> utilise array_fill pour compléter ton tableau d'images
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2011, 13h20   #3
Invité de passage
 
Inscription : février 2011
Messages : 10
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 10
Points : 0
Points : 0
bonjour,
le tableau est imbriqué dans un autre tableau, je ne trouve pas la syntaxe pour faire le test,
Code php :
1
2
3
if (!isset($resultat['ID']), $ProdVu)) {
array_unshift($ProdVu, array("ID" => $resultat['ID'], "IMG" => $resultat[$image]));
}
ne marche pas
michael410 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2011, 14h25   #4
Membre éclairé
 
Homme Jérémy
Étudiant
Inscription : octobre 2009
Messages : 236
Détails du profil
Informations personnelles :
Nom : Homme Jérémy
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : octobre 2009
Messages : 236
Points : 322
Points : 322
Code :
1
2
3
4
5
6
$i=0;
 
while($i <= count($row))
{
   toncode;
}
gwharl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2011, 14h26   #5
Invité de passage
 
Inscription : février 2011
Messages : 10
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 10
Points : 0
Points : 0
j'ai donc trouvé pour le bug 2, le tableau étant dans un tableau, je compte le nombre de ligne du tableau - 1

Code php :
1
2
3
4
5
6
$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....
michael410 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2011, 14h38   #6
Membre éclairé
 
Homme Jérémy
Étudiant
Inscription : octobre 2009
Messages : 236
Détails du profil
Informations personnelles :
Nom : Homme Jérémy
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : octobre 2009
Messages : 236
Points : 322
Points : 322
Code :
1
2
3
4
 
if (!isset($resultat['ID']), $ProdVu)) {
array_unshift($ProdVu, array("ID" => $resultat['ID'], "IMG" => $resultat[$image]));
}
D'une part dans ton if tu met $ProdVu, certes mais tu en fait quoi de ta variable ?
Ensuite après avoir définis ton test, tu doit séparer celui-ci du précédent par un opérateur logique comme '&&' où '||' ce qui te donnera une syntaxe de ce style :

Code :
if (!isset($resultat['ID']) || isset($ProdVu))
Ensuite il me semblerais plus logique d'écrire cela (pas sur que ce soit ce que tu veuille enregistrer, il faudrait que tu nous donne une exemple de ce que tu souhaite au final) :

Code :
array_unshift($ProdVu, $resultat['ID'], $resultat['image']);
gwharl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2011, 16h36   #7
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 014
Points : 5 014
Pour tester l'existence d'une clé dans un tableau à 2 dimentions:
Code :
1
2
3
4
 
$a = array('a' => array('a1' => 1, 'a2' => 2));
 
var_dump(isset($a['a']['a1']));
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h49.


 
 
 
 
Partenaires

Hébergement Web