Dit is een opzetje. Wat nog niet goed werkt, is dat de laatste kolom waarop geklikt is, niet onthouden wordt. Daarvoor zou je een sessie kunnen gebruiken. Het voorbeeld tot zover:
<?php
require 'db_config.php';
function get_items ($sort_by, $sort_order) {
$sql = "
SELECT datum1, getal1, tekst1
FROM voorbeelden
ORDER BY " . $sort_by . " " . $sort_order;
if (!$res = mysql_query ($sql)) {
echo '<pre>';
echo htmlentities ($sql);
trigger_error (mysql_errno () . ': ' . mysql_error ());
echo '</pre>';
}
else {
if ($sort_order == 'ASC') {
$sort_order = 'DESC';
}
else {
$sort_order = 'ASC';
}
echo '<table>';
echo '<tr>';
echo '<th><a href="?sort_by=datum1&sort_order='.$sort_order.'">datum1</a></th>';
echo '<th><a href="?sort_by=getal1&sort_order='.$sort_order.'">getal1</a></th>';
echo '<th><a href="?sort_by=tekst1&sort_order='.$sort_order.'">tekst1</a></th>';
echo '</tr>';
while ($row = mysql_fetch_assoc ($res)) {
echo '<tr>';
echo '<td>'.$row['datum1'].'</td>';
echo '<td>'.$row['getal1'].'</td>';
echo '<td>'.$row['tekst1'].'</td>';
echo '</tr>';
}
echo '</table>';
}
}
$sort_by = (isset ($_GET['sort_by'])) ? ($_GET['sort_by']) : ('datum1');
$sort_by_toegestaan = array ('datum1', 'getal1', 'tekst1');
if (!in_array ($sort_by, $sort_by_toegestaan)) {
$sort_by = 'datum1';
}
$sort_order = (isset ($_GET['sort_order'])) ? ($_GET['sort_order']) : ('ASC');
$sort_order_toegestaan = array ('ASC', 'DESC');
if (!in_array ($sort_order, $sort_order_toegestaan)) {
$sort_order = 'ASC';
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>sorteervoorbeeld</title>
<style type="text/css">
table {
border: 1px solid black;
}
td {
border: 1px solid #999;
padding: 3px;
}
</style>
</head>
<body>
<?php
get_items ($sort_by, $sort_order);
?>
</body>
</html>
Link gekopieerd
super, ik ga ermee aan de slag
Link gekopieerd
Oké. Vergeet niet de veldnamen en de tabelnaam aan te passen ;-)
Link gekopieerd
Het sorteren werkt nu, ik ga dit zometeen even toepassen in m'n interface want heb het voorbeeld even overgenomen. Bedankt!
Link gekopieerd