[Smarty] Array sortieren und ausgeben

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

  • Dominic
    antwortet
    Original geschrieben von Schnoop
    Das haben wir hier doch schon mal durchgekaut.

    PHP-Code:

    {foreach from=$arrNix item=nochweniger}
        {if 
    $tempCat neq $nochweniger.catname}
            <
    h2>{$nochweniger.catname}</h2>
        {/if}
        
        {* DO 
    THE REST OUTPUT *}
        
        {
    assign var="tempCat" value=$nochweniger.catname}
    {/foreach} 
    Vielen Dank. Das war genau das was ich gesucht habe

    Einen Kommentar schreiben:


  • Schnoop
    antwortet
    Das haben wir hier doch schon mal durchgekaut.

    PHP-Code:

    {foreach from=$arrNix item=nochweniger}
        {if 
    $tempCat neq $nochweniger.catname}
            <
    h2>{$nochweniger.catname}</h2>
        {/if}
        
        {* DO 
    THE REST OUTPUT *}
        
        {
    assign var="tempCat" value=$nochweniger.catname}
    {/foreach} 

    Einen Kommentar schreiben:


  • Dominic
    antwortet
    Original geschrieben von wahsaga
    Dann lasse dir die Daten von MySQL nach Kategorie sortiert liefern, und implementiere in der Ausgabe einen Gruppenwechsel.
    Mein Problem ist ja konkret die Implementierung des Gruppenwechsels in einem Smarty Template. In PHP würde ich es wie oben beschrieben machen.

    Leider hilft mir ddie Smarty Dokumentation an dieser Stelle auch nicht weiter.

    Vielen Dank für Euere Hilfe.

    Einen Kommentar schreiben:


  • wahsaga
    antwortet
    Original geschrieben von Dominic
    Das war auch mein erster Gedanke - ich will aber pro Kategorie noch eine Überschrit und einen Text drübersetzen.
    Dann lasse dir die Daten von MySQL nach Kategorie sortiert liefern, und implementiere in der Ausgabe einen Gruppenwechsel.

    Einen Kommentar schreiben:


  • Dominic
    antwortet
    Das war auch mein erster Gedanke - ich will aber pro Kategorie noch eine Überschrit und einen Text drübersetzen.

    Beispiel:

    Kategorie 1
    Erklärung
    while-Schleife mit Datensätzen zu KAT 1

    Kategorie 2
    Erklärung
    while-Schleife mit Datensätzen zu KAT 2

    Einen Kommentar schreiben:


  • onemorenerd
    antwortet
    Noch performanter ist es, die Daten schon von dem DB-Server sortieren zu lassen:
    SELECT kat_id, bez FROM tabelle ORDER BY kat_id ASC

    Einen Kommentar schreiben:


  • Dominic
    hat ein Thema erstellt [Smarty] Array sortieren und ausgeben.

    [Smarty] Array sortieren und ausgeben

    Ich lese Daten aus einer MySQL Datenbank mit mysql_fetch_assoc in ein Array ein. Bisher gebe ich die Daten dann mit einer while Schleife aus.

    Nun möchte ich diese Datensätze aber noch nach Kategorie sortieren und dann mit mehreren Schleifen ausgeben.

    Beispiel:

    ID KAT ID BEZ
    1 1 Test
    2 1 bla bla
    3 2 Test 2

    Nun möchte ich zuerst alle Daten mit der KAT-ID 1 ausgeben und später dann die Daten mit der KAT ID 2. Wenn ich das mit mehreren Abfragen löse ist das kein Problem - es wäre aber doch sicher von der Performance besser zuerst alle Daten auszulesen und dann anschließend zu sortieren. Außerdem möchte ich noch einen Text über die jeweilige Kategorie setzen.

    In PHP würde das das so lösen:


    PHP-Code:
    $letzte_kategorie = -1;
    while(
    $row mysql_fetch_assoc($result)) {
        if(
    $row['KAT_ID'] != $letzte_kategorie) {
            echo 
    'Jetzt kommt Kategorie '.$row['KAT_ID'];
            
    $letzte_kategorie $row['KAT_ID'];
        }
        echo 
    $row['BEZ']; 
    Wie geht so etwas mit Smarty ?
Lädt...
X