foreach

Eléphanteau du PHP | 16 Messages

13 févr. 2008, 11:16

Bonjour a tous, après une recherche sur le fofo je me tourne vers vous pour vous demander votre aide :wink:

J'aimerai réaliser un affichage de produit relié à une base de donnée.
J'ai d'abord mis toute les informations de chaque produit dans un tableau et ensuite je vais un foreach sur le tableau en question pour afficher mes produits mise en forme (bloc_cata.php).
Ce que je comprend pas c'est que dans mon exemple j'ai 5 produits qui correspondent à la requête.
Et quand je fais print_r($prod) j'ai 6 entrées dont une completement vide. du coup j'ai un div vide qui s'affiche.

Le code pour le contenu de la requete dans le tableau
if($titre_categorie=="produit"){
$sql="select * from produit where categorie_prod=$rubrique and promo=0";
$req=mysql_query($sql);
//echo $sql;

// tableau a double dimension $i designant chaque produit===================================
$i=0;
//resultat de la requete dans un tableau
while($prod[$i]=mysql_fetch_array($req,MYSQL_ASSOC)){
	$i++;
}
print_r($prod)."<br>";
//fixer la taille de la div pour la largeur
echo "<div style='width:600px;' align='center'>";

//On passe en revu les tableaux
$fiche= 0; //compteur du tableau pour  tous les champs du produit

//print_r($prod);
foreach($prod as $value){
	include('fonction/bloc_cata.php');
	//$html .=$prod[2]['nom_prod'];
	echo $html;
	$fiche++;
//fin foreach
}
echo "</div>";
}
Je pense que le problème viens du while mais je vois pas ...Un petit coup de main svp :oops:

d0m
Mammouth du PHP | 1141 Messages

13 févr. 2008, 11:27

Salut à toi,

le compteur $i n'est pas utile, il suffit de faire
while($prod[]=mysql_fetch_array($req,MYSQL_ASSOC))
Cela incrémentera automatiquement.
Et quand je fais print_r($prod) j'ai 6 entrées dont une completement vide
quelle entrée, la première ou la dernière?

Essaie de remplacer
while($prod[]=mysql_fetch_array($req,MYSQL_ASSOC)){
}
par
while($produit=mysql_fetch_array($req,MYSQL_ASSOC)){
  $prod[] = $produit;
}
Le problème est toujours là?

Eléphanteau du PHP | 16 Messages

13 févr. 2008, 11:32

YEAH ca roule merci bien :P
Pour info c'était la dernière entrée qui était vide. Merci pour ta réponse ultra rapide ^^.
a+