Welcome, Guest. Please login or register.
Did you miss your activation email?
February 12, 2012, 05:07:49 AM

Login with username, password and session length
Search:     Advanced search
Interested in joining the WebsiteBaker team?
For more Information read here or on our new website.
149621 Posts in 21098 Topics by 7537 Members
Latest Member: lotte2
* Home Help Search Login Register
Pages: [1]   Go Down
Print
Author Topic: boucles imbriquées  (Read 2210 times)
nesquick

Offline Offline

Posts: 12


« on: February 05, 2009, 02:19:10 PM »

Bonjour,
Je trafique un peu l'admin pour ajouter des fonctionnalités. Je voudrais imbriquer deux boucles, j'ai vu dans la doc que c'était possible, mais je n'y arrive pas. Si quelqu'un pouvait me dire où je fais mal, ce serait sympa...
Voici mon code php :
Code:
$query = "SELECT parc_id, parc_nom FROM ".TABLE_PREFIX."parcours order by parc_nom";
$results = $database->query($query);

$template->set_block('main_block', 'list_block', 'list');
$template->set_block('list_block', 'list_block2', 'list2');

if($results->numRows() == 0) {
    $template->set_var('NOM_PARCOURS', 'Aucun parcours n\'a été défini.');
    $template->parse('list', 'list_block', true);
} else {
    while($parcours = $results->fetchRow()) {
        $sql = "select module_id, nom_module from ".TABLE_PREFIX."module_formation where module_parc_id=".$parcours["parc_id"]." and active=1";
        $req = $database->query($sql);
       
       
        if($req->numRows() == 0) {
            $template->set_var('NO_MODULE', '');
            $template->parse('list2', 'list_block2', true);
        } else {
            $template->set_var('NO_MODULE', 'display:none;');
            while($module = $req->fetchRow()) {
                $template->set_var('NOM_MODULE', $module["nom_module"]);
                $template->parse('list2', 'list_block2', true);
            } // endwhile
        }
        //--
        $template->set_var('NOM_PARCOURS', $parcours["parc_nom"]);
        $template->parse('list', 'list_block', true);
   
    }
}
et voici mon template :
Code:
<!-- BEGIN list_block -->
<h3>{NOM_PARCOURS}</h3>
<p style="{NO_MODULE}">Aucun module activ&eacute; pour ce parcours.</p>
<!-- BEGIN list_block2 -->
<h4>{NOM_MODULE}</h4>
<!-- END list_block2 -->

<!-- END list_block -->
J'utilise la version 2.6.5 (merci d'éviter les messages "utilise la version 2.7", j'utilise celle-ci, ce n'est pas négociable  smiley )
Logged
Xagone
AddOn Development
*
Offline Offline

Posts: 453



WWW
« Reply #1 on: February 10, 2009, 03:20:38 AM »

mesemble qu'il faut les parsé à la fin des boucle, tu le fait dans la boucle, donc ya juste le premier element qui devrais sortir

t'as tenté ceci ?
Code:
$query = "SELECT parc_id, parc_nom FROM ".TABLE_PREFIX."parcours order by parc_nom";
$results = $database->query($query);

$template->set_block('main_block', 'list_block', 'list');
$template->set_block('list_block', 'list_block2', 'list2');

if($results->numRows() == 0) {
    $template->set_var('NOM_PARCOURS', 'Aucun parcours n\'a &eacute;t&eacute; d&eacute;fini.');
    $template->parse('list', 'list_block', true);
} else {
    while($parcours = $results->fetchRow()) {
        $sql = "select module_id, nom_module from ".TABLE_PREFIX."module_formation where module_parc_id=".$parcours["parc_id"]." and active=1";
        $req = $database->query($sql);
       
       
        if($req->numRows() == 0) {
            $template->set_var('NO_MODULE', '');
        } else {
            $template->set_var('NO_MODULE', 'display:none;');
            while($module = $req->fetchRow()) {
                $template->set_var('NOM_MODULE', $module["nom_module"]);
            } // endwhile
        }
        //--    
    }
        $template->parse('list2', 'list_block2', true);
        $template->set_var('NOM_PARCOURS', $parcours);
        $template->parse('list', 'list_block', true);
}

je ne croit pas que ça marche mais en gros le système de template il faut "remplir une array" la "conjugé avec un set_var" et a la fin pour afficher le template, "parsemé le jardin de template"
Logged

Xagone Inc. (formerly VotreEspace)
http://www.xagone.com/
nesquick

Offline Offline

Posts: 12


« Reply #2 on: February 11, 2009, 05:55:56 PM »

Merci pour ta réponse. Ca ne marche pas en mettant le parse à la fin. Là j'ai feinté en mettant tout dans une var que j'affiche ensuite, mais bon, j'aurais aimé faire ça proprement
Logged
Pages: [1]   Go Up
Print
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2011, Simple Machines Valid XHTML 1.0! Valid CSS!