hi,

voor een opdracht is de bedoeling dat wij een informatiesysteem aanmaken voor een reisbureau. Nou ben ik zover al gekomen met PHP, PDO en mySQL. Het probleem is echter dat we het overzicht van alle boekingen ook moeten kunnen sorteren. Hier loop ik dood. We moeten alle boekingen sorteren op vertrekdatum. Als iemand hierbij zou kunnen helpen zou dat top zijn.
Hieronder de code voor het bekijken van de boekingen.

<!DOCTYPE html>
<html lang="nl">
	<head>
		<meta charset="utf-8">
		<title> een boeking bekijken </title>
	</head>
	<body>
		<?php
		//maken van verbinding
		try{
			$db = new PDO('mysql:host=localhost;dbname=sed','root', '');
		}
		catch(PDOException $e)	{
			echo $e->getMessage();
		}
		
		// De SQL Opdracht
		$sql = 'SELECT * FROM boekingen';
		$resultaat = $db->query($sql);
		
		//De HTML-Tabel opbouwen
		echo '<table border = 1>';
		foreach($resultaat as $row)	{
			echo'<tr>';
			$nummer = $row['reisnummer'];
			echo '<td>'.$row['reisnummer'].'</td>';
			echo '<td>'.$row['land'].'</td>';
			echo '<td>'.$row['plaats'].'</td>';
			echo '<td>'.$row['vertrekdatum'].'</td>';
			echo '<td>'.$row['retourdatum'].'</td>';
			echo '<td>'.$row['aantalpersonen'].'</td>';
			echo '<td>'.$row['prijs'].'</td>';
			echo '<td>'.$row['betaald'].'</td>';
				echo "<td><form action='reisbureauCRUDwijzigen.php' method='post'>
					 <input type='hidden' name='verstopt' value=$nummer>
					 <input type='submit' name='wijzig' value='wijzig'>
					 </form></td>";
				echo  "<td><form action='reisbureauCRUDverwijderen.php' method='post'> 
					  <input type='hidden' name='verstopt' value=$nummer>
					  <input type='submit' name='verwijder' value='verwijder'></form></td>";
				echo  '</tr>';
			}
			echo '</table>';

			echo "
				<p>
					<form action='index.php' method='post'>            
					<input type='submit' name='submit' value='Terug'>           
					</form>
				</p>";

			//Sluiten van de verbinding
			$db = NULL;
		?>
	</body>
</html>

Als je je query wilt sorteren op een specifiek veld, dan moet je gebruik maken van WHERE in je SELECT-query. Gezien het om een datum gaat, let er dan wel op dat je een DATETIME veld gebruikt. Als je een VARCHAR gebruikt als type dan zal je daar niet kalendermatig/cijfermatig op kunnen sorteren.

Ik hoop dat je hiermee wat verder komt.

Als ik nog een tip mag geven: het is niet nodig om elke lijn een echo te gebruiken. Je kan ook lappen HTML buiten PHP uitvoeren:

<?php
while(...) { // voorbeeld van een beginnend stukje PHP. Een loop bijvoorbeeld. Daarna sluit je PHP weer af.
?>
De waarde is: <?php echo $blaat; ?>
<?php
} // PHP openenen en de loop afsluiten.
?>
Sorteren doe je in de database.
Je wilt gelijk alles goed krijgen in PHP.
Dus waar doe je dat?



Juist, daar waar je iets aan de database vraagt.
Dat doe je met een query in de taal sql.

Nu vraag jij letterlijk: SELECTEER (alles) VAN boekingen

Oké, je krijgt alles wat erin staat. Alle fouten, alle lege rijen, alles ongesorteerd...
Kan dat anders?
Let op: sorteren == ordenen (als in: orde scheppen)


...

met ORDER BY.

SELECT * FROM boekingen ORDER BY vertrekdatum ASC

Dus SELECTEER (alles) VAN boekingen ORDEN BIJ vertrekdatum OPLOPEND




Eerste hit op Google: https://www.google.nl/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=sorteren%20sql

Reageren