05 Sept 2004
Pagination PDO
Compatibilité : PHP 5, PHP 7
Pagination php PDO mysql
Affichage page par page classique. Lecture à partir d'une base MySQL. Script complet avec exemples.
|
|
php.net | Description | Versions PHP | OUTIL |
---|---|---|---|
echo | Affiche une chaîne de caractères | PHP 4, PHP 5, PHP 7, PHP 8 | |
isset | Détermine si une variable est affectée | PHP 4, PHP 5, PHP 7, PHP 8 | |
mysqli_connect | Ouvre une connexion à un serveur MySQL | PHP 5, PHP 7, PHP 8 | |
mysqli_fetch_array | Retourne une ligne de résultat sous la forme d'un tableau associatif | PHP 5, PHP 7, PHP 8 | |
mysqli_query | Exécute une requête sur la base de données | PHP 5, PHP 7, PHP 8 | |
Affichage page par page basique avec exemple. En PHP et en MySQLi procédural. Tables SQL et connexion données dans l'exemple.
Script de pagination en PHP avec 2 requêtes SQL. Caractéristiques : - deux paramétres dans l'URL : nombre d'éléments par page et page actuelle
Affiche les numéros de page et affiche la page courante, un certain nombre de pages avant et après, le lien précédent et suivant ainsi que premier et dernier.
Ce page par page est portable car il passe par une fonction. Vous pouvez donc l'afficher en haut de vos résultats et à la fin de vos résultats.
05 Sept 2004
Dernière mise à jour :
Invité
25 Sept 2019 à 12:27Je viens d'essayer le code, aprés des ptites adaptations perso ca fonctionne nickel
Invité
08 Mai 2012 à 05:24Bonjour Le code fonctionne bien mais comment faire pour afficher ceci : 1-2-3-4-5-6-"..."SUIVANT
PLutot qu'une liste infiniment de numero : 1-2-3-4-5-6-7-8-9-10-11-12-13-14-15-16-17-18-19-20.etc.... Merci !!!
Jamstar
18 Jan 2011 à 14:16Merci pour votre script ca fonctionne tres bien et pas compliqué à adapter !
Invité
29 Sept 2010 à 12:18Merci infiniment Mon ami
ça marche convenablement
KOogar
06 Mai 2010 à 14:33avec recherche ou sans recherche c'est du pareil au meme, ton probleme peux venir de la ligne 26 ou tu dois egalement paramétrer la requete... select champ1from t1 like "%key%"
Invité
06 Mars 2009 à 12:30Le scripte marche bien. Par contre lorqu'on fait une recherche par critère il affiche bien les résultats attendus, mais avec tous les liens. Par exemple j'ai fait une recherche j'obtiens 1 seul engregistement. normalement l'affichage doit être à 1 sans lien. Chez moi il m'affiche 1,2,etc... avec les différents liens. Il me semble qu'il n'est pas adapté pour des recherches affinées. Normalement quand il y a un seul 1 seul enregistrement et que la limte est à 3 par exemple les liens suivants et précédents doivent disparaîtrent. Merci de m'aider s'il vous plaît.
Invité
18 Fév 2009 à 17:30Bonjour, je viens d'essayer de faire fonctionner ce script, mais apparemment il ya une erreur sur la requete qui affiche le contenu de la table. Il n'accepte pas le "ORDER BY id
ASC $limit_str" si j'enleve, il m'affiche la table, mais malheureusement pas les numéros de pages.
Si quelqu'un aurait une idée et merci pour le script.
Forty
18 Nov 2008 à 16:48Pour ceux qui ont l'option PHP register_globals = Off il faut remplacer $PHP_SELF par $_SERVER['PHP_SELF']
Invité
27 Oct 2008 à 18:09salut!
svp ce script n'as pas marché avec moi sachant que j'ai le logiciel easy-php version1.1.8
Vrachid
27 Sept 2008 à 13:07bonjour à tous
voila je viens d'essayer ce code il est très bien sauf que quand je navigue entre les pages mes enregistrement ne s'affiche pas
à l'execution dans la première page les résultats sont affichés si je vais sur une autre page elle est vide malgré que j'ai plein d'enregistrement dans ma base et meme si je retourne sur la première page rien ne s'affiche
Magieweb
24 Aout 2008 à 01:27Merci bien pour ce script, exactement ce que j'attendais, très facile à utiliser, je l'ai modifié à ma sauce et il fonctionne nikel!!!
Beaucoup de commentaires clairs, encore merci et félicitations!
Nrj82
20 Nov 2007 à 17:37problem est resolu j'ai du faire quelque changement au niveau du scripte le personalisé selon mé besoin, sinon il marche parfaitement et je bravo a celui qu'il a cree
Nrj82
20 Nov 2007 à 16:51Bonjour ,
j'ai eu meme problem que IMMO
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-7\www\site_00\testact.php on line 315
LA LINE 315 est :
$nb_total=mysql_num_rows($ret);
Est ce quelqu'un voit ou il peut y'avoir le problem ?
PhpSources
28 Oct 2007 à 18:36Wamp est un serveur web que beaucoup préfère à Easyphp car ses fonctionnalités sont bien plus souples et étendues. Je vous conseille de désinstaller easyphp avant d'installer Wamp si vous êtes intéressé par ce serveur.
Mygale
28 Oct 2007 à 17:46OK j'ai testé avec le easyphp.ini modifié je n'ai aucun changement. D'ailleurs même sans cette modification, le script continuait de s'exécuter mais sans les résultats escomptés c'est à dire pas d'affichage des données suivantes.
En tous cas merci de votre aide. J'abuse encore un peu étant tout débutant je suppose que Wamp est un débboguer? Ou sagit*il d'autre chose?
PhpSources
28 Oct 2007 à 17:30Cette directive désactive les notices d'erreurs, ce qui permettra au script de continuer
-->> ajouter la ligne a votre fichier de configuration (easyphp.ini si mes souvenirs sont bons..)
error_reporting = E_ALL & ~E_NOTICE
-->> rebootez votre serveur.
Si cela ne marche toujours pas, je vous conseille soit d'utiliser Wamp et/ou de tester en ligne pour voir si votre probleme n'est pas du à un probleme de script.
Mygale
28 Oct 2007 à 17:11Je veux bien essayer mais je ne sais pas comment désactiver ces notices. J'ai fait une
recherche dans php.ini et il n'a pas trouvé error_reporting? Et à quoi sert cette directive?
KOogar
28 Oct 2007 à 16:46et en désactivant les notices ?? -->> php.ini
-->>
error_reporting = E_ALL & ~E_NOTICE
Mygale
28 Oct 2007 à 16:03Mes register_globals sont à off
quant à la correction fonctionne pas non plus.
Je suis à cours d'idées et pourtant je dois pas être le seul à vouloir faire afficher un BD page par page en ayant comme sélecteur dans la requête des variable post?
En tous cas merci
KOogar
28 Oct 2007 à 15:34mettez les globals de votre serveur a OFF -->> fichier php.ini -->> register_globals = Off
ou
peut-etre utiliser correction la maniere de recuperer les globals ?
-->>
$NOM = isset($_POST['NOM']) ? $_POST['NOM'] : '';
Mygale
28 Oct 2007 à 15:13Bonjour à tous,
J'espère que quelqu'un pourra m'aider au sujet de ce script car chez moi il ne fonctionne pas. J'ai aussi essayé avec les sessions et le passage des variables dans l'URL rien n'y fait j'ai toujour la même erreur :
Au secours...
J'ai une saisie de critères par un formulaire POST qui me rends
$_POST['NOM']
$_POST['DISPONIBILITE']
$_POST['FAMILLE']
Ce formulaire appelle une page affiche_critères1.php
Dont le rôle est de traiter les options, envoyer la requête et faire afficher les données.
Je voudrais les faire afficher page par page. Le premier affichage avec la limite ici de 4 fonctionne très bien. Aussitôt que je clique sur le lien suivant j'ai la catastrophe
Notice: Undefined index: NOM in C:\Program Files\EasyPHP 2.0b1
Notice: Undefined index: DISPONIBLE in C:\Program Files\EasyPHP 2.0b1
Notice: Undefined index: FAMILLE in C:\Program Files\EasyPHP 2.0b1
Je précise que la CASSE est bonne que le var_dump($_POST) me rend les bonnes valeur.
MastaP
03 Avril 2007 à 00:57Merci pour l'info, c'est les vacances donc on ne test pas tout. J'ai mis une mention tout en haut pour signaler que ce script n'est pas gratuit et je me suis servi de ton message pour indiquer les différents paliers de paiement. Ca reste exceptionnel que l'on garde de tel script je vous rassures.
Immo
02 Avril 2007 à 18:32faut renommer le dossier personnalisation en _personalisation
MastaP
08 Mars 2007 à 20:54L'utilisation de ce script développé en mode objet est très simple (il est avant tout destiné à des débutants et à des web designers qui ne sont pas des programmeurs) :
Vous pouvez l'utiliser aussi bien dans des pages PHP statiques ou dynamiques que dans de simples pages HTML (en mode Ajax).
Le manuel d'utilisation détaille aussi bien l'implémentation sur votre serveur que son utilisation dans les différentes pages de votre site web.
Il y a par ailleurs plusieurs exemples d'utilisation en code source et commentés.
Bonne lecture du manuel qui est véritablement destiné à des débutants (avec un bon nombre de captures d'écrans).
KOogar
27 Nov 2005 à 04:24bonjour,je les telecharger il fonctionne super part contre ya pas moyen d'avoir une traduction en francais
Philippe_jmh
11 Nov 2005 à 12:36Oui tu peux c'est un langage php souple si familiariser avec le javascript
Laurent
29 Oct 2005 à 06:18Undefined variable: debut... ben defini la variable en début de script !!
Kimble
28 Oct 2005 à 18:13Bonjour,
J'ai une erreur sur la ligne:
if($debut==""){$debut=0;}
Notice: Undefined variable: ... on line 9
Une solution ? merci
Lanner
25 Oct 2005 à 13:45bon a priori un collegue a réussi , cependant il y a une amélioration a faire mais je vois pas , car si par exemple il y a moins de 4 enregistrements il affiche quand meme PRECEDENT 1 - 2 - 3 - 4 SUIVANT comment régler ce probleme merci d'avance