[Smarty] boucles imbriquées avec requêtes SQL, impossible à comprendre
Bonjour à tous
Je suis actuellement désespéré par un problème qui me hante depuis des jours.
Je recode un nouveau forum mais cette fois ci j'aimerais le faire avec un system template, j'ai choisi Smarty et j'ai trouvé que toute la documentation au niveau des boucles était nul car il n'y en avait pas enfaite.
j'aimerais savoir faire un affichage des catégories et des forums en boucle imbriquées bien sur mais je ne vois pas du tout comment faire avec les templates et les requete SQL ... je suis totalement perdu.
j'ai déja fait ceci mais ça ne m'a pas fait grand chose
Partie .tpl
Code:
1 2 3 4 5 6 7
|
{foreach from=$custid item=curr_id}
{foreach from=$curr_id item=curr_id2}
-> : {$curr_id} | {$curr_id}<br />
---> : {$curr_id2}<br />
{/foreach}
{/foreach} |
Partie PHP
Code:
1 2 3 4 5 6 7 8 9 10 11
| $sql = mysql_query("SELECT * FROM qualif_categorie");
while($req = mysql_fetch_array($sql))
{
$tpl->append('custid', array( $req['id'], $req['titre']));
$sqla = mysql_query("SELECT * FROM qualif_forum WHERE categorie = '".$req['id']."'");
while( $reqa = mysql_fetch_array($sqla))
{
$tpl->append('curr_id', array( $reqa['titre']));
}
} |
J'espère que vous pourrez m'aider car la je suis vraiment désespéré.
Merci d'avance pour votre aide qui m'est précieuse.
Cordialement dexxter
[Smarty] Affichage quand il ne faut pas : boucle imbriquées
Bonjour à tous
Pour mon nouveau forum j'ai voulu le faire avec les templates Smarty mais j'ai un petit problème.
J'ai fait mes deux boucles imbriquées pour l'affichage des catégories et des forums sur l'index mais le problèmes c'est que dans ma requete SQL j'ai bien dit d'afficher QUE les forums appartenant a cette catégorie mais malheureusement tout les forums de la table s'affiche dans TOUTE les catégories
Voici le code PHP
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| $categorie = array();
$forum = array();
$i = 0;
$j = 0;
$sql_1 = mysql_query("SELECT * FROM qualif_categorie ORDER BY id ASC");
while( $cat = mysql_fetch_array( $sql_1 ) )
{
$categorie_donnee = array(
"id" => $cat['id'],
"titre" => $cat['titre']
);
$categorie[$i++] = $categorie_donnee;
$sql_2 = mysql_query("SELECT * FROM qualif_forum WHERE categorie = '".$cat['id']."'");
while( $for = mysql_fetch_array( $sql_2 ) )
{
$forum_donnee = array(
"id" => $for['id'],
"titre" => $for['titre']
);
$forum[$j++] = $forum_donnee;
}
}
$tpl->assign("categorie", $categorie);
$tpl->assign("forum", $forum); |
et voici coté .tpl
Code:
1 2 3 4 5 6
| {section name=categorie loop=$categorie}
<a href="lien.php?id={$categorie[categorie].id}">{$categorie[categorie].titre}</a><br />
{section name=forum loop=$forum}
---><a href="lien2.php?id={$forum[forum].id}">{$forum[forum].titre}</a><br />
{/section}
{/section} |
et Voici le résultat obtenu
Citation:
Catégorie 1
--->Forum 1
Catégorie 2
--->Forum 1
Catégorie 3
--->Forum 1
Alors que ça devrais afficher
Citation:
Catégorie 1
--->Forum 1
Catégorie 2
Catégorie 3
Car le forum 1 appartient a Catégorie 1
Merci beaucoup de votre aide !
Merci d'avance
Cordialement DexteR