Bonjour, j'ai créer un système de pagination avec l'aide du tuto de grafikart. Le soucis c'est que quand je clique sur la page 2 ou bien 3 fin à la page suivante j'ai un petit conflit et sa m'affiche ma page 404.

Voici mon index.php :

<?php
define("WEBROOT","/obStart/");
if(!isset($_GET"p"])){ $_GET"p"]="index"; }
if(!file_exists("page/".$_GET"p"].".php")){ $_GET"p"]="404"; }
ob_start();
include "page/".$_GET"p"].".php";
$content = ob_get_contents();
ob_end_clean();
include "template.php";

?>

Mon code avec la pagination :

<?php
    mysql_connect("localhost","root","");
    mysql_select_db("news");

    $sql="SELECT COUNT(id) as nbrNews FROM news";
    $req = mysql_query($sql) or die(mysql_error());
    $news=mysql_fetch_assoc($req);

    $nbrNews=$news'nbrNews'];
    $perPage=3;
    $nbPage=ceil($nbrNews/$perPage);
    $cPage=1;

    if(isset($_GET'p']) && $_GET'p']>0 && $_GET'p']<=$nbPage){
        $cPage=$_GET'p'];
    }
    else{
        $cPage=1;
    }

    $sql="SELECT * FROM news ORDER BY news.date DESC LIMIT ".(($cPage-1)*$perPage).",$perPage";
    $req = mysql_query($sql) or die(mysql_error());
    while($news=mysql_fetch_assoc($req)){
        echo "<div class='news_head'><b>{$news"titre"]}</b><br /><i><font size='1'>par {$news"id_login"]} le ".date("j/n/Y à G:i",strtotime($news"date"]))."</font></i></div>";
        echo "<div class='news_body'><p>{$news"contenu"]}</p></div>"; 
        echo "<div class='news_footer'></div>";
    }
    for($i=1;$i<=$nbPage;$i++){
        echo " <a href ='index.php?p=news?p=$i\'>$i</a> /"; 
    }

?>

J'ai donc un petit conflit mais je ne sais pas quoi rajouté dans mon code pour que cela fonctionne.

2 réponses


PhiSyX
Réponse acceptée

Hello, il faut changer le $_GET'p'] par $_GET'np'] par ex, dans la pagination et il y a un problème dans l'url : <a href ='index.php?p=news ?p =$i\'>$i</a>
Remplace par : <a href="index.php?p=news &np =$i">$i</a>

marrtin
Auteur

Ok merci beaucoup ! =)