Door
Pierre Web
op 05-01-2017 22:05
gewijzigd op 05-01-2017 22:08
7.869 views
Hallo
Hallo,
Ik probeer de volgende rij uit tabel te halen met:
<?php
$id = $_GET['id'];
$id = ($id+1);
<a href="nieuws.php?id='.$id.'">volgende</a>
$query_nieuws = ("SELECT *
FROM `nieuws` WHERE id = '$id' ORDER BY id DESC LIMIT 1
");
?>
Maar nu komt het ook voor dat een id er niet meer is bijv. id 1 , 2 , 4 (id 3 bestaat niet meer),
en wat als het de laatste of eerste id betreft.
Er moet ook nog een vorige komen
Yep, het is ORDER BY en niet ORDER
Mijn fout.
Let wel dat je nog 'foutafhandeling' moet invoeren. Want bij de hoogste is er geen hogere en geeft dus een fout.
De query van Arien is daar beter, maar iets 'moeilijker'... (het is nu CTRL + C / CTRL + V)
In je whileloop kijk je met een if-statement of $row['id'] kleiner is dan $_GET['id'], in dat geval is het 'vorige'. En als $row['id'] groter is dan $_GET['id'] dan is het 'volgende'.
Maar nu komt het ook voor dat een id er niet meer is bijv. id 1 , 2 , 4 (id 3 bestaat niet meer),
De oplossing voor dit probleem lijkt mij niet een (of meer) ingewikkelde query maar de introductie van een extra kolom waarin je een volgorde van je items vastlegt. Daar koppel je dan je navigatie aan, en niet aan je item-id's.
Ik ben wel benieuwd of dat de intenties van de topic starter zijn. Voor een overzicht van het volgende of vorige artikel heb je geen extra sortering nodig.
Hangt er vanaf of de volgorde van toevoegen gelijk is aan de volgorde van weergave. Op het moment dat je items anders wilt rangschikken is de introductie van een extra kolom voor dit doel praktischer.