Author Topic: Verschachtelte Loops für Linkliste  (Read 758 times)

0 Members and 1 Guest are viewing this topic.

BigPuck

  • Guest
Verschachtelte Loops für Linkliste
on: Sun, 08. June 2003 - 22:40:50
Hallo zusammen,

ich habe mich entschieden vlibTemplates zu nutzen und zu erlernen. Nun habe ich mein erstes Problem und könnte etwas hilfe gebrauchen. Aus einer Tabelle mit ID,Kategorie, URL, Beschreibung und Hits möchte ich eine Liste erstellen. Eine Kategorie mit den dazugehörigen Url´s, Beschreibungen und Hits in einer Tabelle und anschließend die nächsten Kategorien mit den passenden Daten.

Der ursprüngliche Code:

Code: [Select]
? ergebnis = select DISTINCT kategorie FROM ls_table order by kategorie asc;
query1=mysql_queryergebnis, link;
    
whiledatensatz=mysql_fetch_arrayquery1
        {
        echo table width=tbwidth border=0 cellspacing=0 cellpadding=0tr;
        echo td bgcolor=bc align=left valign=top;
        echo table width=tbwidth border=0 cellspacing=1 cellpadding=3
;
  echo tr
;
  echo td bgcolor=katfarbea name=datensatzkategorie/abKategorie img border=0 src=kat.gif datensatzkategorie/b/td
;
  echo /tr/table/td/tr/table
;
  echo table width=tbwidth border=0 cellspacing=0 cellpadding=0trtd bgcolor=bc align=left valign=toptable width=tbwidth border=0 cellspacing=1 cellpadding=3
;
  


anfrage= Select * FROM ls_table where kategorie=datensatzkategorie ORDER BY hits DESC;
        query =mysql_queryanfrage, link;


whiledaten= mysql_fetch_arrayquery {
        echo tr bgcolor=tb2
td width=45% align=left valign=topa href=redirect.php?id=datenid target=_blankdatenurl/a/td
td width=45% align=left valign=topdatenbeschreibung/td
td width=10% align=centerdatenhits/td
;
        echo /tr
;
        }
  echo /table/td/tr/table
;

  }

?
Ich bekomme das nicht in PHP und Templates getrennt hin und bin fast am verzfeifeln. Vielleicht kann mir ja jemand helfen da ich sowieso ein PHP- Newbie bin. Ich bedanke mich mich schonmal im Vorraus für die Mühen.
Last Edit: Fri, 07. January 2005 - 19:13:44 by ClausVB

Yaslaw Kowalejeff

  • Guest
Verschachtelte Loops für Linkliste
Reply #1 on: Mon, 09. June 2003 - 11:41:59
also, so ungefähr müsste das so gehen (habs nicht getestet)

PHP-Teil
Code: [Select]
?php



$sql =

SELECT DISTINCT kategorie

FROM ls_table

ORDER BY kategorie ASC;

$rskats=mysql_query$sql, $link;



$kats=array;

while$kat=mysql_fetch_array$rskats



$sql=

  SELECT *

  FROM ls_table

  WHERE kategorie='$datensatzkategorie'

  ORDER BY hits DESC;

$rslinks=mysql_query$sql,$link;

$links=array

while $link=mysql_fetch_array$rslinks



  // $link ist bereits ein indexierter Array mit allen Feldern

  array_push$links,$link;



$kat=array_merge$kat,array'links'=$links;

array_push$kats,$kat;





    $tmpl = new vlibTemplate'deintemplate.html';

    $tmpl-setLoop'kats', $kats;

$tmpl-setVar'tbwidth', $tbwidth;

$tmpl-setVar'bc', $bc;

$tmpl-setVar'katfarbe', $katfarbe;

$tmpl-setVar'tb2', $tb2;



$tmpl-parse;



?



Template:
Code: [Select]
tmpl_loop kats

table width=tmpl_var tbwidth border=o cellspacing=0, cellpadding=0

  tr

   td bgcolor=tmpl_var bg align=left valign=top

    table width=tmpl_var tbwidth border=0 cellspacing=1 cellpadding=3

     tr

      td bgcolor=tmpl_var katfarbe

       a name=tmpl_var kategorie /bKategorie img border=0 src=kat.gif tmpl_var kategorie/b

      /td

     /tr

    /table

   /td

  /tr

/table

table width=tmpl_var tbwidth border=o cellspacing=0, cellpadding=0

  tr

   td bgcolor=tmpl_var bg align=left valign=top

    table width=tmpl_var tbwidth border=0 cellspacing=1 cellpadding=3

     tmpl_loop links

      tr bgcolor=tmpl_var tb2

       td width=45% align=left valign=top

        a href=redirect.php?id=tmpl_var id target=_blanktmpl_var url/a

       /td

       td width=45% align=left valign=top

        tmpl_var beschreibung

       /td

       td width=10% align=center

        tmpl_var hits

       /td

      /tr

     /tmpl_loop

    /table

   /td

  /tr

/table

/tmpl_loop


Wobei du sehr vieel abellen verwendest.....

Yaslaw, ungetesten Code postend

BigPuck

  • Guest
Verschachtelte Loops für Linkliste
Reply #2 on: Tue, 10. June 2003 - 18:59:47
für die schnelle Hilfe. Ich habe nicht damit gerechnet so schnell und dazu noch eine komplette Lösung zu bekommen. Jetzt muß ich mir die Lösung nur noch einverleiben und versuchen sie zu verstehen (nicht nur abschreiben).

Dieses verstehe ich nicht (//   $link ist bereits ein indexierter Array mit allen Feldern)
$link ist für den Datenbankzugriff. Wieso sollte das ein indexiertes Array sein? Komme da gedanklich nicht mit.

Yaslaw Kowalejeff

  • Guest
Verschachtelte Loops für Linkliste
Reply #3 on: Wed, 11. June 2003 - 07:07:40
Upsi, habe nicht darauf geachtet, dass $link schon verwendet wird.
Ersetze $link ab $link=array(); durch irgend eine andere Variable...

Yaslaw, den DB-Link normalerweise nicht mitliefernd

BigPuck

  • Guest
Verschachtelte Loops für Linkliste
Reply #4 on: Wed, 11. June 2003 - 21:26:14
Nach etwas tüfteln habe ich es zum laufen bekommen.

Code: [Select]

$sql = SELECT DISTINCT kategorie FROM $dbtable ORDER BY kategorie ASC;

$rskats=mysql_query$sql, $link;



$kats=array;

while$kat=mysql_fetch_array$rskats



   $sql1=SELECT * FROM $dbtable WHERE kategorie='$katkategorie' ORDER BY hits DESC;

   $rslinks=mysql_query$sql1,$link;

   $links=array;

   while $daten=mysql_fetch_array$rslinks

  

      //   $daten ist bereits ein indexierter Array mit allen Feldern

      array_push$links,$daten;

  

   $kat=array_merge$kat,array'links'=$links;

   array_push$kats,$kat;





    $tmpl-setLoop'kats', $kats;



So sieht der Code bei mir jetzt aus.