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

Langage PHP Discussion :

Faire un système de pagination


Sujet :

Langage PHP

Vue hybride

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 15
    Par défaut Faire un système de pagination
    salut a tous,
    pour ma galerie photo j'aimerai créer une nouvelle page toutes les 12 photos postées... mon code créer bien les pages, mais toutes les photos s'affichent a chacune des pages je ne trouve pas mon erreur, sachant que j'ai réalisé ce code avec des codes déja existants en les mixants....

    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
    <?php
    $retour = mysql_query('SELECT COUNT(*) AS nb_photos FROM sneb_photo');
    				$donnees = mysql_fetch_array($retour);
    				$totalphoto = $donnees['nb_photos'];
     
    				$nbpages  = ceil($totalphoto / $NombrePhotoParPage);
     
    				if(isset($_GET['num_p'])) $page = $_GET['num_p'];
    				else $page = 1;
     
    				echo '<p style="text-align:center">Page : ';
    				for ($i = 1 ; $i <= $nbpages ; $i++)
    				{
    					echo '<a href="photos.php?num_p=' .$i. '">'; if($page == $i) echo '<strong>' . $i . '</strong></a> '; else echo $i. '</a> ';
    				}
    				echo '</p>';
     
    				$premierphoto = ($page - 1) * $NombrePhotoParPage;
    				$retour = mysql_query('SELECT * FROM sneb_photo ORDER BY id DESC LIMIT ' . $premierphoto . ', ' . $NombrePhotoParPage);
    				?>
    				</center>
    				<div class="contenu">
    			<?php
    				$retour2 = mysql_query("SELECT * FROM sneb_photo");
    			if(mysql_num_rows($retour2) > 0 )
    			{
    				$i = 0;
    				echo '<table style="width:100%"><tr>';
    				while ($donnees = mysql_fetch_array($retour2))
    				{
    					if($i == 6)
    					{
    						echo '</tr><tr>';
    						$i = 0;
    					}
     
    					// On enlève les éventuels antislash PUIS on crée les entrées en HTML (<br />)
    						$contenu = nl2br(stripslashes($donnees['CONTENU']));
    						$contenu = preg_replace('`(\[img])(.*?)(\[/img])`', '<td width="150px"><p class="thumbs" onmouseover="montre(\' Rider : <b>'.addslashes($donnees['RIDER']).' </b> <br>	Pix postée le :<b>'.date('d/m/Y à <br> H\hi', $donnees['TIMESTAMP']).' </b> <br>\')" onmouseout="cache();"><a href="img/image/$2"><img src="img/image/$2"/></a></p></td>', $contenu);
    						echo $contenu;
     
    					$i = $i+1;
    				}
    				echo '</tr></table>';
    			}
    			?>
    quelqu'un pourrait-il m'aider ?


    PS: je précise que dans un fichier de fonctions chargé en début de chaque page figure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $NombrePhotoParPage = 12;

  2. #2
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    Tu commences par faire la bonne requête (celle qui limite le nombre de résultats)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $retour = mysql_query('SELECT * FROM sneb_photo ORDER BY id DESC LIMIT ' . $premierphoto . ', ' . $NombrePhotoParPage);
    Le problème c'est que juste après tu fais une requête qui elle ne limite pas le nombre de photos retournées:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $retour2 = mysql_query("SELECT * FROM sneb_photo");
    Et enfin la boucle while qui traite les photos à afficher se base sur $retour2 et non $retour.

  3. #3
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    c'est normal, tu fais une mauvaise requete en trop

    change :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	$retour = mysql_query('SELECT * FROM sneb_photo ORDER BY id DESC LIMIT ' . $premierphoto . ', ' . $NombrePhotoParPage);
    	?>
    	</center>
    	<div class="contenu">
    <?php
    	$retour2 = mysql_query("SELECT * FROM sneb_photo");
    EN
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    		$retour2 = mysql_query('SELECT * FROM sneb_photo ORDER BY id DESC LIMIT ' . $premierphoto . ', ' . $NombrePhotoParPage);
    	?>
    	</center>
    	<div class="contenu">
    <?php
    donc comme tu peux le voir, j'ai supprilé la requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $retour2 = mysql_query("SELECT * FROM sneb_photo");
    et pour ne pas devoir changer tout le code, j'ai changé "$retour" en "$retour2" ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $retour = mysql_query('SELECT * FROM sneb_photo ORDER BY id DESC LIMIT ' . $premierphoto . ', ' . $NombrePhotoParPage);

    EDIT : snif... j'fais des posts trop longs et j'arrive après :'(

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 15
    Par défaut
    merci beaucoup, je me doutais que ça venais de $retour ou $retour2 mais je ne trouvais pas...

    darkstar123456 continu a faire des réponses aussi développées car meme si tu arrive après certains, tes réponses sont vraiment nettes, faciles a comprendre

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

Discussions similaires

  1. [Forum] Solution pour faire un système de communauté (Web 2.0)
    Par o11ww dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 15/07/2007, 18h28
  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