Database combinatie
Om een record uit je database te selecteren moet je natuurlijk weten welke je wilt. Dit kan je krijgen door bijvoorbeeld eerst het hele overzicht te geven met beknopte informatie. In deze lijst word er een link aangemaakt met de id van de record bijv.: <a href="details.php?id=35">Test product</a>. (om zo'n lijst te maken verwijs ik je door naar andere mysql tutorials) In details.php begin je met onze laatste code en een mysql statement om zo dat record te selecteren:
2
3
4
5
6
7
8
9
10
11
if(isset($_GET['id']) && is_numeric($_GET['id']))
{
$query = mysql_query("SELECT * FROM testtabel WHERE id='". $_GET['id'] ."'");
}
else
{
//script stoppen id is incorrect
die("Error: Hacking attempt :) ");
}
?>
Hier word een door middel van de query, in dit geval, record nummer 35 geselecteerd. Ik zal nu even een voorbeeld code maken welke ook de afhandeling doet en weergeeft op het scherm:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
if(isset($_GET['id']) && is_numeric($_GET['id']))
{
$id = $_GET['id'];
}
else
{
$id = 1;
}
$query = mysql_query("SELECT * FROM testtabel WHERE id='". $id ."'");
$result = mysql_fetch_array($query);
echo $result['voornaam'] ."<br />";
echo $result['achternaam'] ."<br />";
?>
Dit is al een iets uitgebreider script met een iets andere opzet. Als de controle op de id lukt dan word gewoon de waarde doorgegeven. Als het juist niet klopt dan zeggen we gewoon id=1. Hierna stoppen we die id in de query en krijgen zo 1 resultaat terug omdat je met WHERE er maar 1 selecteerd. De hierna volgende regels geven deze resultaten weer.
Let op:
Er zit 1 'fout' in deze opzet: als de id niet goed is word de id 1. Dit is natuurlijk niet juist omdat een database dynamisch is en record nummer 1 juist verwijderd kan zijn. Daarom kan je erover nadenken om iets anders te kiezen, zoals via een query de eerste of laatste record selecteren. Dit is aan jou omdat het bij elk systeem anders is.