Avis à tous les utilisateurs de Template Smarty

damien7755 Messages postés 13 Date d'inscription dimanche 18 septembre 2005 Statut Membre Dernière intervention 4 août 2007 - 25 avril 2007 à 20:53
damien7755 Messages postés 13 Date d'inscription dimanche 18 septembre 2005 Statut Membre Dernière intervention 4 août 2007 - 29 avril 2007 à 16:19
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

Yoteco Messages postés 111 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 5 novembre 2008
27 avril 2007 à 09:57
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)
0
damien7755 Messages postés 13 Date d'inscription dimanche 18 septembre 2005 Statut Membre Dernière intervention 4 août 2007
27 avril 2007 à 13:25
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
0
Yoteco Messages postés 111 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 5 novembre 2008
27 avril 2007 à 15:30
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)
0
damien7755 Messages postés 13 Date d'inscription dimanche 18 septembre 2005 Statut Membre Dernière intervention 4 août 2007
27 avril 2007 à 15:59
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Yoteco Messages postés 111 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 5 novembre 2008
29 avril 2007 à 16:00
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)
0
damien7755 Messages postés 13 Date d'inscription dimanche 18 septembre 2005 Statut Membre Dernière intervention 4 août 2007
29 avril 2007 à 16:19
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
0
Rejoignez-nous