2010-05-09 7 views
1

J'ai une requête SQL qui renvoie une quantité de tuples (environ 50). Maintenant, j'ai besoin d'afficher les résultats, 15 tuples à la fois, puis je vais avoir un bouton "voir plus" pour voir les 15 résultats suivants.Affichage des résultats SQL à l'aide de PHP

Pouvez-vous m'aider s'il vous plaît comment je peux faire cela? Le problème est que je ne peux pas utiliser les «limites» parce que chaque fois que j'exécute la requête, les résultats seront différents, donc lorsque j'appuie sur «view more», je peux obtenir les mêmes résultats de la même page.

grâce

Répondre

1

Si vous ne pouvez pas utiliser LIMIT, cela signifie que votre script devra chercher et charger les 50 lignes. Si vous voulez seulement afficher 15, vous devriez chercher une solution Javascript pour cacher les autres et ne montrer que les actifs. Le JQuery Datatables est un EXCELLENT travail. Vous venez de charger tous les tuples dans une table, et appelez le Datatable - c'est tout! Vous pouvez ensuite le personnaliser pour afficher plus ou moins de 15 à la fois.

+0

merci pour le pourboire! : 0) – mouthpiec

+0

J'ai déjà upvoted ceci, mais je veux juste dire que je ne peux pas recommander cette solution assez. –

1

au lieu de recharger, vous devez mettre chaque « page » dans un display:hiddendiv et en utilisant JS vous montrer un div après l'autre.

+0

Selon la taille de la ligne du résultat, c'est parfois une mauvaise idée. Que ce soit caché ou non, 1000 (par exemple) lignes peuvent ajouter beaucoup de nœuds DOM, ce qui augmente le temps de chargement de la page et diminue la réactivité. –

+0

Bien sûr! Mais s'il dit que les résultats de la requête changeront à chaque invocation, je ne vois aucune autre solution logiquement possible. –

+0

le nombre de lignes devrait être autour de 100 .... – mouthpiec

0

Si vous ne pouvez exécuter la requête une fois, vous avez seulement deux options:

  • Envoyer toute resultset au navigateur, mais cachant toutes les 15 lignes. "Afficher plus" afficherait simplement plus de lignes.

  • Exécutez la requête une seule fois et mettez en cache les résultats, mais renvoyez uniquement les lignes demandées au navigateur. Lorsque plus de lignes sont demandées au navigateur, renvoyez un autre ensemble de lignes mises en cache. Ceci est utile pour progressively loading ensembles de données volumineux ou complexes.

Questions connexes