Blöcke verschachteln mit PHPLIB

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Blöcke verschachteln mit PHPLIB

    Hallo Leute,
    ich hab mal wieder ein Problem mit PHPLIB.
    Ich versuche seit 3 Tagen verschachtelte Blöcke darzustellen, doch leider ohne Erfolg.

    Mein Problem:
    Ich generiere die Buchstaben A-Z durch eine For-Schleife.
    Jedem Buchstaben wird ein Link aus der DB mit dem jeweiligen Anfangsbuchstaben zugeordnet.

    Nun zeigt er mir aber die Buchstaben mehrmals mit unterschiedlichen Werten an. z.B.: wenn in der DB 3 Einträge vorhanden sind
    die mit A beginnen, wird mir

    A
    Abakus

    A
    Alkohol


    A
    Autohändler

    B
    .
    .
    .

    angezeigt. Ich möchte aber gerne das er mir die Werte alle unter
    einem A anzeigt, sonst ergibt es ja keinen Sinn.

    So sollte es aussehen:

    A
    Abakus
    Alkohol
    Autohändler

    B
    .
    .
    .



    Ich habe auch schon eine "dummy", ohne Template, getestet...funktioniert wunderbar. hier der Code vom "dummy"
    (ohne Templates)



    PHP-Code:
    //A-Z
    for($i=65$i<=90 ;$i++){
     
    //ASCII-Code --> Die Großbuchstaben (Code 65 bis 90), die Kleinbuchstaben (Code 97 bis 122)
        
    $letter=chr($i);
        
    $letter_small=strtolower($letter);
        echo 
    $letter."<br><br>";
                
        
    $sql="SELECT c_title, clicks, id FROM content_title WHERE LEFT(c_title,1)='$letter
    OR LEFT(c_title,1)='
    $letter_small' ORDER BY c_title";

        
    $result=mysql_query($sql)or die( mysql_error());
        while (
    $erg mysql_fetch_assoc($result)){
            
    $ergTit "<a href='db_beispiel.php?id={$erg['id'] }'>{$erg['c_title']}</a>&nbsp;
    <br>Hits:[
    {$erg['clicks']}]<br>";
            
            
    $anzahl = (mysql_num_rows($result));
            if (
    $anzahl){
                echo 
    $ergTit."<br>";
            }
            
        }
    //while

    }//for 



    Und hier die Version mit PHPLIB-Temlate (nix wunderbar):

    PHP-Code:
    <?if (isset ($themen)){
        $tpl->set_file("themen", "$themen");
        $tpl->set_block("themen", "blockaussen", "blockthemen");
        

                for($i=65; $i<=90 ;$i++){
     //ASCII-Code --> Die Großbuchstaben (Code 65 bis 90), die Kleinbuchstaben (Code 97 bis 122)
                    $letter=chr($i);
                    $letter_small=strtolower($letter);            
                    $tpl->set_var(array ("AZ" => $letter));
                                    
                    $sql="SELECT c_title, clicks, id FROM content_title WHERE LEFT(c_title,1)='$letter' 
    OR LEFT(c_title,1)='$letter_small' ORDER BY c_title";
                    $result=mysql_query($sql)or die( mysql_error());
                    

                    while ($erg = mysql_fetch_assoc($result)){
                        $ergTit = "<a href='db_beispiel.php?id={$erg['id'] }'>{$erg['c_title']}</a>&nbsp;
    <br>Hits:[{$erg['clicks']}]<br>";
                        $tpl->set_var(array ("DBLINK" => $ergTit));
                        $tpl->parse("blockthemen", "blockaussen", true);
                    }//while
                $tpl->parse("THEMEN", "blockthemen");
                }//for
    }//if

    THEMEN ist der Platzhalter in meinem Haupttemplate wohin der gesamte Inhalt von themen.tpl.php, zum Schluss geparst wird.





    Hier mein Template themen.tpl.php ($themen)

    PHP-Code:
    <?<!-- BEGIN blockaussen -->
    <div id="az">
            <div class="az">{AZ}</div><div class="title">{DBLINK}</div>
    </div>
    <!-- END blockaussen -->

    Ich habe schon viel herumprobiert, habe auch schon probiert mit "blockinnen" den DBLINK zu erst komplett auszulesen, aber genau da liegt mein Problem, ich bekomme es nicht hin, das er mir verschachtelte Templates richtig anzeigt.

    So sollte es in etwa aussehen:

    <!-- BEGIN Blocka -->
    <!-- BEGIN Blocki -->

    <!-- END Blocki -->
    <!-- END Blocka -->


    Wie erstell ich am besten solch eine Verschachtelung sinnvoll?
    Please Heeelp...
Lädt...
X