2017-10-06 2 views
-2

quelqu'un peut m'expliquer s'il vous plaît comment aborder ce problème?Mysqli php ajax Pagination

J'ai une table avec 4000 dossiers, une option de sélection et un champ de recherche pour filtrer la table

mais je suis en train de trouver la meilleure façon de mettre en place la pagination. Dois-je faire une requête sur la base de données et remplir la table avec tous les enregistrements, puis configurer la pagination avec javascript pour pouvoir rechercher des enregistrements qui ne sont pas seulement affichés sur la page en cours?

2ème approche Configurer la pagination avec PHP, faire une requête via ajax pour chaque page? Cependant, j'ai peur que cette approche ne me permette pas de filtrer la table si j'ai besoin de rechercher un enregistrement qui n'est pas sur la page actuelle.

+0

2ème est plus approprié de le faire car il n'affectera pas plus sur votre serveur lors de la récupération, vous devez utiliser limite pour la deuxième approche. Il ya des tonnes de tutoriel sur internet à ce sujet http://phppot.com/php/ajax-pagination-with-php/ –

Répondre

0

1ère approche: certainement pas, chargement grand nombre de résultats pour rien n'est pas recommandé.
La deuxième approche a plus de sens. Vous pouvez utiliser l'instruction LIMIT dans votre instruction SELECT pour décider quels enregistrements vous voulez. Ex. si vous paginez sur 10 éléments PerPage, vous pourriez faire

SELECT * FROM Table LIMIT 10 

puis

SELECT * FROM Table LIMIT 10,10 

et ainsi de suite. Les index commencent à 0.

Notez que vous n'avez même pas besoin d'Ajax pour cela, votre prochain bouton peut spécifier le décalage pour le prochain chargement de la page. C'est un choix basé sur vos connaissances, la taille du reste de la page (minimiser le temps de chargement), ...

+0

Je ne veux pas que la page soit rafraîchie c'est pourquoi j'ai pensé que je passerais la requête avec ajax . J'ai pris la deuxième approche, le seul problème est maintenant que si je cherche quelque chose, il filtre seulement ce qui est sur la page actuelle puisque j'utilise seulement javascript pour filtrer les résultats. Je suppose que je devrais faire la fonctionnalité de recherche avec php et et passer une requête ajax afin que la page ne referesh pas? – DavidNy

+0

Pas de problème avec Ajax. Maintenant, votre deuxième question, expliquez-le mieux, je ne comprends pas. Votre SELECT obtient toutes les valeurs possibles, mais vous dites à MySLQ de ne vous donner que les 10 premiers résultats. Si vous exécutez une autre requête, elle ne connaît même pas la limite que vous avez définie sur la première. – Nic3500

+0

ma requête initiale sélectionne seulement 10 enregistrements par page. maintenant si je suis à la page 1 et qu'il y a un enregistrement que je veux rechercher en utilisant mon champ de saisie de recherche, mais l'enregistrement est sur la deuxième page, comment puis-je faire? – DavidNy