Hallo,

In mijn applicatie zou ik graag gegevens uit een tabel willen kunnen sorteren m.v.b. een dropdownmenu. Ik heb wel wat gelezen over arrays maar mijn vraag is hoe ik dit het beste kan doen. kan dat niet met een if statement bijvoorbeeld?
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&amp;sort_order='.$sort_order.'">datum1</a></th>';
			echo '<th><a href="?sort_by=getal1&amp;sort_order='.$sort_order.'">getal1</a></th>';
			echo '<th><a href="?sort_by=tekst1&amp;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>
super, ik ga ermee aan de slag
Oké. Vergeet niet de veldnamen en de tabelnaam aan te passen ;-)
Het sorteren werkt nu, ik ga dit zometeen even toepassen in m'n interface want heb het voorbeeld even overgenomen. Bedankt!

Reageren