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.
Even in pseudocode:

foreach (veldnaam)
{
   <tr>
   <th> veldnaam </th>
   foreach (id)
   {
      <td> data[id][veldnaam] </td>
   }
   </tr>
}
Uhm, nee Willen, dat is niet wat ik bedoel. Zo moet je namelijk eerst alle gegevens uit de database halen, in een array opslaan en vanuit die array de tabel opbouwen. Kan, maar is niet waar ik op doel.
Je zou in een for-loopje een 'select veldnaam from database order by id' kunnen doen en zo rij voor rij de tabel opbouwen. Als de database niet al te groot is, zou ik de gegevens echter gewoon eerst inlezen in een array.
de tabel waar alles uitgehaald wordt bestaat uit 79 veldnamen incl de id, daarnaast zitten nog 3 tabellen in de database in verband met inloggen en diverse namen, maar die zijn niet zo van belang voor deze vraag.
de meeste velden zijn van het type integer
Hoe je tabel eruitziet is in mijn ogen niet zo van belang, de procedure is hetzelfde, alleen met wat meer of minder velden. Maar goed, hoe ver ben je inmiddels?
ik kom er niet echt uit, om de veldnamen onder elkaar te krijgen kom ik uit op

<table>
  <tr><th>veld1</th></tr>
  <tr><th>veld2</th></tr>
  <tr><th>veld79</th></tr>
</table>

en door tussen de </th> en </tr> de <td></td>kan ik de cel met een inhoud weergeven, maar ergens zit ik dan fout, want als ik gegevens uit de database pluk laat ie niks zien.
de veldnamen moet ik toch appart echo-en en niet via een foreach loop, omdat afhankelijk van een waarde uit een andere tabel bepaalde velden wel of niet moeten worden weer gegeven, maar dat kan ik dan met if en elseif doen

maar om terug te komen hoe ver ik al ben.
nog aan de start, ik krijg de eerste zet maar niet gevonden
Ga terug naar mijn eerste tip: je hoeft het niet meteen te echo'en.

En terug naar mijn tweede tip, schrijf uit hoe je lege tabel er in html moet uitzien (dus echt de html uitschrijven), dan hoe de tabel eruitziet met 1 record, dan met 2 records etc.

Wat zie je dan elke keer erbij komen?
dan krijg ik de tabel dus als volgt:

<table>
  <tr><th>veld1</th><td>cel1</td></tr>
  <tr><th>veld2</th><td>cel1</td></tr>
  <tr><th>veld79</th><td>cel1</td></tr>
</table> 

<table>
  <tr><th>veld1</th><td>cel1</td><td>cel2</td></tr>
  <tr><th>veld2</th><td>cel1</td><td>cel2</td></tr>
  <tr><th>veld79</th><td>cel1</td><td>cel2</td></tr>
</table>

de <td></td> tags komen er steeds bij met de inhoud

of is diet niet wat je bedoeld?
Behalve dat die th's, ook td's zijn, want die gebruik je alleen in een header row, niet in een kolom.

Maar anders dan dat, ja. Dus nu weet je dat bij elke stap in je foreach loop er op elke regel iets bij moet komen. Namelijk: '<td>waarde</td>'.
Je weet ook dat je niet direct kunt echo'en, want dan komt het niet op deze manier er uit. Wat je dus moet doen is per rij van je tabel, de totale string opslaan in een variabele, en pas nadat je de hele foreach loop hebt doorlopen moet je die echo'en.

En als je het slim doet, bouw je het op als een array, met elke rij een element in die array. De key van elke rij is de waarde die erin moet.
ik heb wat zitten proberen om de gegevens zichtbaar te krijgen zoals ik wil.
nu heb ik dat met onderstaande code al gedeeltelijk

echo '<table border="1">';
		echo '<tr><th>datum</th>';
			while($row = mysql_fetch_assoc($result)){
			echo '<td>'.$row['Datum'].'</td>';}
		echo'</tr>';
echo '</table>';

om het nu netjes te maken wil ik dat stukje in de array zetten, maar daar heb ik iet niet goed gedaan, want als ik die array echo krijg ik geen beeld.


$datum_array = array(echo'<tr><th>datum</th>'while($row = mysql_fetch_assoc($result)){'<td>'.$row['Datum'].'</td>'}'</tr>');

wat zie ik over het hoofd?

Reageren