GAGA Template

XLetter

Problème avec les balises

Vous devez être inscrit et connecté pour pouvoir écrire dans les forums

Page : 1
zeldalyoko Posté le 09/01/2008 16:43 - #

Membre
7 messages
17 ans
Coucou,

Déjà pour commencer je ne sais pas si je suis dans la bonne catégorie et je n'ai pas trouver mieu comme titre

J'ai un problème d'affichage, j'ai 3 blocks à afficher mais je ne vois pas la variable à afficher dans le fichier .tpl

Voici mes codes :
<?php
$forum = mysql_query('SELECT * FROM forum_forum');
        while($dforum = mysql_fetch_array($forum))
        {
                if($_SESSION['statut']>=$dforum['autorise'])
                {
                        $tpl->assign_block('forum_principal',array(
                                'titre_categorie'=>$dforum['titre']
                                ));
                }
               
                        $sql_sous_forum=mysql_query('SELECT * FROM forum_categorie WHERE categorie_forum='.$dforum['id'].'');
                        while($reponse_sous_forum=mysql_fetch_array($sql_sous_forum))
                        {
                                $id_message_total=nb_message_forum($reponse_sous_forum['id']);
                                        $id=id_topic($reponse_sous_forum['id']);
                                        $tpl->assign_block('forum_principal.forum_contenu',array(
                                        'titre'=>$reponse_sous_forum['titre'],
                                        'description'=>$reponse_sous_forum['description'],
                                        'c'=>$reponse_sous_forum['id'],
                                        'id'=>$id,
                                        'Id_message_total'=>$id_message_total
                                ));
                               
                                        $sql_sous=mysql_query('SELECT * FROM forum_categorie WHERE sous_categorie='.$reponse_sous_forum['id'].'');
                                        while($reponse_sous=mysql_fetch_array($sql_sous))
                                        {
$tpl->assign(array('afficher_sous=>1'));        $tpl->assign_block('sous_categorie',array('sous_titre'=>$reponse_sous['titre']));
                                        }
                        }
        }
?>


Le code .tpl
        <div id=corps><div class=article><table width="100%" cellpadding="2" cellspacing="1" border="1">
        <tr>
<th colspan="1" class="case">Forums</th>
<th  nowrap="nowrap" class="case">Topics</th>
<th  nowrap="nowrap" class="case">Messages</th>
</tr>
       
        <!-- BEGIN forum_principal -->
        <center>
       

        <tr><td class="case" colspan="3" height="18"><span class="cattitle"><center><b>{$titre_categorie}</b></center></td></tr>
       
        <!-- BEGIN forum_principal.forum_contenu -->
       
<td width="40%" class="case" height="10"><center><b><a href=index.php?action=topic&c={$c}>{$titre}</a></center></b>{$description}<br/>
{if($afficher_sous==1)}
Sous forum :
<!-- BEGIN forum_principal.forum_contenu.categorie -->
{$sous_titre}
<!-- END forum_principal.forum_contenu.categorie -->
{/if}
</td>
<td width="5%" class="case" height="10"><center>{$id}</center></td>
<td width="5%" class="case" height="10"><center>{$Id_message_total}</center></td></tr>

<!-- END forum_principal.forum_contenu -->
</center></div></div>
<!-- END forum_principal -->
</table>


Je ne sais pas si tu m'as compris, j'aimerais une aide... Tu as une idée ?

Ze Thriller Posté le 09/01/2008 17:46 - #


Membre
105 messages
24 ans
1. Pourrais-tu décrire le problème stp ? (j'ai une petite idée mais à confirmer)
2. Des requêtes SQL dans des boucles, d'autant plus sur plusieurs niveaux, c'est super pas optimisé et dans les cas extrêmes, ça fait crasher php.

Voir les jointures et unions en SQL =)

zeldalyoko Posté le 09/01/2008 18:15 - #

Membre
7 messages
17 ans
Je connais les jointures seulement je ne vois pas ou les mettres (C'est quoi ce que tu appelle cas extrème ?)

Le problème c'est qu'on ne voit que des variables invariables :P (dans Sugestion)

zeldalyoko Posté le 12/01/2008 01:56 - #

Membre
7 messages
17 ans
Vous n'avez pas une petite aide ? un conseil ?
Vous n'avez peut-être pas compris (car moi et les explications ^^'), si c'est le cas dite le moi j'essayerai de vous réexpliquez mieux...

Mais, j'aimerais vraiment régler ce problème J'ai passer plus de deux heures aujourd'hui je n'ai pas reuçit, peut-être que vous...

Merci !

gaga26 Posté le 12/01/2008 12:00 - #



741 messages
18 ans
Salut,

As-tu mis la variable compile à true (cf. documentation) ???

zeldalyoko Posté le 12/01/2008 16:20 - #

Membre
7 messages
17 ans
Ouais, sa change pas grand chose

Ze Thriller Posté le 12/01/2008 16:55 - #


Membre
105 messages
24 ans
Cas extrême: les deux seuls que j'ai pu constater pour l'instant sont:

Un serveur free, php4.4/MySQL4 (c'est vieux !), avec des includes sur 3 niveaux. Total: Environ 50 includes.

Mon serveur local, à l'époque d'EasyPHP 1.8 (même époque ou à peu près), pareil excepté MySQL 5: crash avec une boucle contenant 20 TRES GROS includes, sur un seul niveau d'imbrication (ex: include(...) et dedans include(...) constitue un niveau 2)

Et pour les jointures, tu peux (d'ailleurs je crois que tu n'as pas le choix ) les mettre à ta première requête, du genre:


$rq_result=mysql_query('SELECT b.*, a.* FROM table_de_base a LEFT JOIN table_secondaire b ON a.id=b.parent_id WHERE a.champ_test1=0 AND b.champ_test2=1 LIMIT 0,10');
 


Bon j'ai mélangé un peu tout, mais juste un détail: "table_de_base a" constitue un alias. Très pratique à utiliser quand les noms des tables font 3Km de long

zeldalyoko Posté le 24/01/2008 02:54 - #

Membre
7 messages
17 ans
Coucou,

Je ne trouve toujours pas, vous n'avez aucune idée vous ?

zeldalyoko Posté le 24/01/2008 20:34 - #

Membre
7 messages
17 ans
Coucou,

Bon finalement, j'ai trouver... Un problème de variable, pas la première fois que gagatemplate me fais sa...

Y a pas un moyen d'éviter ce genre de problème ?
Mon code fonctionne, mais le seul moyen d'y arriver c'est de donner les mêmes noms de variable que dans les autres blocs

Ze Thriller Posté le 06/02/2008 12:03 - #


Membre
105 messages
24 ans
Ce qui parait parfaitement logique.

Pour différents noms de blocs, préfixes les variables qui vont avec par les initiales du nom du bloc, ça coûte rien par contre ça fait diablement plus propre et c'est trèe pratique après pour le repérage.

Page : 1

Vous devez être inscrit et connecté pour pouvoir écrire dans les forums

Retour au forum Méthodes, à la liste des forums, ou au haut de page