begin process at 2012 05 27 19:34:00
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > PAGINATION

PAGINATION


 Information sur la source

Note :
5 / 10 - par 2 personnes
5,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Divers Classé sous :fonction, pagination Niveau :Débutant Date de création :27/12/2005 Date de mise à jour :05/01/2006 17:58:11 Vu / téléchargé :7 963 / 702

Auteur : gt_371

Ecrire un message privé
Commentaire sur cette source (31)
Ajouter un commentaire et/ou une note

 Description

Voici un script de pagination.Un peu comme sur google.

Source

  • <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  • <html>
  • <head>
  • <title>Pagination</title>
  • <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
  • <style type="text/css">
  • body{
  • font-family : Verdana, Arial, sans-serif ;
  • font-size : 15px;
  • }
  • a {
  • color: Black;
  • font: bold;
  • font-size: 18px;
  • }
  • a:hover {
  • color: #4A7B7C;
  • font-size: 23px;
  • }
  • H{
  • color: Green;
  • font-size: 20px;
  • }
  • H2{
  • color: Black;
  • font-size: large;
  • }
  • </style>
  • </head>
  • <body>
  • <?php
  • function pagination($page, $max_page){
  • if($page <= $max_page AND $page >= 1 AND ctype_digit($page)){
  • //Page précédente
  • if($page > 1){
  • echo'<a href="pagination.php?page='.($page-1).'">&lt;&lt;</a>';
  • }
  • else{
  • echo'&lt;&lt;';
  • }
  • $longeur = 9;
  • for($i=$page - $longeur;$i<= $max_page;$i++){
  • if($i > 0 AND $i <= $page + $longeur){
  • if($i == $page){
  • echo'<a href="pagination.php?page='. $i .'"><h>|'. $i .'|</h></a>';
  • //Prend la valeur de la page courante
  • $return_page = $i;
  • }
  • else{
  • echo'<a href="pagination.php?page='. $i .'">|'. $i .'|</a>';
  • }
  • }
  • }
  • //Page suivante
  • if($page < $max_page){
  • echo'<a href="pagination.php?page='.($page+1).'">&gt;&gt;</a>';
  • }
  • else{
  • echo'&gt;&gt;';
  • }
  • return $return_page ;
  • }
  • }
  • //Nombre de page
  • $max_page = 20;
  • if(isset($_GET['page'])){
  • $page_courante = pagination($_GET['page'], $max_page);
  • echo'<h2>Page' . $page_courante . '</h2>';
  • }
  • else{
  • echo'<a href="pagination.php?page=1"><h2>TEST</h2></a>';
  • }
  • ?>
  • </body>
  • </html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html>

<head>
<title>Pagination</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />

<style type="text/css">
body{
  font-family : Verdana, Arial, sans-serif ;
  font-size : 15px;
}

a {

  color:  Black;
  font: bold;
  font-size: 18px;
}

a:hover {
  color:  #4A7B7C;
  font-size: 23px;
}

H{
  color: Green;
  font-size: 20px;
}
H2{
  color: Black;
  font-size:  large;
}
</style>

</head>
<body>

 <?php

 function pagination($page, $max_page){

  if($page <= $max_page AND $page >= 1 AND ctype_digit($page)){

    //Page précédente
    if($page > 1){

    echo'<a href="pagination.php?page='.($page-1).'">&lt;&lt;</a>';
    }
    else{
         
    echo'&lt;&lt;';
    }
  
    $longeur = 9;
           
    for($i=$page - $longeur;$i<= $max_page;$i++){

    if($i > 0 AND $i <= $page + $longeur){
    
    if($i == $page){
             
    echo'<a href="pagination.php?page='. $i .'"><h>|'. $i .'|</h></a>';
    
    //Prend la valeur de la page courante
    $return_page = $i;
    }
    else{

    echo'<a href="pagination.php?page='. $i .'">|'. $i .'|</a>';
    }
       }
    }

    //Page suivante
    if($page < $max_page){

    echo'<a href="pagination.php?page='.($page+1).'">&gt;&gt;</a>';
    }
    else{

    echo'&gt;&gt;';
    }
    return $return_page ;
        }
}




  //Nombre de page
  $max_page = 20;

  if(isset($_GET['page'])){
        
  $page_courante = pagination($_GET['page'], $max_page);
        
        echo'<h2>Page' . $page_courante . '</h2>';
        }
        else{
        
        echo'<a href="pagination.php?page=1"><h2>TEST</h2></a>';
        }
   ?>

</body>
</html>

 Conclusion

Gestion d'erreur,à venir.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

28 décembre 2005 02:20:38 :
Modification d'erreurs.
28 décembre 2005 02:52:21 :
Modification d'erreurs. À venir...
28 décembre 2005 03:09:37 :
plus tard
28 décembre 2005 14:22:27 :
correction
28 décembre 2005 16:26:28 :
Correction
28 décembre 2005 19:56:18 :
Corrections
30 décembre 2005 01:58:04 :
correction
03 janvier 2006 04:48:37 :
correction
05 janvier 2006 17:58:11 :
modification

 Sources de la même categorie

Source avec une capture MODULE JOOMLA 1.5 NOW LISTENING par Alcantornet
Source avec Zip Source avec une capture UPLOAD CENTER par basssem81
Source avec Zip COMPTEUR DE CLIQUE PHP AVEC JQUERY par devgoneti
Source avec Zip LIVRE D'OR SIMPLE (POUR DÉBUTANT) par devgoneti
Source avec Zip SCRIPT TRAVAUX POUR VOTRE SITE par FleuryK

 Sources en rapport avec celle ci

AFFICHÉ SUR UN TABLEAU AVEC PAGINATION ET BASE DE DONNÉES par stormxp
Source avec Zip Source avec une capture PAGINATION + FICHIER CSS par profdi
CLEF POUR EAN 13 ET 14 par RaftY
Source avec Zip Source avec une capture MOTEUR DE RECHERCHE SUR BASE MYSQL FULLTEXT ET BOOLEAN AVEC ... par cod57
Source avec Zip Source avec une capture PAGINATION AUTOMATIQUE PAR APPEL DE FONCTIONS PHP par gigaprint

Commentaires et avis

Commentaire de coucou747 le 28/12/2005 00:17:51 administrateur CS

salut
on utilise echo et non print

$page = @$_GET['page'];
non !!! on vérifie si la variable existe ! on ne cache pas l'erreur !!!

ce code est très mal codé !

Commentaire de gt_371 le 28/12/2005 01:38:41

Merci pour les conseils.Si il y a autre chose merci de me le faire savoir.

Commentaire de Anthomicro le 28/12/2005 08:12:32

Salut,

utilise plutôt is_numeric($page) ou encore is_int($page) (si tu préfères le court) plutôt qu'une expression régulière pour ça ;-)

#  $page = $_GET['page'];
#  
#       if(isset($page)){

non, là ta verif isset est mal placée

if(isset($_GET['page'])
{
$page_courante = pagination($_GET['page'], $max_page);
}

Commentaire de coucou747 le 28/12/2005 13:58:58 administrateur CS

ça reste mal codé, même après la mise à jour...

relis le commentaire d'antho

echo"««";

ici, on doit mettre des guillemets simples...

Commentaire de gt_371 le 28/12/2005 14:21:49

bonjour,

J'ai utilisé une expression régulière pour éviter que l'url sois modifiée inutilement.

Cette expression régulière permet de savoir si $page n'est pas un nombre décimal.

is_numeric() ne permet pas de savoir si la chaîne $page est un nombre décimal et is_int() retourne FALSE car $page est une chaîne de caractères.

Je ne vois donc pas l'utilité de c'est fonction dans mon script.

Merci.

Commentaire de coucou747 le 28/12/2005 14:30:32 administrateur CS

l'expression régulière est disons quelquechose de quelquepeu inutile ici... une expression est couteuse en temps de calcul...

Commentaire de gt_371 le 28/12/2005 14:48:49

L'affichage du script sur cette page me laisse croire qu'il contient une erreur.

Merci de me donner votre avis.

Commentaire de gt_371 le 28/12/2005 16:31:00

J'ai modifié l'Expression rationnelle par la fonction ctype_digit()

Merci

Commentaire de coucou747 le 28/12/2005 17:10:41 administrateur CS

mais il te reste toujours des guillemets doubles !

echo"<a href=\"pagination.php?page=$i\"><b><i>$i</i></b></a>\n";

echo '<a href="pagination.php?page='.$i.'"><b><i>'.$i.'</i></b></a>
';

de plus, les balises u, b et i sont n'existent pas en xhtml mieux vaut utiliser du CSS

Commentaire de kankrelune le 28/12/2005 19:15:17

@ Coucou... pourquoi echo et pas print... .. . oÔ

@ tchaOo°

Commentaire de coucou747 le 28/12/2005 19:54:49 administrateur CS

print est plus lent

Commentaire de gt_371 le 28/12/2005 19:56:55

Voila, j'ai fait quelques modifications.

J'ai ajouté des guillemets simples et du css.

Si il y a autre chose à améliorer, merci de me le dire.

Merci coucou :-)

Commentaire de coucou747 le 28/12/2005 20:02:11 administrateur CS

en html on ne met pas < mais &lt; idem pour > qui se note &gt;

Commentaire de Anthomicro le 28/12/2005 20:39:21

"is_numeric() ne permet pas de savoir si la chaîne $page est un nombre décimal"

parce qu'une page non entière ça existe ?

une page ça porte toujours un numéro entier, ou alors tu m'apprends des trucs là...

Commentaire de coucou747 le 28/12/2005 20:59:35 administrateur CS

non, en philo par exemple, j'ai jamais réussi à lire une page entière...

Commentaire de kankrelune le 28/12/2005 21:14:43

Mdr Coucou...

Sinon print est plus lent mais prend moins de mémoire... donc ça se vaut... .. .

QUi plus est la différence est trop peu flagrante (1/2 seconde sur 250.000 )... .. .

@ tchaOo°

Commentaire de gt_371 le 28/12/2005 21:48:01

Salut Anthomicro

LA raison pour laquelle je parle de chaîne de caractères, c'est parce que la valeur de {$_GET['page']} est une chaine et
Cela n'empêche pas mon script de fonctionner.

Tu m'a proposé d'utiliser les fonctions {is_numeric($page) ou encore is_int($page)} qui remplacait très mal l'expression régulière dans mon script.Merci quand même.

j'ai alors trouvé une fonction plus apropriée pour mon script.

ctype_digit($page)

Elle vérifie qu'une chaîne est un entier.

Ton conseil est très aprécié.Si tu a une meilleure idée J'aimerai bien la connaitre.

Merci encore :-]

Commentaire de Anthomicro le 28/12/2005 22:20:57

"Tu m'a proposé d'utiliser les fonctions {is_numeric($page) ou encore is_int($page)} qui remplacait très mal"

d'où ça remplace "mal" ? au contraire, j'utilise perso ça sur mon site j'ai jamais eu de problèmes, et c'est largement plus rapide qu'une expression régulière...

Commentaire de Anthomicro le 28/12/2005 22:27:44

Ah oki laisse tomber j'ai compris quel était ton problème avec la fonction is_int() ;-) $_GET['page'] étant une string... et inutile de passer par intval() trop gourmand :-)

Autant pour moi.

a ++

Commentaire de FhX le 29/12/2005 19:44:19

"if($page <= $max_page AND $page >= 1 AND ctype_digit($page)){" A partir du moment où tu fais : $page >= 1, $page est considéré comme INT dorénavent, donc ctype_digit() ne sert à rien du tout. Il y a transtypage automatique de $page qui passe de string à integer.

D'ailleurs, j'ai souvenir que tout ce qui passe par $_GET est forcément de type chaine ! En effet, un tour sur la doc permet de voir :
"Variables provided to the script via URL query string."
C'est bien du string qui circule, le reste passe à la trappe :)

Commentaire de gt_371 le 29/12/2005 20:55:18

La raison pourquoi j'ai utilisé ctype_digit($page),c'est que je voulais éviter que l'on passe des nombres décimaux par l'url puisque cela est inutile.

Commentaire de Anthomicro le 29/12/2005 22:45:51

FhX > bah oui c'est du string, mais bon si tu veux savoir que c'est un entier... je préfère encore ctype_digit à la précédente expression régulière lol

Commentaire de FhX le 01/01/2006 20:33:12

Et alors ? Le typage en force ca existe pas en PHP ???!!!

$page = (int) $_GET['page'];

Et hop, pas besoin de s'emmerder avec 40 fonctions pour savoir si c'est un entier ou un double ou un string ou un objet ou un tableau !!!!
Rahhh des fois :p

Commentaire de Anthomicro le 01/01/2006 22:19:21

ouais mais c'est crade...

Commentaire de coucou747 le 02/01/2006 13:52:48 administrateur CS

c'est pas crade.... c'est strictement équivalent à
$page =intval($_GET['page']);

Commentaire de Anthomicro le 02/01/2006 16:01:50

justement :-)

Autant voir si la page est numérique pour ne pas l'afficher dans le cas contraire, plutôt que de tout convertir numériquement (gourmandise) alors que ça peut ne servir à rien.

Commentaire de Jayadeva le 02/01/2006 17:43:46

Au lieu de faire :
#  echo'<H3>erreur</H3>';
Qui est d'ailleur faux, car en xhtml H3 existe pas (il faut utiliser les minuscules), utilise la fonction trigger_error(); qui générera une erreur comme celles de php ^^

Exemple, qui générera un 'warning' :
trigger_error('Mauvais type d\'url',E_USER_WARNING);

Commentaire de FhX le 02/01/2006 22:24:51

Pourquoi pas... ctype_digit est applicable ici, pourquoi pas... ! :)

Par contre, le trigger_error ca commence à se faire vieux ca... il existe les exceptions maintenant qui permettent de faire bien plus de choses qu'un simple trigger tout moche au visiteur quand ca arrive ! ;)

Commentaire de gt_371 le 03/01/2006 04:49:01

Oui,pourquoi pas ctype_digit().Mais pour la programmation objet je ne suis pas encore prêt.

Merci de vos conseils.

Commentaire de FhX le 03/01/2006 19:20:42

Les exceptions ne sont pas signes de programmation OO !! :)

function test($sql) {

$query = @mysql_query($sql);
  if ( $query === FALSE ) {
       throw new Exception('Erreur de query : '.$sql);
  } else {
       return $query;
  }

}
$sql = "SELECT ....";
try { // Optionnel !
  $query = test($sql);
  $num = mysql_num_rows($query);
  // code supplémentaire...
} catch ( Exception $e ) { // Affichera une erreur seulement si une exception a été déclanché !
  die ($e->getmessage);
}

C'est simpliste et c'est ultra facile à exploiter !

Commentaire de rayman223 le 26/08/2008 11:44:58

Bonjour,
J'ai essayé cette source et j'ai aucun problème si ce n'est une petite question^^
au début, il y a la fonction pagination

function pagination($page, $max_page)
{...}

Je ne vois pas l'utilité de ce code car sans cette fonction, le script fonctionne et on peut utiliser d'autre variable dans les liens, quelque chose qu'on ne peux pas faire avec cette source actuel.

Donc a quoi sert cette fonction?

merci de me répondre :)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Pagination [ par titoo87 ] Bonjour !!J'ai quelques petits soucis avec la pagination en PHP, j'ai réussi à créer une fonction pour effectuer cette pagination, le problème est que fonction récursive et count mysql a additionner [ par romega ] Salut,Alors j'ai une fonction récursive qui a pour but de compter le nombre de sujet dans les catégorie + sous catégorie d'un forum. Je fais donc un c select en fonction d'une autre table [ par rduvrac ] Bonjour, J'ai une table "gagnants" où j'ai mis les lots gagnés. Chaque enregistrement possède un "idlot". J'ai une autre table "lots" où sont list fonction de gestion des répertoire [ par gasspirat ] je cherche une fonction php qui permet de criation de sous dossier dans un répertoire , et une autre pour renommé ces sous dossiermerci fonction rassemble goto en php [ par sbsouba ] bonjour a tous je savais qule la fonction goto n'exicte pas dans php mon question fonction define() ou variable simple [ par Orange73 ] Hello,Juste une question :-)Différence entre la fonction define (CONSTANTE, VALEUR) et une variable simple tel que $mavariable ?Laquelle utiliser ? po fonction mail qui ne fonctionne plus [ par doudoutinette ] Bonjour, J'ai la version 5.2.5 de php et travaille sur wampserver 2. Avant ma fonction mail() fonctionnait bien mais depuis que je suis passée a wamps Eviter le dossier spam avec la fonction mail() [ par et1 ] Bonjour à tous,Comment envoyer un email avec la fonction mail() sans qu'il aille dans le dossier spam (ce qui arrive environs 1 fois sur 10 en moyenne fonction mail() [ par kaking ] bonjour tous le monde alors voila mon probleme: je veux envoyer un mail a tous les membres de mon site (5 membres!) mais seul 3 recoivent le mail...e Fonction mail [ par mmaximum ] Salut à tous,Je suis en train de faire un formulaire mail pour mon site, mais la focntion mail ne marche pas!!!Voici les variables$destinataire="adres


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,733 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales