Vorige en volgende ID

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Vincent

Vincent

16/06/2007 20:11:00
Quote Anchor link
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):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$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?
Gewijzigd op 01/01/1970 01:00:00 door Vincent
 
PHP hulp

PHP hulp

29/03/2024 17:00:34
 
Arjan Schuurman

Arjan Schuurman

16/06/2007 20:27:00
Quote Anchor link
ik weet niet precies wat je wilt, maar misschien kun je iets met dit idee:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$CurrentCounter
= 12; // Hoogste bestaand ID, nieuwste ID.
$CurrentID = 12;
$NextID = $CurrentID + 1;
$PreviousID = $CurrentID - 1;
if ($id > 0) {
   echo "<a href=\"nieuws.php?id=".$PreviousID."\">Vorige</a> ";
}

if ($id < $CurrentCounter) {
   echo "<a href=\"nieuws.php?id=".$NextID."\">Volgende</a> ";
}

?>
 
Vincent

Vincent

16/06/2007 20:47:00
Quote Anchor link
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.
 
Arjan Schuurman

Arjan Schuurman

16/06/2007 20:57:00
Quote Anchor link
dan zou je iets met de foreach moeten doen..
 
Marco PHPJunky

Marco PHPJunky

16/06/2007 20:59:00
Quote Anchor link
ik zou de array uit de sql halen en daar als dat kan een 'vaste' variable van maken want sql wil niet altijd de tekens [ ] goed accepteren....

verder zou ik het eens proberen als je de 2 volgende nieuws items ophaalt en die probeer weer te geven..

werkt dat wel ??
 
Frank -

Frank -

17/06/2007 02:11:00
Quote Anchor link
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...
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.