MySQL Daten vertikal in Tabelle ausgeben, (wie) geht das?

PHPer

Erfahrenes Mitglied
Huhu :-)

Ich hab eine MySQL Tabelle und will diese Abfragen und die Ergebnisse dann in einer Tabelle auf meiner Webseite ausgeben. Dabei möchte ich das ganze sozusagen um 90° gedreht haben, so dass jede Zeile nebeneinander ist und nach unten ausgegeben wird.
Ihr kennt ja sicherlich alle diese Tests aus Zeitschriften die dann alles in Tabellen haben. Die zeigen links ihre Bezeichnungen an und alle Werte eines getesteten Produktes stehen dann untereinander in einer Spalte passend zu der Bezeichnung.
Und genauso soll will ich das auch haben. Ich sitzt schon seit n paar Tagen daran und verzweifel langsam. :(

Hat zufällig jemand von Euch ne Idee wie man sowas machen kann? Ist das überhaupt möglich?

Dank euch schonmal!:-)
 
also so wie das hier?
PHP:
spaltenName | spaltenName | spaltenName | spaltenName
     a            b              c            d
Das ist nicht sonderlich Schwer! allerdings brauchste dazu 2 Schleifen!
hier der code wie es funktioniert (mach grad nen edit)
 
Zuletzt bearbeitet:
setz einfach in die while schleife, in der du die daten ausgibst ein

<tr>
<td>inhalt</td>
</tr>

ein.

vor der schleife musst du noch ne tabelle mit <table> erstellen und nach der schleife die tabelle mit </table> abschliessen...

oder meinst du das anders?
 
Schreib deine Daten einfach in ein zweidimensionales Feld und durchlaufe es bei der Ausgabe mit vertauschten Indizes.

Gruß
Falk
 
oder schau's dir mit ner alten Netscape-Version an, hat ähnliche Effekte... :-)
 
Zuletzt bearbeitet:
Ui, das ging ja schnell mit der Antowrt. :D

@SonicBe@m: Ja, ich mein das so:

PHP:
               Daten Zeile 1   Daten Zeile 2  Daten Zeile 3
Computer name: Basic           Standart       Pro
Prozi:         1,3GHz          1,5GHz         1,8GHz,
RAM:           128MB SD        128MB DDR      256MB DDR
...

So mein ich das halt! Jede Zeile nebeneinander und dann halt jede Spalte untereinander. :D
Wie das aber mit 2 Schleifen gehen soll weis ich nicht. :( Daher Dank Dir schonmal für den Code.

@danube: Hab ich schon Probiert. Hat aber nicht wirklich funktioniert (villeicht hab ichs aber auch falsch gemacht k.a.).

@vogtländer: Ja, und wie geht das? :)
 
Zuletzt bearbeitet:
ok also hier die Antwort :)

PHP:
<?
$db_host ="localhost";
$db_user ="";
$db_pass ="";
$db_database ="";
$table = "";

$conn = mysql_pconnect($db_host,$db_user,$db_pass) or die("connection failed!<br>".mysql_error());
mysql_select_db($db_database,$conn) or die("fehler".mysql_error());

?>
<table bgcolor="#000000" cellspacing="1" cellpadding="0">
<?

$res = mysql_query("select * from $table");
$cols = mysql_num_fields($res);

echo "<tr bgcolor=\"#CCCCCC\">\n";
for($i=0;$i < $cols ;$i++){
   echo "<td>".mysql_field_name($res, $i)."</td>\n";
}	
echo "</tr>\n";

while($row = mysql_fetch_array($res)){
   echo "<tr bgcolor=\"#DDDDDD\">\n";
   for($i=0;$i < $cols ;$i++){
      echo "<td>".$row[$i]."</td>";
   }
   echo "</tr>\n";
}
?>
</table>


getestet und Funktioniert! must nur noch die Userdaten und die Table angeben!;)
 
Zuletzt bearbeitet:
Probier's mal so... ist aber in den Wind gespuckt. Wie Vogtländer meinte, einfach die Indize umdrehen.

PHP:
$c_counter = 0;

while ($c_counter < mysql_num_fields($res)) {
	for($i=0; $i < count($result); $i++) {
		echo $result[$i][$c_counter];
	}	
	$c_counter++;
}
 
Zuletzt bearbeitet:
PHP:
<?
$res = mysql_query("select * from $table");
$cols = mysql_num_fields($res);

while($row = mysql_fetch_array($res)){
   echo "<tr bgcolor=\"#DDDDDD\">\n";
   echo "<td>".mysql_field_name($res, $i)."</td>\n";
   for($i=0;$i < $cols ;$i++){
      echo "<td>".$row[$i]."</td>";
   }
   echo "</tr>\n";
}
?>

ersetz mal das von sonicbeam durch das hier, nich getestet, sieht aber recht ansehnlich aus *gg*, der restliche teil bleibt gleich.
 
Zurück