Bij onderstaand script wordt een dropdown weergegeven.
Ik zou graag willen dat de zoekfunctie in de mysqli query standaard DESC gesorteerd wordt weergegeven maar als ik nogmaals dezelfde optie in de dropdown kies deze als ASC wordt gesorteerd. mocht ik een derde keer dezelfde zoekopdracht verzenden mag hij weer DESC sorteren. Als ik echter een ander item uit de dropdown kies als zoekopdracht moet deze weer standaard DESC zijn. Ik heb deze functie nog niet kunnen vinden. wie kan mij helpen ?
Op de huidige manier wisselt de sortering bij elke keuze in het menu.
Excuses voor de slordige code, zet alles later nog om naar php.
<?PHP
include("functies.php");
$filename = basename($_SERVER['PHP_SELF']);
if (isset($_GET['dir']) && $_GET['dir'] == "ASC") {$dir = 'DESC';} else { $dir = "DESC";}
if (isset($_GET['dir']) && $_GET['dir'] == "DESC") {$dir = 'ASC';}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="css/basis.css" rel="stylesheet" type="text/css">
<title>Naamloos document</title>
</head>
<body>
<table width="90%" border="1" align="center">
<tr><form method="POST" action="<?PHP '.$filename.' ?>?dir=<?PHP echo $dir ?>">
<td>Sorteren op: <select name="drop">
<?PHP if (!isset($_POST['drop']) || $_POST['drop'] == ""|| $_POST['drop'] == " ") {
echo '<option selected value="id"></option>';}
foreach ($drop as $keuze) {
if (isset($_POST['drop']) && $_POST['drop'] == $keuze['item']) { echo '<option selected value="'.$keuze['item'].'">'.$keuze['naam'].'</option>';
} else {
echo '<option value="'.$keuze['item'].'">'.$keuze['naam'].'</option>';
}
} ?>
</select> <input name="SUBMIT" type="submit" value="Zoeken" /></td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>
<?PHP
//verzend naar database
$conn = new mysqli('localhost', '???', '???', '???');
if (isset($_POST['drop'])) {
$search = mysqli_real_escape_string($conn, $_POST['drop']);
}
// check connection
if (mysqli_connect_errno()) {
exit('Connect failed: '. mysqli_connect_error());
}
if (isset($_POST['drop'])) {
$query = "SELECT * FROM `reserve` ORDER BY `".$search."` $dir";
}
$result = mysqli_query($conn, $query);
} else {
$query = "SELECT * FROM `reserve` ORDER BY `id` $dir";
$result = mysqli_query($conn, $query);
}
?>
<table width="90%" border="1" align="center" class="zwartverdanal">
<tr>
<td><strong><strong>naam:</strong></td>
<td><strong>adres</strong></td>
<td><strong>postcode</strong></td>
<td><strong>woonplaats</strong></td>
<td><strong>E-mail</strong></td>
<td><strong>voorstelling</strong></td>
<td><strong>kaarten</strong></td>
<td><strong>telefoonnummer</strong></td>
<td><strong>opmerking</strong></td>
<td><strong>reserveringscode</strong></td>
<td><strong>betaaldatum</strong></td>
<td><strong>betaling</strong></td>
</tr>
<?PHP
while ($row = mysqli_fetch_array($result)) {
?>
<tr>
<td><?PHP echo $row[2].'. '.$row[3];?></td>
<td><?PHP echo $row[4].' '.$row[5];?></td>
<td><?PHP echo strtoupper($row[6]);?></td>
<td><?PHP echo $row[7];?></td>
<td><?PHP echo $row[8];?></td>
<td><?PHP echo datumtijd_db($row[9]);?></td>
<td><?PHP echo $row[10];?></td>
<td><?PHP echo $row[11];?></td>
<td><?PHP echo $row[12];?></td>
<td><?PHP echo $row[13];?></td>
<td><?PHP echo datum_db($row[14]);?></td>
<td><?PHP echo $row[15];?></td>
</tr>
<?PHP
}
?>
</table>
</body>
</html>
<?PHP
mysqli_free_result($result);
mysqli_close($conn);
?>