tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
416
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    luni22 luni22 ist offline Rookie
    Registriert seit
    Jul 2007
    Beiträge
    5
    Abend / Moin Leute und zwar bin ich gerade dabei ein Menü ins Template Smarty zu Übertragen

    leider komme ich nicht weiter


    der Orginal Code sieht so aus

    PHP-Code:
    $GetCat mysql_query("SELECT * FROM main_category ORDER BY id");
    while(
    $Gc mysql_fetch_array($GetCat)) {
    $id $Gc['id'];
    $title $Gc['title'];
    echo 
    "<tr><td class=\"menutitel\"><center><b>";
    if(
    SEO == 1) { echo ''.$title.''; }
    else
    { echo 
    ''.$title.''; }
    echo 
    "</b></center></td></tr>";

    $GetSCat mysql_query("SELECT * FROM category WHERE main_category='".$id."' ORDER BY id");
    while(
    $GSc mysql_fetch_array($GetSCat)) {
    $Sid $GSc['id'];
    $remove = array("/"".""@""+""-""_""<"">""?");
    $Stitle str_replace($remove''$GSc['title']);
    if(
    SEO == 1) { echo '<tr><td class="menu"><a href="'.URL.'c/'.$Stitle.'/'.$Sid.'">'.$Stitle.'</a></td></tr>'; }
    else
    { echo 
    '<tr><td class="menu"><a href="'.URL.'category.php?id='.$Sid.'">'.$Stitle.'</a></td></tr>'; }



    und gibt das aus sehe Bild das Menü


    http://img233.imageshack.us/img233/166/47058996yc5.png

    nun habe ich das so gemacht

    da ich alles neu schreibe in Class nicht irrtieren lassen von $db-> und $this->

    PHP-Code:

                                         $this
    ->title          =     $conf->seitenname;

                                         
    $this->sql            =    "SELECT * FROM main_category ORDER BY id ";
                                         
    $result               =    $db->query($this->sql);
                                 
                                  
                                         
    $this->_array1        =    array();
                                while (
    $menucat       =    $db->fetch_array($result))
                                {
                                         
    $id $menucat['id'];
                                         
    $this->_array1[]       =    $menucat;
                                         
                                         
                                  
                                         
    $this->sql1                  =    "SELECT * FROM category WHERE main_category = $id ORDER BY id";
                                         
    $result1                     =    $db->query($this->sql1);
                                  
                                         
    $this->_array                =    array();
                                  while (
    $menulist             =    $db->fetch_array($result1))
                                  {
                                         
    $this->_array[]       =    $menulist;
                                  }
                                }

                                  
    $temp->assign(array(
                                                      
    'L_TITLE'                    => $this->title,
                                                      
    'L_ARRAY'                    => $this->_array,
                                                      
    'L_ARRAY1'                   => $this->_array1
                                                     
    )); 
    Ausschnitt der tpl Datei sieht so aus

    PHP-Code:
    {foreach item="menucat" from=$L_ARRAY1}

                                       <
    tr>
                                                <
    td class="menutitel"><center><b>{$menucat.title}</b></center>
                                           </
    td>
                                      </
    tr>


    {foreach 
    item="menulist" from=$L_ARRAY}

                                  
                                       <
    tr>
                                                <
    td class="menu"><a href="category.php?id={$menulist.id}">{$menulist.title}</a>
                                          </
    td>
                                       </
    tr>
                                 
                           
     {/foreach}
     {/foreach} 
    aber er gibt nur das aus sehe Bild das Menü

    http://img171.imageshack.us/img171/358/52949478zl6.png


    was ist mein fehler habe schon mehre Varianten versucht ?
     

  2. #2
    Avatar von Mark
    Mark Mark ist offline Mod | Cinema4D
    tutorials.de Moderator
    Registriert seit
    Aug 2003
    Ort
    Vienna:Austria
    Beiträge
    8.123
    Blog-Einträge
    10
    Hi!

    Verzeih, wenn es Blödsinn ist, aber so wie ich es sehe, überschreibst Du das "innere Array" ($this->_array) doch jeweils bei einer neuen main_category...?

    -> Du könntest die Unterkategorien jeweils als Arrays eines Arrays sammeln und so Smarty übergeben ...?

    Liebe Grüße,
    Mark.
     
    ... bitte keine C4D-Fragen per PN ...
    +++ OUT NOW for CINEMA4D:
    Al'em - Free Align Plugin + Shaderpack Vol 1 - Free Shaders
    + Roll-It v1.0 - Free Roll Plugin + Egg-Objekt - Free Egg Primitive +++
    eggtion.net

  3. #3
    luni22 luni22 ist offline Rookie
    Registriert seit
    Jul 2007
    Beiträge
    5
    hmmm verstehe jetzt nicht ganz wie du dass meinst kannste mir mal ein beispiel zeigen ?

    wenn ich dass jetzt so mache

    PHP-Code:
                                         $this->sql            =    "SELECT * FROM main_category ORDER BY id ";
                                         
    $result               =    $db->query($this->sql);
                                 
                                         
                                         
    $this->_array1        =    array();
                                         
    $this->_array         =    array();
                                while (
    $menucat       =    $db->fetch_array($result))
                                {
                                         
    $id $menucat['id'];
                                         
                                         
                                        
                                         
    $this->_array1[]      =    $menucat;
                                         
    $this->sql1                  =    "SELECT * FROM category WHERE main_category = $id ORDER BY id";
                                         
    $result1                     =    $db->query($this->sql1);
                                  
                                        
                                  while (
    $menulist             =    $db->fetch_array($result1))
                                  {
                                         
                                         
    $this->_array[]        =    $menulist;
                                 }        
                                  
                                
    }

                                  
    $temp->assign(array(
                                                      
    'L_TITLE'                    => $this->title,
                                                      
    'L_ARRAY'                    => $this->_array,
                                                      
    'L_ARRAY1'                   => $this->_array1
                                                     
    )); 
    kommt nun das bei raus

    http://img508.imageshack.us/img508/9823/43206253bs0.png

    er ordnet also die untercategorie nicht der categorie zu zum beispiel ->
    Liebe ist die Categorie und die untercategorie wären den

    Liebeskummer, Gefühle, Herzen und Hab Dich Lieb

    mfg luni22


    EDIT: hat sich erledigt hab mir ein verschachteltes Array erzeugt denn hat es geklappt
    Geändert von luni22 (29.10.08 um 02:18 Uhr)
     

  4. #4
    Dark Ranger Dark Ranger ist offline Mitglied Brokat
    Registriert seit
    Aug 2005
    Beiträge
    436
    Als grobes Beispiel wie ich das immer gemacht habe:
    PHP-Code:
    $query "SELECT ...menu...";
    $result $db->query($query);
    $menu = array();
    foreach(
    $result as $row) {
        
    $submenu=array();
        
    //Hier dann Query wegen Submenu usw.
        
    foreach($result_sub as $row_sub) {
            
    array_push($submenu,array("link"=>$row_sub['link'],"name"=>$row_sub['name']));
        }
        
    array_push($menu,array("link"=>$row['link'],"name"=>$row['name'],"submenu"=>$submenu));
    }
    $tpl->assign("menu",$menu); 
    In der Template Datei:
    Code :
    1
    2
    3
    4
    5
    6
    
    <table>[INDENT]{foreach item="menuitem" from=$menu}
    <tr>[INDENT]<th>{$menuitem.name}</th>[/INDENT]</tr>
    {foreach item="submenu" from=$menu.submenu}
    <tr>[INDENT]<td><a href="{$submenu.link}">{$submenu.name}</a>[/INDENT]</tr>
    {/foreach}
    {/foreach}[/INDENT]</table>

    Ich hoffe das ganze hilft dir ein wenig weiter
     

  5. #5
    luni22 luni22 ist offline Rookie
    Registriert seit
    Jul 2007
    Beiträge
    5
    Ja danke hat sich schon erledigt hab mir ein verschachteltes Array erzeugt denn hat es geklappt.

    Aber trotzdem nochmal danke für die hilfe
     

Ähnliche Themen

  1. Smarty und schleifen?
    Von lordfritte im Forum PHP
    Antworten: 1
    Letzter Beitrag: 23.10.07, 23:48
  2. Frage zu parseInt und Schleifen
    Von Katzehuhn im Forum Java
    Antworten: 2
    Letzter Beitrag: 26.09.06, 19:39
  3. Frage zu Mysql und schleifen.
    Von MaxMara im Forum PHP
    Antworten: 1
    Letzter Beitrag: 20.02.06, 11:46
  4. Smarty und While Schleifen (SQL)
    Von BlueZone im Forum PHP
    Antworten: 0
    Letzter Beitrag: 31.05.05, 20:01
  5. Frage zu: Geschachtelte Schleifen !
    Von molotroc im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 12.04.05, 20:46