Page 1 sur 1

probleme de gestion d'id

Posté : 31 mai 2006, 11:21
par hello today
Bonjour,
j'essaye de creer des boutons avant et apres ainsi qque des liens directs sur le nombre d'entre (1-2-3-4-5-6,...etc).
Dans ma table le 1er id commence en 14.
Quand j'utilise la fonction
$select='select count(id)FROM pikasso';
$result=mysql_query($select,$connect); 
$row=mysql_fetch_row($result);
$total= $row[0];
Il me prends egalement les id de 0 a 13 ce qui fait que quand je clique sur suivant il m'affiche 13 fois la meme image puis a la 14eme change et remarche comme il faut.
Comment lui dire de ne pas prendre ces id qui n'existe pas dans la table.

merci d'avance bonne journee

Posté : 31 mai 2006, 11:39
par guilt92
Regarde l'attribut LIMIT d'une requete SQL ca devrait faire ton bonheur. Tu peux spécifier à ton SELECT de commencer à l'enregistrement 13 par exemple jusqu'à la fin...

Plus de détails sur cette pagesur LIMIT.

Posté : 31 mai 2006, 12:14
par Invité
merci,mais y a pas un moyen sans le LIMIT sinon a chaque fois je dois regarder dans ma table, voire au quel id il debute. Y a pas un moyen plus facile. Normalement il ne prend en compte que les id existant pas les autres, non?

sinon si je supprime l'id 120 je vais devoir faire un limit de 1 a 119 puis de 121 a la fin.. Bizarre
non?

Posté : 31 mai 2006, 13:13
par Ryle
Le LIMIT n'est pas du tout lié aux identifiants, il se contente simplement de limiter les résultats retournés a N lignes à partir de la X ième.

Si ton SELECT retourne par exemple les valeurs suivantes :
"a","b","c","d","e","f","g","h"

ajouter un LIMIT 0, 3 filtrera le résultat pour qu'il n'envoi que :
"a","b","c"

ajouter un LIMIT 3, 3 :
"d","e","f"

ajouter un LIMIT 6, 3 :
"g","h"

Tu peux ainsi faire ton système pagination en jouant sur le premier chiffre avec ta page, et sur le second pour définir le nombre d'éléments par page.. :) C'est donc completement indépendant des valeurs que tu as en base, c'est juste une question de limitation des lignes retournées et reste la meilleure solution :)