Tabellendarstellung nach SQL Abfrage

schampar

Mitglied
Hallo zusammen

Ich habe folgendes Script:


// DB Verbindungsdaten
$db_host = "XXXXXXXXXXXXXX";
$db_user = "XXXXXXXXXXXXXX";
$db_pass = "XXXXXXXXXXXXXX";
$datab = "XXXXXXXXXXXXXX";

// Hauptprogramm
/* Verbindung zur Datenbank aufbauen */
$db = @mysql_connect($db_host,$db_user,$db_pass) or die(mysql_error());
@mysql_select_db($datab,$db) or die(mysql_error());

//Alle T-Shirt Farben eines bestimmten Shirts auswählen

$result = mysql_query("SELECT * FROM Farben WHERE Farben.shirtname = '2001 BOB'") or die(mysql_error());

//Alle Werte ausgeben

echo "<table border=1>";
while ($zeile= mysql_fetch_array($result,MYSQL_ASSOC))
{
echo "<tr><td>";
echo implode("<td>",$zeile);
echo "</tr>";
}

mysql_close($db);

Nun, das ganze funktioniert auch wunderbar, wie ihr auf folgender Seite sehen könnt:
http://www.t-shirt.ch/test/test4.php

Leider ist die Ausgabe der Tabelle nicht in dem Format, in welchem ich es mir wünsche, es sollte nämlich so aussehen:
http://www.t-shirt.ch/eigenkreation/textshirt/2001_bob.php

Diese Tabelle sollte also automatisch aus den Werten der DB erstellt werden.

Habt ihr eine Ahnung wie ich dies lösen kann, ich denke der Fehler liegt bei der Ausgabe der Tabelle, aber ich komme da leider einfach nicht weiter, :confused:

Kann ich ausserdem auch alle Spalten auswählen, ausser die ersten 3, oder muss ich dann so, jedesmal alle Spalten im SELECT * FROM (z.B. SELECT 1,2,3,4... FROM) angeben, oder kann man das auch einfacher?

Vielen Dank für eure Hilfe.

Lieben Gruss

Schampar
 
du müßtest in deiner while-Schleife die Durchgänge zählen und nach z.b. 5 Durchläufen ein neues tr anlegen.

z.b.

$i = 0;

select ....
ausgabe <tr>

while
{

Ausgabe <td> blabla</td>

if($i = 5) --> </tr><tr>
}


so in der Art müßtest du es machen.
 
Hallo zusammen

Habe die Lösung gefunden, vielleicht kann jemand von euch so was auch mal gebrauchen, :)

<TABLE WIDTH=512 BORDER=0 CELLPADDING=0 CELLSPACING=0>
<TR>
<TD>
<?PHP

// Gesamtzahl Farben auslesen
$result = mysql_query("SELECT * FROM Shirt_Farben",$db_connect); // Anzahl Einträge zählen
$counter = mysql_num_rows($result); // Anzahl Einträge in VAR speichern

// Datenausgabe
$result=mysql_query("SELECT * FROM Shirt_Farben ORDER BY id"); // Alle Inhalte der Tabelle Farben auslesen
echo "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\"><TR><TD>";
while ($myrow = mysql_fetch_array($result)) {
if ($anz) { // ausser beim ersten Schleifendurchgang
if ($anz%5) { echo "</td><td>"; } // Anzahl Tabellenspalten der Tabelle
else { echo "</td></tr><tr><td>"; } // Nach jeder 5ten Farbe eine neue Zeile anlegen
}
$anz++;

// Inhalte aus DB auslesen und in HTML ausgeben

echo $myrow[$shirtfarbe]; }
echo "</td></tr><tr><td font class=\"text\" align=\"left\" colspan=\"4\">"; // Abschluss Zeilen und Spalten
echo "</td></tr></table>";
?>
</TD>
</TR>
</TABLE>

Die Variable $shirtfarbe ist bei mir übrigens schon definiert, die könnt ihr einfach mit eurer oder der Tabellen-Spalte ersetzen.

Hoffe es bringt euch was.

Bei Fragen, schreibt mir einfach.

Gruss

Florain
 
Zurück