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 :

Aide sur système de news et pagination


Sujet :

Langage PHP

  1. #1
    Invité
    Invité(e)
    Par défaut Aide sur système de news et pagination
    Bonjour

    Je butte sur un système de news !
    J'explique j'ai une fonction pour faire un système de pagination et une page de news (news.php) !

    Le probleme c'est que je voudrais afficher par exemple dix news par page mais je ne vois pas du tout comment faire !

    Le code de la fonction :
    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
    <?php
    function pagination($page, $max_page){
    if ($max_page > 1){
     
    	if ($page == 1){
    			echo "Retour";
    		}
    		else {
    			echo "<a href=\"news.php?page=".($page-1)."\">";
    			echo "Retour";
    			echo "</a>";
    		}
    	for ($i = 1; $i <= $max_page; $i++) {
    	if ($i == $page) {
    			echo " ".$i." ";
    		}
    	else {
    			echo "<a href=\"news.php?page=".$i."\">";
    			echo " ".$i." ";
    			echo "</a>";
    		}
    	}
    	if ($page == $max_page)	{
    			echo "Suivant";
    		}
    	else {
    			echo "<a href=\"news.php?page=".($page+1)."\">";
    			echo "Suivant";
    			echo"</a>";
    		}
    	}
    }
    ?>
    et maintenant le code de la page news.php :
    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
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    <?php 
    require ('includes/bdd.php');
    include('includes/fonction.php');
    //verification et creation de la variable $page
    if(isset($_GET['page'])) { 
    		$page = $_GET['page'];}
    	else {
    		$page = 1;
    		};
    //inititalisation $max_page
    $max_page = 10;
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <meta name="google-site-verification" content="HOQBshUhs5Bs78NFD1dPjMTBkhrohTjemZ744tL8LmE" />
    <link rel="stylesheet" media="screen" type="text/css" title="css main" href="styles/style-main.css" />
    <title>Actualités</title>
    </head>
     
    <body>
    <?php include("includes/banniere.php"); ?>
     
    <?php include("includes/menu-h.php"); ?>
     
    <div id="corps">
     
    <strong><font color="#CC0000" size="+2">Actualités</font></strong>
    <br /><br /><br />
    <?php
    //Connexion à la base de donnée
    $db_link = @mysql_connect(SQL_SERVER,SQL_USER,SQL_PASS);
    mysql_select_db(SQL_BDD);
     
    //Recupération des 'LIMIT_NEWS'(fichier de config) dernière news
    $sql = 'SELECT * FROM Sud_news ORDER BY newsId DESC LIMIT '.LIMIT_NEWS.'';
     
    $rc = mysql_query($sql);
     
    while($data = mysql_fetch_array($rc)) {
       //remplacement du '\n' par '<br />'
       $data['news'] =  str_replace("\n","<br />", $data['news']);
     
       //On Affiche ou pas l'Auteur et la Date (fichier de config)
       echo'<table width="95%" border="0"><tr>';
       if(SHOW_DATE == 'yes') {
        echo '<td bgcolor="#F9D6C7">News du '.$data['date'].', ';
       }
       if(SHOW_AUTEUR == 'yes') {
        echo 'par '.$data['auteur'].'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Titre :&nbsp;';
       }
       //Affichage du titre et de la news
       echo '<b>'.$data['titre'].'</b></td></tr>';
       echo '<tr><td>'.$data['news'].'</td></tr></table><br /><br />';
     
    }
    ?>
    <!----------------------------------------------------------->
    <div align="center">
    <?php
      	  pagination($page,$max_page);
    	  	  echo "<br>Vous êtes sur la page ".$page;
    	  ?>
    </div>
    <!----------------------------------------------------------->
    </div>
     
      <?php include("includes/pied.php"); ?>
     
    </body>
    </html>
    en sachant quand meme qu'il y a une limite sur l'affichage des news que l'on peux faire varié via ce bout de code qui est dans mon fichier de connexion a la bdd :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    DEFINE('LIMIT_NEWS','10');
    DEFINE('SHOW_DATE','yes');
    DEFINE('SHOW_AUTEUR','yes');
    ?>
    Cordialement

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    927
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 927
    Points : 2 113
    Points
    2 113
    Par défaut
    Ca semble être bon.

    Mais la requête SQL de sélection des news devrait se terminer par "LIMIT (numPage*10),10" plutôt que "LIMIT 10".

    Regarde cet exemple de pagination on y trouve la requête de sélection suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sql = 'SELECT id, personnage, acteur
    FROM xmen
    LIMIT '.($page * $nb).','.$nb;
    où page est le numéro de page et nb le nombre de lignes par page.

    Si ça ne t'aide pas, rajoute des détails sur ce que tu n'arrive pas à faire précisément. Car vu le code c'est plus une petite erreur qu'une question générale sur le processus de pagination.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour et merci pour la réponse !

    Je ne vois pas du tout comment faire !
    Avec le code de pagination j'ai bien le systeme en bas de mes news qui affiche de la page 1 à 10 et pour l'instant vu qu'il y a qu'une news elle s'affiche sur toutes les pages.

    Cordialement

    C'est bon j'ai utilisé la source que tu m'as mise en lien pour refaire mon système de news ! Donc sujet résolu

    Merci beaucoup
    Dernière modification par Invité ; 18/11/2009 à 10h33.

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 26/11/2007, 00h47
  2. [Système] aide sur acess module de paiement
    Par kalissia dans le forum Langage
    Réponses: 4
    Dernier message: 17/05/2007, 20h27
  3. Aide sur un projet en méthodes programmation systèmes
    Par citadine dans le forum Réseau
    Réponses: 6
    Dernier message: 17/01/2007, 12h40
  4. [Système] Besoin d'aide sur un calendrier
    Par joxbl dans le forum Langage
    Réponses: 5
    Dernier message: 03/06/2006, 17h02

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