Ik ben bezig met een scriptje, waarbij bij het uitlezen van nieuwsitems ook het volgende en vorige artikel als link opgenomen wordt. Voorbeeld op tweakers.net.
ID van het nieuwsitem dat volledig wordt uitgelezen is bekend in de URL. Nou heb ik de volgende query ($req[1] = ID uit URL):
$sql = mysql_query("SELECT ID, title FROM fp_news WHERE ID = '" .($req[1]-1). "' OR ID = '" .($req[1]+1). "'", $dbfp);
Heb het ook met LIMIT geprobeerd. Nu is het probleem dat er niets gevonden wordt, wanneer er een of meerdere rijen uit de database is verwijderd. Is er iets efficiƫnters op te vinden?
Bovenstaande werkt dus ook niet optimaal, omdat het kan zijn dat de echt volgende ID of vorige ID misschien wel 3 hoger of lager dan het huidige ID is. Wanneer rij met ID 13 uit de DB is verwijderd, werkt bovenstaande script ook niet goed.
Gewoon < en > gebruiken voor vorige en volgende, dan maakt het geen moer uit wat de waarde van het huidige id is:
SELECT * FROM tabelnaam WHERE id < $huidig_id LIMIT 1
en
SELECT * FROM tabelnaam WHERE id > $huidig_id LIMIT 1
Edit: Nog wel even een ORDER BY er tussen fietsen, anders wordt het niks...