8792 sujets

Développement web côté serveur, CMS

Bonsoir à tous,

j'ai une question bête. Je n'arrive pas à faire une liste dans une liste... Il y a toujours quelque chose qui cloche.


<table border="0" cellpadding="0" cellspacing="3" align="center" width="770">
	<?
	$presse = new utilsPresse();
	$listelivre = $presse -> listelivre();
	
	for($i=0;$i<sizeof($listelivre);$i++){
	$p = $listelivre[$i];
echo"<tr><td class=\"agenda_type\">".$p -> getTitreLivre()."</td></tr><tr><td class=\"texte_liste\">";
	
	$presse = new utilsPresse();
	$liste = $presse -> liste($p -> getIdLivre());
	
	for($i=0;$i<sizeof($liste);$i++){
	$p = $liste[$i];
echo"<a href=\"presse_aj.php?id_presse=".$p -> getIdPresse()."\">".$p -> getJournal()."</a><br/>";
	}
	echo"</td></tr>";
	}
	?>
</table>


Quelqu'un aurait l'expérience et l'oeil pour m'aider ?

Merci beaucoup,
Aurélia.
Modifié par Fugugirl (09 Jan 2007 - 00:40)
Je n'y connais pas grand chose, mais est-ce qu'il n'y a pas un risque en utilisant deux fois la même variable comme compteur (en l'occurence $i) ?

La deuxième boucle réinitialise $i à chaque fois, non ? En utilisant une variable $j pour la deuxième boucle, ça n'irait pas mieux ?
Tu es un Dieu Smiley smile

Je débute en php... donc je ne suis pas familière avec tous ses $.

Merci infiniment.

A.
Fugugirl a écrit :
Je débute en php... donc je ne suis pas familière avec tous ses $.

Si tu débutes en PHP, mieux vaut alors prendre immédiatement les bonnes habitudes.

Quelques conseils :
- les balises php c'est <?php ...le code... ?> (Les shorts tags ne sont pas portables)
- Il vaut mieux adopter le ' pour entourer tes chaines :
echo 'blabla'; plutôt que echo "blabla" ce qui évitera d'avoir des antislashes partout comme dans ton code :
echo '<a href="presse_aj.php?id_presse='.$p -> getIdPresse().'">'

mieux que :
echo"<a href=\"presse_aj.php?id_presse=".$p -> getIdPresse()."\">"

- utilisation de foreach préférable à celle de for, si les données viennent d'une table un while.

Ensuite, sur la structure même de ton code, une boucle dans une boucle c'est pas vraiment la meilleure des solus.

Voili, voilou.
Ah oui, si tu veux bien débuter en php, il y a d'excellents tutos sur phpdebutant.

Bonne année aussi.
Modifié par Bison (09 Jan 2007 - 07:46)
+1 pour le foreach quand tes données viennent d'un array ce qui semble être le cas. Du coup même pas besoin de mettre un compteur. Et rien n'empêche de mettre un foreach dans un foreach, c'est moins dramatique que le while qui, mal codé, peut générer une boucle à l'infini, ce qui n'est pas sympa pour les autres sites hébergé sur un serveur mutualisé (ca occupe bcp de ressources pour rien).
Modifié par zzzazzz (09 Jan 2007 - 09:14)
Bonjour et bonne année en effet,

merci pour vos remises dans le droit chemin. Je vais tout de suite me mettre au echo'....';

Je ne comprends pas encore tout à vos préférences foreach... mais je les garde précieusement.

Aurélia.