Wie Tabelle aufbauen mit fester Anzahl Spalten pro Zeile
Michael
- php
0 Cheatah0 Michael
0 Vinzenz Mai0 Michael
Hallo zusammen,
ich steh' auf dem Schlauch.
Es geht um eine mySQL Abfrage, in der Ergebnisse als HTML-Tabelle ausgegeben werden soll. Klappt auch soweit - einzeilig.
Wie bitte definiere ich dass pro 5 gefundener Objekte eine neue Zeile (<tr> </tr>) mit den nächsten 5 Feldern (<td> </td>) aufgebaut wird?
Aktuell mache ich es mit
$prod_notsold = mysql_query('SELECT name_file, name_de, cat FROM products where sold=0') or die (mysql_error());
for ($i=0;$i<mysql_num_rows($prod_notsold);$i++)
{
$ergebnis[$i]=mysql_fetch_array($prod_notsold);
}
...
for($i=0;$i<count($ergebnis);$i++)
{
echo "<td><a href...>hier das ganze gedoens</a></td>" ;
}
So solls aussehen: http://www.herzensart.com/portfolio/de/art/start.html
Das ist doch echt nicht schwierig, aber ich sitze hier seit ca. 2 Stunden daran :)
Danke & Gruß,
Michael
Hi,
Es geht um eine mySQL Abfrage, in der Ergebnisse als HTML-Tabelle ausgegeben werden soll. Klappt auch soweit - einzeilig.
pro Datensatz sollte eine Tabellenzeile ausgegeben werden. Andernfalls ist zweifelhaft, dass ein <table>-Element zu rechtfertigen ist.
Wie bitte definiere ich dass pro 5 gefundener Objekte eine neue Zeile (<tr> </tr>) mit den nächsten 5 Feldern (<td> </td>) aufgebaut wird?
Das klingt so, als wäre jedes gefundene Objekt gleichwertig; damit ist eine Aufzeilung in unterschiedliche Spalten nicht mehr sinnvoll. Du hast ganz offenbar eine Liste von Elementen. Verwende also <ul> oder <ol> und formatiere die List-Items Deinen Wünschen entsprechend.
Cheatah
Hallo,
Wie bitte definiere ich dass pro 5 gefundener Objekte eine neue Zeile (<tr> </tr>) mit den nächsten 5 Feldern (<td> </td>) aufgebaut wird?
Das klingt so, als wäre jedes gefundene Objekt gleichwertig; damit ist eine Aufzeilung in unterschiedliche Spalten nicht mehr sinnvoll. Du hast ganz offenbar eine Liste von Elementen. Verwende also <ul> oder <ol> und formatiere die List-Items Deinen Wünschen entsprechend.
Ja, das wäre längerfristig sinnvoll. Aktuell soll's aber bei einer Tabelle bleiben, da hängt einiges Layout von ab.
Habe es mit Vinzenz' Tipp gelöst.
Danke & Gruß,
Michael
Hallo
Es geht um eine mySQL Abfrage, in der Ergebnisse als HTML-Tabelle ausgegeben werden soll. Klappt auch soweit - einzeilig.
Wie bitte definiere ich dass pro 5 gefundener Objekte eine neue Zeile (<tr> </tr>) mit den nächsten 5 Feldern (<td> </td>) aufgebaut wird?
Der Modulo-Operator hilft Dir dabei, gehe wie folgt vor (Anzahl der Spalten beliebig):
Beginne Tabelle
Initialisiere Zähler mit 0
Gewünschte Spaltenzahl ist 5
Solange Ergebnisse vorhanden sind
Erhöhe Wert des Zählers um 1
Wenn Zähler Modulo "Gewünschte Spaltenzahl" 1 ergibt
Beginne Zeile
Ende Wenn
Schreibe Zelle mit Inhalt
Wenn Zähler Modulo "Gewünschte Spaltenzahl" 0 ergibt
Beende Zeile
Ende Wenn
Ende Solange
Wenn Zähler Modulo "Gewünschte Spaltenanzahl" > 0 ist
Angefangene Zeile mit leeren Zellen auffüllen bis gewünschte
Spaltenzahl erreicht ist
Beende Zeile
Ende Wenn
Beende Tabelle
Freundliche Grüße
Vinzenz
Hallo,
Der Modulo-Operator hilft Dir dabei, gehe wie folgt vor (Anzahl der Spalten beliebig):
Beginne Tabelle
»»
...
Wenn Zähler Modulo "Gewünschte Spaltenanzahl" > 0 ist
Angefangene Zeile mit leeren Zellen auffüllen bis gewünschte
Spaltenzahl erreicht ist
Beende Zeile
Ende WennBeende Tabelle
Super, Modulo kenne ich schon, kam aber nicht drauf. Klappt super, den letzten Abschnitt habe ich aber mit while erledigt.
Danke für den Tipp!
Viele Grüße,
Michael