Ik heb een script dat haalt gegevens uit de database en sorteert ze dan op instrument.
Nu wil ik dat als je op 'naam' klikt (url) dat ie dan gaat sorteren op naam, ipv instrument..

het script:
[ledenlijst.php]
<?php
$pagenaam = "Ledenlijst";
include("includes/header_page.php");
?>
<table class="tbl1">
<tr>
<td width="50%" class="tbltop">Naam</td>
<td width="50%" class="tbltop">Instrument</td>
</tr>
<?
include("includes/ubb.php");
include("includes/connect.php");
?>
<?php
$sql = "SELECT * FROM leden ORDER BY instrument ASC";
$resultaat = mysql_query($sql) or die ("query mislukt");
while ($rij = mysql_fetch_object($resultaat)){
$naam = htmlspecialchars($rij->naam);
$instrument = htmlspecialchars($rij->instrument);
set_smilies($bericht);
echo "<tr>\n";
echo "<td width='50%'>".$naam."</td>\n";
echo "<td width='50%'>".$instrument."</td>\n";
echo "</tr>\n";
}
?>
</table>

<?php
include("includes/footer_page.php");
?>

Nu moet ik dan 'SELECT * FROM leden ORDER BY instrument ASC' veranderen naar 'SELECT * FROM leden ORDER BY naam ASC', dat begrijp ik, maar hoe kan ik dat doen alleen dmv. op een link te klikken.
Ik zat te denken aan dat instrument vervangen door $order, en dan voor $order de get functie te doen, en dan sort te noemen, uds dat dan de url word ledenlijst.php?sort=naam/instrument.. dan word het bij mij (gebruik de include/get functie) ?p=ledenlijst&sort=instrument/naam

Maar hoe kan dit.. ik ben nog niet zo goed in php, maar het bovenstaande was m'n ideetje, weet alleen niet hoe ik het moet uitvoeren.
Tis gelukt:
[ledenlijst.php]
<?php
$pagenaam = "Ledenlijst";
include("includes/header_page.php");
?>
<table class="tbl1">
<tr>
<td width="50%" class="tbltop"><a class="border" href="index.php?p=ledenlijst&sort=naam">Naam</a></td>
<td width="50%" class="tbltop"><a class="border" href="index.php?p=ledenlijst&sort=instrument">Instrument</a></td>
</tr>
<?
include("includes/ubb.php");
include("includes/connect.php");
?>
<?php
if (isset($_GET['sort'])) {
$sort=$_GET['sort'];
} else {
$sort = "instrument"; }

$sql = "SELECT * FROM leden ORDER BY $sort ASC";
$resultaat = mysql_query($sql) or die ("query mislukt");
while ($rij = mysql_fetch_object($resultaat)){
$naam = htmlspecialchars($rij->naam);
$instrument = htmlspecialchars($rij->instrument);

echo "<tr>\n";
echo "<td width='50%'>".$naam."</td>\n";
echo "<td width='50%'>".$instrument."</td>\n";
echo "</tr>\n";
}
?>
</table>

<?php
include("includes/footer_page.php");
?>

Misschien een beetje onzinnig om dit:
if (isset($_GET['sort'])) {
$sort=$_GET['sort'];
} else {
$sort = "instrument"; }
te doen, het kan ook:
SELECT * FROM leden ORDER BY $_GET[sort] ASC

maar dat heeft ook een reden, als je dan naar ?p=ledenlijst gaat, dan krijg je een mysql failure, want dan heb je geen sort opgegeven, en met die andere komt dan automatisch instrument..
Het kan als je wil ook in 1 regel:

<?
$sort = isset($_GET['sort']) ? $_GET['sort'] : 'instrument';
?>

Is denk ik wel logisch wat die regel doet :)

Reageren