IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

système de pagination


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 110
    Par défaut système de pagination
    Bonjour à tous,

    Souhaitant mettre une pagination sur ma page pour scinder mes articles, j'ai suivit le tuto http://antoine-herault.developpez.co...atique-en-php/

    Tout à l'air de bien se passer, je n'ai pas d'erreur, par contre au niveau de la dernière boucle for, je n'arrive pas vraiment à comprendre comment l'adapter à mon site (j'utilise un système de template...)

    Est ce quelqu'un pourrait m'éclairer s'il vous plait?

    Voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    <? $sql->DatabaseConnexion();
    $messagesParPage=5; //Nous allons afficher 5 messages par page.
    $cal_articles = $sql->query("SELECT COUNT(id) AS nb_articles FROM "._TARTICLE_)or die (mysql_error());
    $donnees_total=mysql_fetch_assoc($cal_articles); //On range retour sous la forme d'un tableau.
    $total=$donnees_total['total']; //On récupère le total pour le placer dans la variable $total.
    //Nous allons maintenant compter le nombre de pages.
    $nombreDePages=ceil($total/$messagesParPage);
    $sql->DatabaseClose();
     
    if(isset($_GET['id'])) // Si la variable $_GET['page'] existe...
    {
         $pageActuelle=intval($_GET['id']);
     
         if($pageActuelle>$nombreDePages) // Si la valeur de $pageActuelle (le numéro de la page) est plus grande que $nombreDePages...
         {
              $pageActuelle=$nombreDePages;
         }
    }
    else // Sinon
    {
         $pageActuelle=1; // La page actuelle est la n°1    
    }
     
    $premiereEntree=($pageActuelle-1)*$messagesParPage; // On calcul la première entrée à lire				
     
     
    $sql->DatabaseConnexion();
    // La requête sql pour récupérer les messages de la page actuelle.
    $aff_articles = $sql->query("SELECT * FROM "._TARTICLE_." ORDER by date DESC LIMIT ".$premiereEntree.", ".$messagesParPage)or die (mysql_error());
    $sql->DatabaseClose();
     
    while ($results = mysql_fetch_array($aff_articles,MYSQL_ASSOC)) {
     
    					$tpl->assign_block_vars('articles', array(
    					'TITRE' => $results['titre_art'],
    					'DATE' => $results['date_art'],
    					));
    }
    for($i=1; $i<=$nombreDePages; $i++) //On fait notre boucle
    {
         //On va faire notre condition
         if($i==$pageActuelle) //Si il s'agit de la page actuelle...
         {
    	 $tpl->assign_vars(array(
             'NUMPAGE' =>"[ ".$i." ]",
    		 ));
         }	
         else //Sinon...
         {
    	$tpl->assign_vars(array(
    	 'NUMPAGE' => "<a href='index2.php?page=".$i."'>".$i."</a>",
    	 ));
    	 }
    }
    ?>
    Merci d'avance!

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Sans savoir quelle est ton systeme actuel et ton probleme, on ne peut pas t'aider.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 110
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Sans savoir quelle est ton systeme actuel et ton probleme, on ne peut pas t'aider.
    Euh... à vrai dire, c'est mon prof qui m'avait donné l'architecture.
    Je peux donner le code HTML qui correspond, je ne sais pas si ça peut t'aider...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <!-- BEGIN articles -->
    	{articles.TITRE}<br />{articles.DATE}
        <!-- END articles --><br />
    	Page : {NUMPAGE}

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2006
    Messages : 985
    Par défaut
    Quel est ton système? En regardant les variables dans le template, j'ai l'impression que c'est PhpBB2 template...

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 110
    Par défaut
    Citation Envoyé par okoweb Voir le message
    Quel est ton système? En regardant les variables dans le template, j'ai l'impression que c'est PhpBB2 template...
    Ça y ressemble beaucoup en effet, mon prof avait dû certainement partir de ça pour créer son système.

    Je confirme, c'est bien ça!
    Si quelqu'un pouvait m'aider... je pense que mon souci vient de la boucle for, je n'ai pas de message d'erreur mais rien ne s'affiche.

    Merci!

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 110
    Par défaut
    Je fais des testes, j'ai quelque peu modifié ma boucle for:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <? for($i=1; $i<=$nombreDePages; $i++) 
    {
         if($i==$pageActuelle){ 
       $tpl->assign_block_vars('pagination', array(
          'NUMPAGE' =>"[ ".$i." ]",
       ));
    }else{
    	 $tpl->assign_block_vars('pagination', array(
    	 'NUMPAGE' => "<a href='index2.php?page=".$i."'>".$i."</a>",
    	 ));
    	 }
    }
    ?>
    Au niveau rendu, je n'ai pas de message d'erreur, par contre à l'affichage, je n'ai qu'un seul article qui s'affiche.
    Au niveau de mon code html, le contenu de:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	<!-- BEGIN pagination -->
    	Page
    	{pagination.NUMPAGE}
    	<!-- END pagination -->
    n'est plus visible...

  7. #7
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2006
    Messages : 985
    Par défaut
    Lis bien ce tuto

    $nombreDePages te retourne t'il quelque chose?
    si oui essaies ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $pagination = '';   
    for($i=1; $i<=$nombreDePages; $i++) {
     
         if($i==$pageActuelle) $pagination .= '[ '.$i.' ]';
     
         else $pagination .=  '<a href="index2.php?page='.$i.'">'.$i.'</a>';
     
    }
    $tpl->assign_vars(array(
    	 'NUMPAGE' => $pagination
    	 ));
    as tu cette variable dans ton template :

Discussions similaires

  1. [Spip] Système de pagination Spip
    Par clementM dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 03/09/2008, 19h01
  2. [Système] Système de pagination
    Par innova dans le forum Langage
    Réponses: 1
    Dernier message: 25/09/2006, 15h08
  3. [Smarty] Ecriture d'un système de pagination
    Par wkd dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 20/09/2006, 11h01
  4. [MySQL] Système de pagination pour une galerie photo
    Par Badaboumpanpan dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 27/06/2006, 15h31
  5. [phpBB][2] Réalisation d'un système de pagination
    Par AlphonseBrown dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 26/10/2005, 11h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo