Ik wil gegevens uit een databse gaan weergeven in een tabel, op zich niet zo'n probleem.
alleen wil ik de tabel in de horizontale richting weergeven en heb geen idee hoe dat moet.

even een voorbeeldje.
datum | 03-03-2013 | 07-03-2013
teamwork | 5 | 8
controle | 7 | 6

enz.

dus de tabel koppen (kolomnamen uit database) onder elkaar
en de gegevens uit de tabel naast elkaar.
Je weet hoe een tabel in elkaar steekt? Kijk vervolgens eens logisch naar welke loops je waar neer moet plaatsen.
normaal gesproken maak ik een tabel op de volgende manier:

<?php
echo "<table border=\"2\" align=\"center\" width=\"100%\">"; 
echo "<tr><th bgcolor=\"#D8D8D8\">Show</th>"; 
echo "<th bgcolor=\"#D8D8D8\">Datum</th>"; 
echo "<th bgcolor=\"#D8D8D8\">Keurmeester</th>"; 
echo "<th bgcolor=\"#D8D8D8\">Klasse</th>"; 
echo "<th bgcolor=\"#D8D8D8\">Kleur</th>"; 
echo "<th bgcolor=\"#D8D8D8\">Hond</th>"; 
echo "<th bgcolor=\"#D8D8D8\">Eigenaar</th>"; 
echo "<th bgcolor=\"#D8D8D8\">Uitslag</th></tr>"; 
while( $row = mysql_fetch_array( $result )) { 
	echo "<tr><td>"; 
 	echo $row['Shw']; 
	echo "</td><td>"; 
   	echo $row['Datum']; 
   	echo "</td><td>"; 
  	echo $row['Keurmeester']; 
   	echo "</td><td>";
	echo $row['Klasse'];
	echo "</td><td>";
	echo $row['Kleur'];
	echo "</td><td>";
	echo $row['Hond'];
	echo "</td><td>";
	echo $row['Eigenaar'];
	echo "</td><td>";
	echo $row['Uitslag'];
	echo "</td></tr>";
}
echo "</table>"; ?>

dit is dan een tabel uit een andere pagina die ik heb gemaakt, maar de opzet is ongeveer hetzelfde, gegevens uit de database in de tabel laten zien.
Waarom voor elke regel een echo, en waarom geen single-quotes voor je echo gebruiken?
Veel netter, en scheelt escaping...
dit was al een iets oudere tabel, toen was ik nog niet zover bekend met de single-quotes.
het lijkt me overzichtelijker als je elke regel appart zet dan alles achter elkaar, of kan ik het ook zo doen:

echo '<tr><td>'
      $row ['Shw']
     '</td></tr>';

Tip (om in de richting van de oplossing te komen):
Je hoeft niet alles direct te echo'en. Je kan het ook eerst aan elkaar plakken in strings en dan pas echo'en. heb je veel meer controle over hoe het uiteindelijk eruit komt te zien.
Pascal Wetzels op 06/03/2013 11:18:02

of kan ik het ook zo doen:

Dat kan, maar dan moet je er komma's tussen zetten:

echo '<tr><td>',
      $row ['Shw'],
     '</td></tr>'; 

Zelf geef ik meer de voorkeur aan zoiets:

echo "<tr><td>{$row ['Shw']}</td></tr>";

maar dat is net wat je gewend bent (en wat in een bepaalde situatie handiger/overzichtelijker is).
@erwin

dus ik maak eerst een string per regel en die geef ik dan weer:

$datum = '<tr><th>datum</th><td>03-03-2013</td><td>07-03-2013</td></tr>';
echo $datum


bedoel je zoiets?
blijft alleen nog over dat ik steeds een cel erbij wil als ik gegevens toevoeg in de database
Nee, nu heb je niet de juiste gedachtegang te pakken. Schrijf de tabel eens uit op papier en bedenk hoe je nu moet werken. Normaal werk je in rijen, nu werk je in kolommen.
Ik heb de tabel als volgt:

id | datum   | teamwork | controle | enz...
 1 | 3-3-2013|   5      |     7    |
 2 | 7-3-2013|   8      |     6    |

deze wil ik dus zo weergeven:

datum    |3-3-2013 |7-3-2013
teamwork |   5     |   8
controle |   7     |   6
enz...

zodat het verloop van 1 onderwerp (bijv. teamwork) op 1 regel te lezen is en niet zoals de standaard van boven naar beneden.


Schrijf het uit in html. Eerst een lege tabel, dan een tabel met 1 record, dan met 2, etc.
Kijk dan wat er elke keer verandert en hoe je dat in een simpele foreach loop kunt zetten. Bij elk extra record verandert er namelijk hetzelfde.

Reageren