Ergebnisse in 2-Spalt-Tabelle

Act of Fate

Erfahrenes Mitglied
Guten Tag,

habe folgendes Problem: Ich lese Kategorien aus, in der Form
Hauptkategorie
- Unterkategorie1
-Unterkategorie2

also ist es nur 1 Spalte, ich möchte aber gerne 2 Spalten für die Tabelle, also 2 Hauptkategorien nebeneinander, darunter die Unterkategorien:
_______________________________________
| Hauptkategegorie 1 | Haupkategorie 2 |
|--------------------------------------------------------------------|
|-Unterkat. 1 | -Unterkategorie 1|
|-Unterkat. 2 | -Unterkat. 2 |
----------------------------------------------------------------------

Aber ich weiss nicht so recht, wie das Ganze soll, kann mir evtl. jemand helfen? Danke!

Ach, hier der Code
PHP:
if (isset($_GET['cat']))
{
    $sql_cat_2     = "SELECT * FROM categories WHERE parent_id='".$_GET['cat']."' ORDER BY cat_name ASC";

    $sql_cat_2     = mysql_query($sql_cat_2);
    
    $anzahl        = round( mysql_num_rows($sql_cat_2) / 2);
    
    print $anzahl;
    
    print '<br>'.$banner_ad.'<br>';

    print '<table width="855" align="center">';

    while($cats = mysql_fetch_array($sql_cat_2))
    {
      print '<tr><td>';

      print '<img src="images/stern.gif"><a href="list_items.php?cat='.$cats[0].'"><b>'.$cats[2].'</b></a>('.$cats[4].')<br>';

      $sql_sub_cat_2 = "SELECT * FROM categories WHERE parent_id='".$cats[0]."' ORDER BY cat_name ASC";

      $sql_sub_cat_2 = mysql_query($sql_sub_cat_2);
      
      while($sub_cat = mysql_fetch_array($sql_sub_cat_2))
      {

        print '&nbsp;&nbsp;&nbsp;-<a href="list_items.php?cat='.$sub_cat[0].'">'.$sub_cat[2].'</a>('.$sub_cat[4].')<br>';

      }

      print '</tr></td>';

    }
    
    print '</table>';
    
}
else
{
  
  $what ='nothign';
  
}

include "footer.php";
?>
 
Ich machs n bisl anders:
Ich gehe von einer Tabelle (in der DB) aus, die hat 2 Felder: Feld1 und Feld2.
Diese möchtest du nun in deiner HTML Tabelle ausgeben (Wenn ich dich richtig verstanden habe).
PHP:
a = mysql_query("select feld1, feld2 from deinetabelle");
while(mysql_fetch_row(a)) {
echo "<tr>";
foreach asdf as $ds
  echo "<td>$ds</td>";
echo "</tr>";
}
mfg horusab
 
Vielen Dank, aber leider ist es noch nicht das, was ich suche, es sollen meinetwegen 18 Reihen untereinander sein und 2 Spalten nebeneinander.
 
tut mir leid, jetz versteh ich net was du meinst :)
kannst du das mal mit beispielen in html schreiben pls?

PHP:
(<table><tr><td><td></tr><tr><td><td></tr></table>)
 
<table>
<tr>
<td><b>Hauptkategorie 1</b></td><td><b>Hauptkategorie 2</b></td>
</tr>
<tr>
<td>-Unterkategorie 1.1</td><td>- Unterkategorie 2.1</td>
<td>-Unterkategorie 1.2</td><td>- Unterkategorie 2.2</td>
<td>-Unterkategorie 1.3</td><td>- Unterkategorie 2.3</td>
</tr>
</table>


Anmerkung: Die Unterkategorien 1.1, 1.2, haben auch noch Unterkategorien, die sollen aber nicht angezeigt werden, nur 1.Ebene der Hauptkategorie.


Danke
 
Weil bei deiner Lösung nur eine Spalte da ist:

PHP:
a = mysql_query("select feld1, feld2 from deinetabelle");
while(mysql_fetch_row(a)) {
echo "<tr>";
foreach asdf as $ds
  echo "<td>$ds</td>"; # Genau hier, mein ich
echo "</tr>";
}
 
gg
ne, dann hast du den source falsch verstanden

wir haben zwei felder
und in der html tabelle haben wir zwei felder

das foreach weiss das und ändert den aktuellen datensatz folglich auf den zweiten datensatz in der db und schreibt diesen. (Es is ja eine mini schleife)
und das so lange, bis alle datensätze der db geschrieben sind (dafür ist das while zuständig, es liefert die anzahl reihen)
:)

ich weiss, ich erkläre nicht gut :)
hast du fragen?
mfg horusab

p.s. mein source is vollkommen verbuggt :)
 
Zuletzt bearbeitet:
Zurück