Avis à tous les utilisateurs de Template Smarty

Signaler
Messages postés
13
Date d'inscription
dimanche 18 septembre 2005
Statut
Membre
Dernière intervention
4 août 2007
-
Messages postés
13
Date d'inscription
dimanche 18 septembre 2005
Statut
Membre
Dernière intervention
4 août 2007
-
Bonjour a tous


Je suis au bord au suicide ... ça fait des heures que je regarde les
documentations sur smarty et il n'explique JAMAIS comment faire des
boucle et des double imbriquer !!! j'ai vu avec le foreach mais quand
je fais des boucle imbriquer tout foire


Je n'ai pas vraiment de code à vous montrer car c'est le bordel vu que je m'embrouille ...


Est ce que quelqu'un pourrait me donner un exemple pour me sortir de la *****
, il faudrait un simple exemple avec deux boucles imbriquer ... je demande pas un code complet mais un exemple si possible

Ou un site excellent ou c'est TRES bien expliquer ... j'aimerais
refaire un forum avec les templates mais je veu prendre smarty mais bon
si je ne sais pas faire mes double imbriquer ça n'ira pas


Merci beaucoup de votre aide


DexteR

6 réponses

Messages postés
111
Date d'inscription
lundi 20 octobre 2003
Statut
Membre
Dernière intervention
5 novembre 2008

Salut,

Explique moi pourquoi tu as besoin de faire des boucles imbriqués. Parce que normalement tu es responsable de formater les donnée en PHP de tel manière à ce que sa soit simple à gérer avec Smarty. Avec un foreach tu peux parcourir n'importe quel tableau en 2 dimensions.

Ce qui est incompréhensible, c'est que le monde soit compréhensible. (Albert Einstein)
Messages postés
13
Date d'inscription
dimanche 18 septembre 2005
Statut
Membre
Dernière intervention
4 août 2007

Ben pour l'affichage des catégories et des forums sur l'index il faut 2 boucles

une qui affiche les catégories
une autre qui affiche les forums appartenant à l'ID de la catégorie

je ne vois pas comment fait ça avec un tableau 2 dimensions mais se que je ne vois pas du tout c'est que comme je dois affiche le titre et mettre l'ID dans le lien ... comment faite toute ses choses la j'aimerais vraiment savoir

Merci beaucoup de votre aide ! et la tienne Yoteco
Messages postés
111
Date d'inscription
lundi 20 octobre 2003
Statut
Membre
Dernière intervention
5 novembre 2008

Je vais te donner un exemple:

Tout d'abord le code PHP ou je crée le tableau:
<?php
// Création des 2 tableaux
$forum = array();
$categorie = array();

// On crée 2 forum qui feront partie de la catégorie 1
$forum[0]['name'] = 'Nom du premier forum qui est dans la catégorie 1';
$forum[1]['name'] = 'Nom du deuxième forum qui est dans la catégorie 1';

// On crée la catégorie 1 et on ajoute les deux forums
$categorie[0]['name'] = 'Catégorie 1';
$categorie[0]['forum'] = $forum;

// On crée deux autres forum qui feront partie de la catégorie 2
$forum = array();
$forum[0]['name'] = 'Nom du premier forum qui est dans la catégorie 2';
$forum[1]['name'] = 'Nom du deuxième forum qui est dans la catégorie 2';

// On crée la catégorie 2 et on ajoute les deux forums
$categorie[1]['name'] = 'Catégorie 2';
$categorie[1]['forum'] = $forum;

// On passe le tableau categorie à Smarty
$Smarty->assign('categorie', $categorie);
?>

Puis le code Smarty:

<html>
    <head>
        <title>Bla</title>
    </head>
   
        <!-- début du foreach on prend une catégorie après l'autre -->
        { foreach from=$categorie key=cat }
            <!-- on affiche le nom de la catégorie -->
            { cat.name }
            <!-- deuxième boucle pour lister les forums -->
            { foreach from=$cat.forum key=forum }
                <!-- on affiche le nom du forum -->
                { $forum.name }
            { /foreach }
        { /foreach }
   
</html>

Voilà je n'ai pas tester mon code... Mais sa devrait marcher !

Ce qui est incompréhensible, c'est que le monde soit compréhensible. (Albert Einstein)
Messages postés
13
Date d'inscription
dimanche 18 septembre 2005
Statut
Membre
Dernière intervention
4 août 2007

J'ai un peu du mal à comprendre ... à cause des requete SQL ... je vois pas comment les disposer avec ton system ( il fonctionne ) mais est ce que tu saurais me donner un exemple avec des requete SQL ? je te remercie

Cordialement DexteR
Messages postés
111
Date d'inscription
lundi 20 octobre 2003
Statut
Membre
Dernière intervention
5 novembre 2008

Faut tout faire ici... lol

$categorie = array();
$catI = 0;
$query1 = "SELECT * FROM `ta_table_categorie`";
$result1 = mysql_query($query1) or die(mysql_error());
while($row = mysql_fetch_object($result1))
{
    $forumI = 0;
    $forum = array()    $query2 "SELECT * FROM `ta_table_forum` WHERE id '".$row->champs_id."';
    $result2 = mysql_query($query2); or die(mysql_error());
    while($row2 = mysql_fetch_object($result2))
    {
        $forum[$forumI]['name'] = $row2->champs_nom_du_forum;
        $forumI++;      
    }
    $categorie[$catI]['name'] = $row->nom_de_la_categorie;
    $categorie[$catI]['forum'] = $forum;
    $catI++;
}

Voilà j'ai tapé sa comme ça... Pas sûr que sa marche du premier coup! Mais le principe y est...

Ce qui est incompréhensible, c'est que le monde soit compréhensible. (Albert Einstein)
Messages postés
13
Date d'inscription
dimanche 18 septembre 2005
Statut
Membre
Dernière intervention
4 août 2007

Salut

merci pour ton exemple... j'ai réussi a trouvé a faire mes requete imbriqué

$categorie     = array();
$forum         = array();
$i             = 0;
$j             = 0;

$sql_1 = mysql_query("SELECT * FROM qualif_categorie ORDER BY id ASC");
while( $cat = mysql_fetch_object( $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_object( $sql_2 ) )
    {
        $forum_donnee = array(
                        "id"     => $for->id,
                        "titre" => $for->titre
                            );
                           
            $forum[$j++] = $forum_donnee;
       
    }
}

$tpl->assign("categorie", $categorie);
$tpl->assign("forum", $forum);

voila le code ... il fonctionne mais le probleme c'est que les forum N'appartenant pas a la catégorie s'affiche quand meme dans TOUTE les catégorie ... j'ignore pourquoi :s alors que j'ai regarder les variable je les ai afficher et ça met bien se qu'il faut mais malheureusement ça affiche dans toute les catégorie