[RESOLU] Probleme avec une requête de pagination

Avatar de l’utilisateur
Petit nouveau ! | 3 Messages

01 janv. 2017, 06:52

Bonjour , je suis dans un problème dont je ne trouve pas la réponse ,

j'ai un systeme de pagination PHP SQL qui marche très bien en temp normal, aujourd'hui j'ai voulu re adapter mon script dans un systeme de de messagerie du coup le problème est que les ID des table ne sont pas en continuité vue que chaque utilisateur peut poster des nouvelles entrees dans la meme table EXEMPLE : utilisateur A ( id=1, id=526,id=800 )

donc si je veut faire une pagination avec ("SELECT FROM messages WHERE user='utilisateurA' LIMIT 1,10");
sa me retourne tout les ID dans le désordre et sans les limiter entre 1,10,

du cotée PHP tout tourne bien le problème vient de la liste que sql me retourne

Merci d'avance si vous pouvez me sortir de ce problème

Avatar de l’utilisateur
Administrateur PHPfrance
Administrateur PHPfrance | 7234 Messages

01 janv. 2017, 15:29

Bonjour,

Tu peux utiliser la clause ORDER BY dans ta requête SQL pour faire un tri des résultats sur un champ en particulier (id dans ton cas si j'ai bien compris)

+ d'infos : http://sql.sh/cours/order-by
Quand tout le reste a échoué, lisez le mode d'emploi...

Avatar de l’utilisateur
Petit nouveau ! | 3 Messages

01 janv. 2017, 21:49

merci artur , j'ai essayer avec le ORDER BY mais il arrive pas a déchiffrer quant je lui demande de afficher page 1 entre le id 0, 10 et page 2 entre id 10,20 car les id ne sont pas en continu, en fait chaque utilisateur peut voir ces messages perso que il a postée mais vue que tout les messages de touts les utilisateurs sont sur la meme table les ID des intrée sont pas continu pour chaque utilisateur

Mammouth du PHP | 831 Messages

01 janv. 2017, 21:55

c'est pas gênant s'il y a bien le order by sur toutes les requêtes, sur chaque page.

Avatar de l’utilisateur
Petit nouveau ! | 3 Messages

01 janv. 2017, 22:37

Merci infiniment pour vos réponses rapides j'ai réussi , finalement j'ai fait avec
("SELECT * FROM messages WHERE user='$user' ORDER BY id DESC LIMIT 10 OFFSET 20")