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
Binnen je WHERE op lijn 3 tel ik:
3 geopende haakjes
3 gesloten haakjes

Op lijn 4 en nog steeds binnen je WHERE tel ik:
3 geopende haakjes
3 gesloten haakjes

Maar de WHERE wordt nergens afgesloten!!
Kijk mijn code nog eens, en vooral naar lijn 4!

Nu moet je het wel zien, denk ik :-P
Volgens mij kloppen de haakjes in jou vb niet..ben aan het zoeken ..nog een te weinig op eind?

edit

Je was me net voor..
Dat haakje staat prima in mijn voorbeeld. Heeft er altijd gestaan.
Die edit van toen was alleen maar het toevoegen van de code-tags eromheen ;-)

En die query is linea-directa gekopieerd uit mijn SQL-editor.
Bedankt , dat vergeten haakje van mij was het probleem

  echo '<a href="nieuws-test2.php?id='.$id.'">Volgende</a>';  


Hoe ga ik na vorige id= met
$id= $id-1 ?

echo '<a href="nieuws-test2.php?id='.$id.'">Vorige</a>';
Heb je de query al uitgetest, want dan zie je dat je dus 1 tot 2 records zal krijgen.
als ik dit doe krijg ik 2 keer Volgende:(a tag in de conditie


   $result = $mysqli->query($query_nieuws);
   while ($row = $result->fetch_assoc() ) {
   $id = $row['id'];
  	$title = $row['title'];
//   echo '<a href="nieuws-test2.php?id='.$id.'">Volgende</a>';
     }


geef in broncode:

<a href="nieuws-test2.php?id=13">Volgende</a>

<a href="nieuws-test2.php?id=15">Volgende</a>
Logisch, want jij geeft aan dat er Volgende moet staan. De query geeft twee resultaten aan, voor de eerste-opvolgende en de eerste-voorlaatste.

Dus kijk in de loop of het gegeven id hoger of lager is die uit je $_GET
Met een query als dit kan het ook:

<?php
$id = intval($_GET['id']); // korte, moet toch wel een getal zijn


$result = $mysqli->query($"SELECT * FROM nieuws WHERE id > ".$id." LIMIT 0, 1 ORDER id ASC");
$next_id = mysqli_fetch_row($result);
echo '<a href="nieuws-test2.php?id='.$next_id.'">Volgende</a>';
?>
Die is toch gelijk ?
Nee, die haalt alleen de volgende op, en mijn query doet dat voor zoverl volgende als vorige...
Voer maar in phpMyAdmin uit, en je ziet het.

Reageren