Pagination en php URGENT

Signaler
Messages postés
57
Date d'inscription
lundi 16 mai 2005
Statut
Membre
Dernière intervention
24 septembre 2010
-
Messages postés
57
Date d'inscription
lundi 16 mai 2005
Statut
Membre
Dernière intervention
24 septembre 2010
-
Tout d'abord je suis debutant en php et J'ai un petit pb,jarrive pas a trouver l'erreur dans mon script de pagination pour une requete SQL qui retourn bcp de resultat sur different page.AIDEz MOI SVP!!
<?
include("connect.inc.php"); //parametre de connection
include("heads.inc.php");

$request= $_SERVER['REQUEST_METHOD'];

($request=="POST")?$choix=$_POST['choix']:$choix=$_GET['choix'];
($request=="POST")? $debut=0 : $debut=$_GET['debut'];
($request=="POST")? $fin=5: $fin=$_GET['fin'];

if($choix==NULL)
echo"<center> VOUS AVEZ FAIT AUCUN CHOIX. </center>";
else{
$query ="SELECT id_style FROM style WHERE (style.style)= '$choix'";
$resultat=mysql_query($query);
while($tableau=mysql_fetch_array($resultat)){
$id_style=$tableau["id_style"];
}
$queryno="SELECT no FROM possede WHERE (possede.id_style)='$id_style' ";
$resultatno=mysql_query($queryno);
$nbno=mysql_num_rows($resultatno);
//($nbno==o)?echo"<center> Il n'y a pas encore de script pour la rubrique $choix. </center>":CONTINUE;
$queryno ="SELECT no FROM possede WHERE (possede.id_style)='$id_style' LIMIT $debut,$fin";
$resultatno=mysql_query($queryno);
while($tableauno=mysql_fetch_array($resultatno)){
$no=$tableauno["no"];

$queryid="SELECT id,script FROM script WHERE (script.no)='$no' LIMIT $debut,$fin";
$resultatid=mysql_query($queryid);
while($tableauid=mysql_fetch_array($resultatid)){
$id=$tableauid["id"];
$script=$tableauid["script"];

$queryren="SELECT rendu FROM rendu WHERE (rendu.id)='$id' LIMIT $debut,$fin";
$resultatren=mysql_query($queryren);
while($tableauren=mysql_fetch_array($resultatren)){

$rendu=$tableauren["rendu"];

echo"<center>$rendu</center>";
echo"<center>$script</center>";
echo"<center>#################################################################</center>";
echo"<center>#################################################################</center>";
}
}
}
}
$nbrp=ceil($nbno/$fin);
echo"<center>";
if($nbrp>=2)
{
if(isset($_GET['page']))
{
if($_GET['page']==1){echo"PRECEDENT";}
else{
$deb=$debut-$fin;
echo"PRECEDENT";
}
}
else{echo"PRECEDENT";}
}
for($i=0;$i<$nbrp;$i++)
{
$deb=$debut+$fin;
echo"PAGE".($i+1)."-";
}
if($nbrp>=2)
{
if(isset($_GET['page']))
{
if($_GET['page']==$nbrp){echo"SUIVANT";}
else{
$deb=$debut+$fin;
echo"SUIVANT";
}
}
else{echo"SUIVANT";}
echo"</center>";

echo"<hr width=80% align="middle" />
<center>RETOUR A LA PAGE D'ACCEUIL</center>";
}
include("foot.inc.php");
?>

5 réponses

Messages postés
388
Date d'inscription
lundi 7 juillet 2003
Statut
Webmaster
Dernière intervention
10 février 2009

Salut,



dis nous ce que fait le script, perso, j'ai pas trop le temps de
chercher a comprendre ce que fais ton code, ou du moins commente le
assez pour que l'on puisse le comprendre facilement.



De plus, indiques nous l'erreur que tu as ainsi que la ligne, et si
possible surligne la, pour que l'on ai pas non plus a la chercher dans
ton source.



A plus avec un POST un peu plus compréhensible

"They are 10 sorts of persons whose understand binary and whose not"
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
41
($request=="POST")?$choix=$_POST['choix']:$choix=$_GET['choix'];

est à remplacer par :



$choix=($request=='POST')?$_POST['choix']:$_GET['choix'];


je ne fais pas de mysql mais je vois quand même ces petites imperfections


In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
Messages postés
57
Date d'inscription
lundi 16 mai 2005
Statut
Membre
Dernière intervention
24 septembre 2010

Salut GARFIELD90

BEN en fait le pb c ke apres ke ca nous ai affiché les 5 premier resultats sur la page 2 par exple il me mais le mm resultat ke la page 1
Messages postés
388
Date d'inscription
lundi 7 juillet 2003
Statut
Webmaster
Dernière intervention
10 février 2009

Salut,



tu fais tout le temps la meme requete, car tu initialises $debut à 0
dans tous les cas: (pb au niveau de ton formulaire probablement, ke ne
peux pas voir, il est pas présent )

remplace cette ligne

($request=="POST")? $debut=0 : $debut=$_GET['debut'];
par

$debut = ($request=='POST') ? intval($_POST['debut']) : intval($_GET['debut']) ;



le intval permet d'avoir 0 dans les cas où tu as des mauvaise valeurs dans $_GET ou $_POST ['debut'].



Cependant fais un affichage de ta requete, ca te permettra de voir si j'ai raison ou non




"They are 10 sorts of persons whose understand binary and whose not"
Messages postés
57
Date d'inscription
lundi 16 mai 2005
Statut
Membre
Dernière intervention
24 septembre 2010

Salut GARFIELD90
enfait ta rectification est bonne mais sa marche toujours pas.
mais maintenant sur les pages suivantes la requete n'est pas executée.
As tu la soluce a ce pb stp?