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 :

Pagination lien URL REWRITE [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2013
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2013
    Messages : 243
    Par défaut Pagination lien URL REWRITE
    Bonjour, J'ai une page qui affiche la liste des info pavec 5 thèmes à afficher par page de ma BDD.
    La première page s'affiche correctement mais lorsqu'on passe à la page 2 c'est toujours le contenu de ma 1ère page qui s'affiche.

    Code de réécriture de l'url

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #Options +FollowSymlinks
    Options -MultiViews
    RewriteEngine on
    RewriteRule ^domaine-([0-9]+)-([A-Za-z\-]+)\.html$  domaine.php?q=$1&aliasdomaine=$2
    Requête
    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
    //On compte le nombre total d'article
       $sql =$connect_db->prepare("SELECT * FROM article WHERE statut=1 AND domaine=".$q);
       $sql->execute();
       $dataArt = $sql->fetchAll();
       $total = count($dataArt);
     
       //Pagination
       $msgpage= 5; // Nombre de message qui s'affiche par page
     
    	$nombreDePages=ceil($total/$msgpage);
     
    	if(isset($_GET['page'])){
    		 $pageActuelle=intval($_GET['page']);
     
    		 if($pageActuelle>$nombreDePages){  
    		   $pageActuelle=$nombreDePages; 
    		 }
    	}
    	else {
    		 $pageActuelle=1; 
        }
     
    	$premiereEntree = ($pageActuelle-1)*$msgpage;
     
    	$sqlDomaine = $connect_db->query('SELECT * FROM article WHERE statut="1" AND domaine='.$q.' ORDER BY idart DESC LIMIT '.$premiereEntree.', '.$msgpage.'');
    	$pageSuivante = $pageActuelle+1;
    	$pagePrecedente = $pageActuelle-1;

    Code affichage contenu
    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
     
    ?php
    	try{
    		 while($dataArt = $sqlDomaine->fetch(PDO::FETCH_OBJ)){ ?>
                        <div class="boiteoutil" style="height:auto">
                          <?php if($dataArt->imageart != "") { ?>
                          <img src="photo/miniatures/<?php echo $dataArt->imageart ?>" alt="<?php echo $dataArt->imageart ?>" class="imgMiddle" style="margin-bottom:5px; margin-top:5px;" />
                           <?php } ?>   
                        <a href="<?php echo "article-".$dataArt->idart."-".$dataArt->alias.".html";?>">
                                   <span class="FontTexteArt"><?php echo $dataArt->titreart ?></span></a><br />
                                        <span style="color:#000;"><?php echo substr($dataArt->article, 0,370)?></span>
                                         <a href="<?php echo "article-".$dataArt->idart."-".$dataArt->alias.".html";?>"><span class="FontTexteMore"><i>[...]</i></span></a>
                                    </div>
            <?php }
                }
    		 catch(PDOException $e){
    			echo $e->getMessage();
    		}?>
    Liste numéro de page

    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
    <?php
            if ($nombreDePages > 1){
               echo '<p align="center"><a href="#" onclick="this.blur(); return false;"><span>Pages :</span></a>';
               for($i=1; $i<=$nombreDePages; $i++) {
                     if($i==$pageActuelle) {
                        echo ' <a  href="#" onclick="this.blur(); return false;"><span> '.$i.' </span></a> '; 
                      }	
                      else {
                             echo ' <a href="domaine-'.$q.'-'.$dataDomaine->aliasdomaine.'.html?page ='.$i.'" onclick="this.blur();"> 
                             <span> '.$i.' </span></a> ';
                            }
                   }
                echo '</p>';
             }
    ?>

  2. #2
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $premiereEntree = ($pageActuelle-1)*$msgpage;
    Si pageActuelle == 1, premiereEntree doit être à 0 ?
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  3. #3
    Invité
    Invité(e)
    Par défaut
    @Dentrite : non, ça c'est OK.

    Par contre...
    Lien de pagination :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
                             echo ' <a href="domaine-'.$q.'-'.$dataDomaine->aliasdomaine.'.html?page ='.$i.'" onclick="this.blur();">
    Où passe le "?page =..." dans ta règle d'URLrewriting ?
    A la trappe...

    Genre (pas testé), pour qu'on puisse avoir "domaine-...-....html?var1=...&var2=...&var3=..." :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^domaine-([0-9]+)-([A-Za-z\-]+)\.html(?:(\?(.*))?$  domaine.php?q=$1&aliasdomaine=$2&$3
    (pas testé) Pour avoir aussi une ancre "domaine-...-....html?var1=...&var2=...&var3=...#ancre" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^domaine-([0-9]+)-([A-Za-z\-]+)\.html(?:(\?(.*))?(?:(\#(.*))?$  domaine.php?q=$1&aliasdomaine=$2&$3#$4
    (à vérifier si "#" a besoin ou pas d'un anti-slash devant)

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2013
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2013
    Messages : 243
    Par défaut
    OK merci, j'ai résolu mon problème.

    Code rewrite:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^domaine-page([0-9]+)\.html$  doamine.php?page=$1 [L]
    J'ai mis un lien dans menu qui affiche la première page:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="<?php echo "domaine-page".$pageActuelle.".html" ?>">Tous les domaines</a>
    Code affiche liste des page+lien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php 
         if ($nombreDePages > 1){
    	for($i=1; $i<=$nombreDePages; $i++){ 
     
                    if($i==$pageActuelle) { 
    			echo '<a class="" href="#" onclick="this.blur(); return false;"><span> ['.$i.'] </span></a>'; 
    		}	
    		else { 
    			echo '<a href="domaine-page'.$i.'.html" onclick="this.blur();"><span> ['.$i.'] </span></a> ';
    		}
    	}
    	echo '</p>';
       }
    ?>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Pagination et URL rewriting
    Par link.80 dans le forum Langage
    Réponses: 8
    Dernier message: 13/07/2009, 17h57
  2. [URL Rewriting] réécriture et lien
    Par vinceb59 dans le forum Apache
    Réponses: 3
    Dernier message: 11/01/2008, 17h47
  3. Réponses: 2
    Dernier message: 29/11/2007, 18h41
  4. [URL Rewriting] Redirection dossier vers lien
    Par alikharchafi dans le forum Apache
    Réponses: 13
    Dernier message: 16/10/2007, 14h48
  5. Changer ses liens pour l'URL Rewriting
    Par bobic dans le forum Apache
    Réponses: 2
    Dernier message: 12/01/2007, 13h16

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