Bonjour,
Petite problème à résoudre, probablement bien plus simple vu d'ailleurs
La situation :
Une table MySQL classique, table_news, avec N rangées et une clé primaire entière autoincrementée.
Le problème :
Dans cette table, des rangées sont suceptibles d'être effacées, et leur clé avec, ce qui provoquera des écarts dans l'autoincrémentation.
Je souhaite que lorsque le visiteur clique sur une news, il obtienne sur la même page, la news selectionnée ainsi que deux liens, l'un vers la news précédente (si elle existe) et l'autre vers la news suivante (si elle existe).
J'ai essayé de jouer sur la close "LIMIT", en indiquant respectivement que la news suivante (théorique) est l'ID courant de la news + 1 donc, ce qui donne ce genre de requête
Pour la news précédente, ID_Courant - 2
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT * FROM table_news LIMIT (ID_Courant), 1
Cette solution fonctionnerait tant que les clés se suivraient numériquement... Evidemment c'est pas la bonne solution...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT * FROM table_news LIMIT (ID_Courant-2), 1
Une autre solution (bêtise=) consiterait à obtenir systèmatiquement tous les résultats de la table, pour ensuite jouer sur le pointeur interne avec des num_rows et autres data_seek...
Autre solution ? changer le type de clé ? utiliser un autre type de champ unique ?
Il me manque un élément...J'ai du passé à coté de la soluce plus d'une fois...
Merci d'avance !
Partager