Andre: Template - 2 Spaltenausgabe mit PHPLib

Hallo,

ich entwerfe gerade eine Website (meine erste, die vollständig mit Templates umgesetzt sein wird.) - für eine Seite brauche ich eine DB-Ausgabe über zwei Spalten ... das Problem ist jetzt, dass ich die Datensätze gerne so ausgeben möchte:

|-----------|-------------|
| 1. Daten- | 2. Daten-   |

satz satz
3. Daten- usw.
satz
----------- -------------

im Idealfall möchte ich das mit _einer_ Datenbankabfrage lösen. Ich habe zwar das Grundprinziep von PHPLib (bzw. die darin enthalten Template-Lösung) verstanden, aber für die Feinheiten fehlt mir leider noch der Überblick. Ich hoffe, ihr könnt mir diesbezüglich ein paar Tipps mit auf meinen Weg geben. :-)

Grüße, Andre

  1. Hallo Andre!

    |-----------|-------------|
    | 1. Daten- | 2. Daten-   |

    satz satz
    3. Daten- usw.
    satz
    ----------- -------------

    im Idealfall möchte ich das mit _einer_ Datenbankabfrage lösen.

    Nunja, Du mußt Deinen Text auf jeden Fall in mehrere (am besten vielleicht gleich große) Teile aufteilen.
    Das kannst Du aber mit PHP machen und den ganzen Text am Stück aus Deiner DB holen und dann "zerteilen".

    Nur versteh ich nicht so ganz, ob es das ist, was Du wissen wolltest?
    Wie man 2-spaltige Layouts macht steht ja an zig Stellen im Web (Stichwort: Divs <-> Tabellen).

    Präzisier doch Deine Frage ein wenig, dann kann ich Dir vielleicht auch besser helfen.

    MfG
    Götz

    --
    Losung für Mittwoch, 6. Oktober 2004
    Sammle meine Tränen in deinen Krug; ohne Zweifel, du zählst sie. (Psalm 56,9)
    Petrus gedachte an das Wort, das Jesus zu ihm gesagt hatte: Ehe der Hahn zweimal kräht, wirst du mich dreimal verleugnen. Und er fing an zu weinen. (Markus 14,72)
    (http://www.losungen.de/heute.php3)
    1. Hmm, also ich zeige dir (euch) mal am besten die aktuelle Site, an der ich gerade bastel. http://www.horrorgame.de/index1.php

      Da wo jetzt "auf der Startseite" rechts ein Newsbeitrag kommt, will ich für eine Übersichtsseite die Spiele-Titel nach dem folgenden Schema darstellen ...

      |-----------|-------------|
       | 1. Daten- | 2. Daten-   |
       | satz      | satz        |
       |-----------|-------------|
       | 3. Daten- | usw.        |
       | satz      |             |
       |-----------|-------------|

      der PHP-Teil der Seite für diese (index1.php)Ausgabe ist wie folgt:

      /* News - Anfang */
            $tpl->set_block("meldungen", "artikel", "artikel_handle" );    // initialisierung der blockanweisung

      $db->query( "SELECT * FROM $table ORDER BY datum DESC" );      // abfrage der datensätze

      while($db->next_record()):                                     // zuordnen der einzelnen datensatz-blöcke
              $tpl->set_var(array(
                      "news_datum"          => $db->f("datum"),
                      "news_titel"          => $db->f("titel"),
                      "news_text"           => $db->f("text"),
                      "news_autor"          => $db->f("autor")
              ));
              $tpl->parse("artikel_handle", "artikel", true);
            endwhile;
      /* News - Ende */

      ... dann etwas ähnliches für die Spiele-Titel

      Tut mir leid, irgendwie kann ich das (mein) Problem nicht so richtig darstellen, aber vielleicht ahnt ihr ja schon wo mein Problem liegt.

      Grüße, Andre

  2. abend,

    ich entwerfe gerade eine Website (meine erste, die vollständig mit Templates
    umgesetzt sein wird.) -

    schön

    für eine Seite brauche ich eine DB-Ausgabe über zwei
    Spalten ... das Problem ist jetzt, dass ich die Datensätze gerne so ausgeben
    möchte:
    im Idealfall möchte ich das mit _einer_ Datenbankabfrage lösen.

    wenn es im bereich des sql-möglichen ist wird das kein problem sein

    Ich habe zwar das Grundprinziep von PHPLib (bzw. die darin enthalten
    Template-Lösung) verstanden, aber für die Feinheiten fehlt mir leider
    noch der Überblick.

    das was du möchtest hat relativ wenig mit dem templatesystem zu tun

    Ich hoffe, ihr könnt mir diesbezüglich ein paar Tipps mit auf meinen
    Weg geben. :-)

    beim templatesystem - um darauf anzusprechen - ist es üblich, die daten,
    welche angezeigt werden sollen, vor dem parsen des templates separat
    bereitzustellen.
    in deinem fall wäre das das resultset, das sich aus einer query ergibt.
    somit musst du lediglich das resultset mittels template-eigener methoden
    (bei smarty->assign()) an das template übergeben.
    im template selbst iterierst du wie üblich durch das resultset und stellst
    die einzelnen recordsets dar.
    --- -- -
    das, woran du scheiterst, ist m.E. eher die darstellung der daten.
    unabhängig vom template.
    um folgendes konstrukt darzustellen

    |-----------|-------------|
    | 1. Daten- | 2. Daten-   |

    satz satz
    3. Daten- usw.
    satz
    ----------- -------------

    bedarf es der benutzung des modulus-operators (%).
    siehe dazu: http://de2.php.net/operators.arithmetic

    den wendest du dann auf deine fortlaufende zählung an (%2)
    und somit ergibt die überprüfung nur bei geraden zahlen true.

    mfg,
    (tanz das)
    Z.N.S.

    --
    <img src="http://www.comunicout.com/zebulon/en.gif" border="0" alt="">
    .:LIFE ON OTHER PLANETS IS DIFFICULT:.