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
@Arien Bedankt maar kan het ff niet meer volgen.



@Eddy E

SELECT * FROM nieuws WHERE id > 7 LIMIT 0, 1 ORDER id ASC
die geeft overigens weer een fout zoals in post van 10:59:51 bij Order id
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)
Wat volg je er nou niet aan mijn script? En waar loop je nou op vast?
En de volgorde is WHERE, ORDER, LIMIT.
- Ariën - op 06/01/2017 13:32:03

Wat volg je er nou niet aan mijn script? En waar loop je nou op vast?
En de volgorde is WHERE, ORDER, LIMIT.


Ik weet niet hoe de vorige/volgende a tag te plaatsen

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.
Met gaten in de nummering houdt mijn query gewoon rekening mee.
Met een aparte (sluitende) nummering ga je dit probleem in het geheel uit de weg.

(toegegeven, om deze nummering sluitend te houden moet je wel op een andere plek wat meer werk verzetten, het is een tradeoff)
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.

Reageren