Gisteren ben ik hier geholpen met sorteren van data uit database. Nu zit ik er nog mee dat de query telkens opnieuw wordt uitgevoerd als ik sorteer. Maar nu wil ik eigenlijk dat de data alleen op het scherm wordt gesorteerd zonder dat de query opnieuw wordt uitgevoerd en dat de gegevens dus niet opnieuw uit de database getrokken hoeven te worden. Is dit mogelijk? dit is de code tot nu toe.
<?php
function get_items ($sort_by, $sort_order) {
$sql = "
SELECT id, name, projectleader, kindofproduct, brand, ETD, ETA, country
FROM proposal
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 align="center">';
echo '<tr>';
echo '<td><a href="?sort_by=name&sort_order='.$sort_order.'">Project name ▼</a></td>';
echo '<td><a href="?sort_by=projectleader&sort_order='.$sort_order.'">Project leader ▼</a></td>';
echo '<td><a href="?sort_by=kindofproduct&sort_order='.$sort_order.'">Kind of product ▼</a></td>';
echo '<td><a href="?sort_by=brand&sort_order='.$sort_order.'">Brand ▼</a></td>';
echo '<td>ETD</td>';
echo '<td>ETA</td>';
echo '<td>Exclusivity country</td>';
echo '<td>Project details</td>';
echo '</tr>';
while (list($id, $name, $projectleader, $kindofproduct, $brand, $ETD, $ETA, $country) = mysql_fetch_array ($res)) {
echo("<tr>
<td>$name</td>
<td>$projectleader</td>
<td>$kindofproduct</td>
<td>$brand</td>
<td>$ETD</td>
<td>$ETA</td>
<td>$country</td>
<td><a href=\"projectdetails.php?id=$id \">Project details</a></td>
\n");
}
echo '</table>';
}
}
$sort_by = (isset ($_GET['sort_by'])) ? ($_GET['sort_by']) : ('name');
$sort_by_toegestaan = array ('ID', 'name', 'projectleader', 'kindofproduct', 'brand');
if (!in_array ($sort_by, $sort_by_toegestaan)) {
$sort_by = 'name';
}
$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';
}
?>
426 views