Probleme mit Schleife :-(

  • Themenstarter Themenstarter encom
  • Beginndatum Beginndatum
E

encom

Hallo, ich habe eine DB-Tabelle mit folgender Struktur

Code:
id     uid     name 
1      0        quellcodes
2      0        Tutorials  
3      1        Delphi
4      1        PHP
5      1        JavaScript
6      4        scripts
7      4        links

Jetzt möchte ich eine Sitemap erstellen, ich habe jetzt folgendes gemacht. möchte aber das nicht alles untereinander sondern in zwei Spalten ausgegeben wird.

PHP:
<?php
  $ok = mysql_query("SELECT * FROM menu WHERE uid=0");
  $anzahl = mysql_num_rows($ok);
  

  print('<table border="0" cellpadding="3" cellspacing="0"');
  
  while($row_ok = mysql_fetch_object($ok))
  {
    echo '<tr><td><img src="images/ordner_0.gif" width="18" height="16"></td><td colspan="2" class="blue_fett"><a href="'.$row_ok->link.'">'.$row_ok->name.'</a></td></tr>';
    $uk = mysql_query("SELECT * FROM menu WHERE uid = $row_ok->id");
  
    while($row_uk = mysql_fetch_object($uk))
    {
      echo '<tr><td align="right"><img src="images/ordner_pfad.gif"></td><td><img src="images/ordner_1.gif" width="13" height="10"></td><td><a class="link_small_blue" href="'.$row_uk->link.'">'.$row_uk->name.'</a></td></tr>';
    }
  }
  print('</table>');
?>
 
Deine Fragestellung ist nicht gerade aussagekräftig - das mit den zwei Spalten kann ich mir nicht vorstellen ...
 
Also, ich habe z.B 20 Titel (uid = 0) und zu den meisten titeln noch ca 5 Untertitel (uid=id von 0)

nun will ich auf der rechten Seite 10 Titel und unter jedem Titel die dazugehörigen Untertitel ausgeben, das selbe dann auf der linken Seite.

Danke
 
Du musst halt eine variable erstellen die nach jedem Durchgang um 1 erhöht wird und wenn die Var bei Zahl x angekommen ist machst du
Code:
</td><td>
und er beginnt eine neue Spalte.

Hoffentlich verständlich?
 
Daran habe ich auch schon gedacht, nur komme ich mit den 3 Schleifen dann nicht zurecht. Ich weiß einfach nicht wo ich es dan n angeben sollte. Ich probiere schon die ganze zeit herum
 
nur komme ich mit den 3 Schleifen dann nicht zurech
Wieso 3 Schleifen ?
Das müsste doch so in etwa gehen.
PHP:
<?php
  $ok = mysql_query("SELECT * FROM menu WHERE uid=0");
  $anzahl = mysql_num_rows($ok);
  
  print('<table border="0" cellpadding="3" cellspacing="0"><tr><td>');
  print('<table border="0" cellpadding="3" cellspacing="0">');
  
  $zaehler = 0;
  while($row_ok = mysql_fetch_object($ok) && $zaehler < 20)
  {
    $zaehler = $zaehler + 1;
    echo '<tr><td><img src="images/ordner_0.gif" width="18" height="16"></td><td colspan="2" class="blue_fett"><a href="'.$row_ok->link.'">'.$row_ok->name.'</a></td></tr>';
    $uk = mysql_query("SELECT * FROM menu WHERE uid = $row_ok->id");
  
    while($row_uk = mysql_fetch_object($uk))
    {
      echo '<tr><td align="right"><img src="images/ordner_pfad.gif"></td><td><img src="images/ordner_1.gif" width="13" height="10"></td><td><a class="link_small_blue" href="'.$row_uk->link.'">'.$row_uk->name.'</a></td></tr>';
    }
   if($zaehler == 10);
   print('</table></td><td><table>');
  }
  print('</table>');
  print('></table>');
?>
 
Vielen Dank für deine Mühe.
Habe es etwas geändert, so sieht es jetzt aus und es funktioniert super.

PHP:
<?php
  $ok = mysql_query("SELECT * FROM menu WHERE uid=0"); 
  $komplett = mysql_num_rows($ok); 
  $Teil     = round($komplett / 2);

  print('<table border="0" cellpadding="0" cellspacing="0" width="550"><tr><td width="50%" valign="top">'); 
  print('<table border="0" cellpadding="0" cellspacing="0" width="100%">'); 

  $zaehler = 0; 
  while(($row_ok = mysql_fetch_object($ok)) && $zaehler < $komplett) 
  { 
    $zaehler = $zaehler + 1; 
    echo '<tr><td height="10">&nbsp;</td></tr><tr><td valign="top" width="20"><img src="images/ordner_0.gif" width="18" height="16"></td><td valign="top" colspan="2" class="blue_fett"><a href="'.$row_ok->link.'">'.$row_ok->name.'</a></td></tr>'; 

    $uk = mysql_query("SELECT * FROM menu WHERE uid = $row_ok->id"); 
   
    while($row_uk = mysql_fetch_object($uk)) 
    { 
      echo '<tr><td align="right"><img src="images/ordner_pfad.gif"></td><td width="20"><img src="images/ordner_1.gif" width="13" height="10"></td><td valign="top"><a class="link_small_blue" href="'.$row_uk->link.'">'.$row_uk->name.'</a></td></tr>'; 
    } 
   if($zaehler == $Teil)
   print('</table></td><td valign="top"><table border="0" width="100%" cellpadding="0">'); 
  } 
  print('</table>'); 
  print('</table>'); 
?>
 
Zuletzt bearbeitet von einem Moderator:
Zurück