Author Topic: Loop, Array und Anzeige  (Read 661 times)

0 Members and 1 Guest are viewing this topic.

Hotfire

  • Guest
Loop, Array und Anzeige
on: Mon, 23. February 2004 - 19:17:52
Hallo,

ich habe ein für mich schwieriges problem, da ich es nicht in der dokumentation finde, bzw. die passenden befehle hierzu.

Und zwar wird nach jedem durchlauf einer schleife eine tabelle ausgegeben.
da es aber einige tabellen sind, würde ich die gern untereinander und nebeneinander ausgeben lassen.

T T T
T T T

mal vereinfacht dargestellt.

php datei, schleife:
Quote
$row_ukat = mysql_fetch_array($result_ukat);

   $outer = array();
   while ($row_kat = mysql_fetch_array($result_kat))
   {
  $inner = array();
  while ($row_ukat[katid] == $row_kat[katid])
  {
   
     array_push($inner, array(
    'ukatid' => $row_ukat[ukatid],
'katid' => $row_kat[katid],
    'ukat' => $row_ukat[ukat]
    )
     );
     $row_ukat = mysql_fetch_array($result_ukat);
  }
 
  array_push($outer, array(
    'katid' => $row_kat[katid],
    'kat' => $row_kat[kat],
    'inner' => $inner
    )
  );
   }
 
   $tmpl->setloop('outer', $outer);


habe es schon ganz altmodisch mit $count und if versucht, nur leider zerschmettert es mir jedes mal das script.

hab ich was übersehen?

Hotfire

Hotfire

  • Guest
Loop, Array und Anzeige
Reply #1 on: Tue, 24. February 2004 - 13:26:51
http://links.crackyman.de/tmpl/index.html

und alle folgenden kategorieen sollte dann dadrunter in einer zeile angezeigt werden. und wenn wieder 5 kats angezeigt worden sind, wieder ne neue zeile....

Hotfire

  • Guest
Loop, Array und Anzeige
Reply #2 on: Thu, 26. February 2004 - 11:19:31
Nach einem dezenten Tipp von CVB (welchen ich aber nur Stückhaft angewendet habe) habe ich es nun hinbekommen.

ich habe es folgendermaßen gelöst (insider werden mich womöglich lünchen aber egal)

$row_ukat = mysql_fetch_array($result_ukat);
$c_spalte=1;
   $outer = array();
   while ($row_kat = mysql_fetch_array($result_kat))
   {

      $inner = array();
      while ($row_ukat[katid] == $row_kat[katid])
      {
         
         array_push($inner, array(
            'ukatid' => $row_ukat[ukatid],
            'katid' => $row_kat[katid],
            'ukat' => $row_ukat[ukat]
            )
         );
         $row_ukat = mysql_fetch_array($result_ukat);
      }
      
      
      array_push($outer, array(
            'katid' => $row_kat[katid],
            'kat' => $row_kat[kat],
            'inner' => $inner,
            'spalte' => $c_spalte //übergabe des wertes von $c_spalte
            )
      );
$c_spalte++; // wird nach jedem durchlauf um eins erhöht
if($c_spalte==5){ $c_spalte=1;} // nach 4 durchläufen wird c_spalte wieder auf eins gesetzt.
   }


<tmpl_if name='zeile' op='<' value='4'> // überprüft ob zeile kleiner als 4 ist wenn ja führe ANWEISUNG aus.

ANWEISUNG

<tmpl_else> // ansonsten für ANWEISUNG2 aus.

ANWEISUNG2

</tmpl_if>