Ik wil kunnen kiezen welke en hoeveel kolommen ik op mijn scherm zie.
Daarvoor heb ik een formulier waarin je de kolommen kunt kiezen en het resultaat daarvan heb ik in een array $kolommen geplaatst.

<?php
$veldkeuze=$_POST['veldkeuze'];
$kolommen = explode(",",$veldkeuze);
$num_cols = count($kolommen);
$query = "SELECT * FROM rsyc WHERE koerspiloot ='1' ORDER BY 'achternaam'";
$result=mysql_query($query) or die(mysql_error());
$num_rows = mysql_num_rows($result);

echo "<table width='100%' border='1'>\n";
echo " <tr>\n";
for ($i = 0; $i <= $num_cols; $i++)
{
echo " <th>".$kolommen[$i]."</th>\n";
}
echo " </tr>\n";
echo "<tr>";
while ($row=mysql_fetch_array($result))
{
extract($row);
foreach ($kolommen as $value)
{
echo " <td>".$value."</td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";
?>

De eerste rij geeft netjes de gekozen veldnamen weer
Daarna herhaalt hij natuurlijk gewoon de veldnamen in de rijen eronder.
Heb ook geprobeerd enkel de juiste kolommen te selecteren in mijn query, en dan is de eerste rij ook juist, maar daaronder krijg ik als resultaat de inhoud van kolom 1,2, enz van mijn tabel, dus niet wat ik nodig heb.

Kan iemand me helpen?
Stef
Ik zou sowieso de echo van regel 16 binnen je while loop halen. Anders gaat het natuurlijk niet goed.

Verder heb ik ook nog een opmerking over je gebruik van quotes. In je query heb je om de 1 quotes staan terwijl dat toch duidelijk een integer is. Ook om 'achternaam' heb je quotes staan terwijl dit de naam van een kolom is. In beide gevallen horen de quotes hier dus niet thuis.

En om het eigenlijk helemaal correct te doen, zou je bij de html dubbele quotes moeten gebruiken en zou je dus voor die echo's liever enkele quotes gebruiken:
<?php
echo '<table width="100%" border="1">' . "\n";
?>
Bedankt voor de tips.
Dmaakt mijn code wel correct, maar daarmee draait de boel nog niet.
Dat komt waarschijnlijk omdat je alle kolommen uit je tabel selecteert en niet alleen de benodigde. Daarnaast zou ik zelf ook niet met extract() werken, omdat dat een stukje overzichtelijkheid wegneemt.

Pak het liever gewoon zo aan:
<?php
while($row = mysql_fetch_assoc($result))
{
echo '<tr>';
echo '<td>'.$row['kolom1'].'</td><td>'.$row['kolom2'].'</td>';
echo '</tr>';
}
?>
ja, dat gaat beter, bedankt

Reageren