probleme de gestion d'id

hello today
Invité n'ayant pas de compte PHPfrance

31 mai 2006, 11:21

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

Mammouth du PHP | 1353 Messages

31 mai 2006, 11:39

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.

Invité
Invité n'ayant pas de compte PHPfrance

31 mai 2006, 12:14

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?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

31 mai 2006, 13:13

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 :)