la solution html :
pour ce qui est de la connexion à une base mysql Ryle à fait un zoli POSt
faq-tutoriels/passer-mysql-mysqli-pdo-t276282.html
le principe de base c'est de faire un affichage de la dite table :
un peu de sql : select mes, champs from laTable
et de l'afficher
while($result = $resultSet->fetch()) {}
tu commences la table html avant le début du while et la finit après

dans le while tu affiches une ligne (<tr><td>col1</td><td>col2</td></tr>).
Une fois que cela fonction on va ajouter la pagination
pour cela il faut :
- Le nombre d'élément sur une page
- La page que l'on souhaite afficher
- le nombre d’élément total dans la table (select count(1) from Latable)
pour afficher la barre de pagination (par exemple dans des ul / li affichés en ligne) une "simple" boucle for de 1 jusqu'au nombre de page déterminés (nombre total d'élément divisé par le nombre d'élément par page, le tout avec une arrondis supérieur pour ne pas perdre la dernière page incomplète. )
Pour faire bien un petit if pour affiche d'un couleur différente (voir sans lien) la page active.
Le numéro de la page active doit être dans l'url (au final $_GET['page']). s'il n'y ai pas on considère que le N° de page est 1. et même mieux s'il dépasse le nombre de page maximal calculé on peu le forcer à la dernière page (histoire de pas avoir des erreurs ensuite dans les requêtes sql).
Voilà pour l'affichage, maintenant au filtrage.
Pour cela il faut un formulaire dans lequel tu va mettre autant de champs que de colonne qui peuvent être filtrées.
Lorsque c'est fait il faut construire le prédicat de la requête (par where ) avec les infos du formulaire (ou sans rien si le formulaire n'est pas posté).
on vois parfois en astuce une requête qui contient un where 1=1. cela permet de faire une concaténation pour les autres éléments sans se poser la question : est ce qu'il y a déjà un where ?
Pour l'ordre de tri il faut voir comment veux que ce soit trié.
Le plus simple une combo avec la liste des colonnes et une autre avec le sens (asc / desc). Cela implique un tri sur une seule colonne.
La version de compète pouvoir indiquer l'ordre de tri sur chaque colonne (ou pas de tri) avec l'ordre du tri (0 à x) pour ensuite construire la partie 'order by' de la requête a partir de ces infos.
ton code aura trois parties :
1/ initialisation des variables
$nombreParPage = 42; // enfin ce que tu veux ça peu même provenir du formulaire, pense à une valeur par défaut
$cnx : la connexion à la base
2/ "Calcule" des données / traitement du formulaire
traitement du formulaire pour construire
- une variable "$where" qui va contenir le prédicat de la requête
- une variable order by
$nombreDelement; // issue du compte indiqué avant en tenant compte du prédicat calculé avant
$nombreDePage : nombreDelement / nombreParPage avec arrondis supérieur.
$page = 1 ou le nombre définie dans l'url, ou 1 si pas indiqué (ou zéro) ou la dernière page si le nombre indiqué est plus grand que le nombre maximal de page calculé.
3/ affichage de la table et de la barre de pagination
Voilà tu as la fonctionnalité souhaité
Alors oui pas de code, moi je sais faire et le but c'est que le sache aussi (promotion de l'apprentissage du langage, tous ça).
Commence dans l'ordre indiqué, si tu as des soucis pas de problème on te répondra (code à l'appui sur la question) pour t'aider à avancer.
ce que tu demande est réalisable même pour un débutant, il faut avoir les bases des langages php et SQL (voir mysql dans ton cas pour la clause limit

).
juste en passant : la solution de or1 peux ce mettre relativement facilement en place
par exemple
https://datatables.net/examples/data_sources/ajax.html
il 'suffit' de replacer le serveur par un script php qui récupère les données et fournie le json qui va bien.
c'est "une" solution rapide.
Après si tu as beaucoup de données il est préférable d'avoir une pagination coté serveur. Il y a un exemple sur le sujet :
https://datatables.net/examples/data_so ... _side.html
je n'ai pas regardé plus que cela ce script js, il semble juste répondre à tes besoin
bon courage
@+