Suivant et precedent, comment fair ?

Je bute sur un truck depuis longtemps.

j’ai des donne enregistrer dasn une table avec cette structure (en gros)

  • id (auto_increment)
  • donnée

  • j’affiche donc sur une page un enregistrement qui a l’id 5 par exemple.
    je voudrai fair un lien pour afficher le precedent et le suivant.

:non: alors je voi ceux qui von me dire qu’il suffit de fair un lien avec comme variable id-1 (pour precedent) et id+1 (pour suivant).
le problème est que j’efface regulierement des donnedonc je me retrouve avecdes trou.
par exemple, j’ai efface celui qui a l’id 4, donc si je fait precedent avec la methode cité plus haut, j’aurai une erreur !!! :frowning:

je voudrai donc pouvoir trouver une methode pour trouver l’id le precedent et suivant le plus proche.

merci d’avance.

SELECT ID FROM table WHERE ID > ID_debase ORDER BY ID ASC
SELECT ID FROM table WHERE ID < ID_debase ORDER BY ID DESC

et bien encor un truck tout con au quel g pas pensé, ca m’enerve de metre 3 plombe pour ne pas trouver !!! :pfff:

merci :jap: a toi, ca me parait evident maintenant lol !!!
chui trop idio ! :lol:

tu peux même rajouter LIMIT 0,1 à la fin pour optimiser

et LIMIT 1 tout court.

c dommage de chercher dans la base juste pour suvant et precedant…

moi je ferai des lien avec ?id=5&next par ex ou ?id=5&previous

et si j’ai ça dans la page je fait


if (isset($_GET["next"]))
   $query="select * from ma_table where id > $_GET[id] limit 1";
else (isset($_GET["previous"]))
   $query="select * from ma_table where id < $_GET[id] limit 1";
else
   $query="select * from ma_table where id = $_GET[id] limit 1";


if(isset

c’est’est une bonne ide.
ca evide une requette.
je croi que je vais utilise ton ide quazadous, elle me parait interessante.

J’ai pas dit quand je faisais la requète :o

Oui enfin ça fait quand même tâche d’afficher ‘Suivant’ / ‘Précédent’ alors qu’il n’y a rien à parcourir…

bof dans ce cas la on revien au premier au au dernier c tout…

moi je suis optimizer :wink:

Par contre, rien n’empêche de prendre la donnée -1 et la donnée N+1 (en gros, ce qu’il y avant et après). Mais bon, personnellement je fais un SELECT COUNT(*).