PHP Pagination

Fermé
dubuducu Messages postés 391 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 19 mai 2010 - 3 juil. 2008 à 11:58
dubuducu Messages postés 391 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 19 mai 2010 - 3 juil. 2008 à 13:13
Bonjour,
mon code m'affiche -5 a la valeur $start ... ce qui fait que mes requetes ne renvoient aucunes données ... Mon affichage est donc nul ! pouvez vous resoudre ceci sil vous plait ?
session_start();
include('bdd.php');
include ('pagination.php');
	
	$b = $_POST['thematique_projet'];	
	$_SESSION['b'] = $b;
	$k = $_SESSION['k'];
		
$entrees_par_page = 5; 
$start = ($page_courante * $entrees_par_page - $entrees_par_page);		

 
if ( ($a == 'null'))
{
	if ($b == 'null')
	{
	 $sql = "SELECT * FROM devis_table  WHERE sous_categorie = '" . $k . "' ORDER BY '" . $a ."' LIMIT $start, $entrees_par_page  "; 
	$result = mysql_query( $sql) or die( "Erreur : " . mysql_error() );
	$nb_entrees = mysql_num_rows($result);
	$total_pages = ceil($nb_entrees/$entrees_par_page);

	
	}
	else
	$sql = "SELECT * FROM devis_table  WHERE thematique_projet = '" . $b . "' ORDER BY '" . $a ."' LIMIT $start, $entrees_par_page  "; 
	$result = mysql_query( $sql) or die( "Erreur : " . mysql_error() ); 
$nb_entrees = mysql_num_rows($result);
$total_pages = ceil($nb_entrees/$entrees_par_page);	

	}
else
{
$sql = "SELECT * FROM devis_table  WHERE departement = '" . $a . "' AND thematique_projet = '" . $b . "' ORDER BY '" . $a ."' LIMIT $start, $entrees_par_page "; 
$result = mysql_query( $sql) or die( "Erreur : " . mysql_error() ); 
$nb_entrees = mysql_num_rows($result);
$total_pages = ceil($nb_entrees/$entrees_par_page);

}
echo "$start";
echo "$entrees_par_page";
A voir également:

10 réponses

CapitainCo Messages postés 126 Date d'inscription mardi 24 juin 2008 Statut Membre Dernière intervention 5 novembre 2009 61
3 juil. 2008 à 12:21
$page_courante * $entrees_par_page - $entrees_par_page
0 * 5 - 5 =-5

alors je c pas ce que tu veux afficher comme parametre
0 * (5-5) =0
0
dubuducu Messages postés 391 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 19 mai 2010 4
3 juil. 2008 à 12:31
bin justement page courante ca devait etre 1 .
1 * 5 - 5 = 0 !!
je ne sais vraiment pas :(
0
Sri Lumpa Messages postés 177 Date d'inscription mercredi 14 novembre 2007 Statut Membre Dernière intervention 1 juin 2010 69
3 juil. 2008 à 12:35
Où initialises-tu $page_courante ? Si ça vaut 0, c'est que probablement l'initialisation ne se fait pas correctement.
0
dubuducu Messages postés 391 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 19 mai 2010 4
3 juil. 2008 à 12:37
$entrees_par_page = 5; 
	
if(!isset($_GET['page'])){
        $page_courante = 1; // si aucune page n'existe dans l'URL, on attribue 1 à la page courante
    } else {
        $page = $_GET['page'];
        if ($page<1) $page_courante=1; // on ne peut avoir de page inférieure à 1 : dans ce cas la valeur par défaut est 1
        elseif ($page>$total_pages) $page_courante=$total_pages; // on ne peut avoir de page supérieure au nombre total de pages : dans ce cas la valeur par défaut est la dernière page
        else $page_courante=$page; // sinon la page courante est celle indiquée dans l'URL
    }
	
	
$start = ($page_courante * $entrees_par_page - $entrees_par_page);	
if ( ($a == 'null'))
{

	if ($b == 'null')
	{
	

	 $sql = "SELECT * FROM devis_table  WHERE sous_categorie = '" . $k . "' ORDER BY '" . $a ."' LIMIT $start, $entrees_par_page  "; 
	$result = mysql_query( $sql) or die( "Erreur : " . mysql_error() );
	$nb_entrees = mysql_num_rows($result);
	$total_pages = ceil($nb_entrees/$entrees_par_page);
	}
	else
	
	$sql = "SELECT * FROM devis_table  WHERE thematique_projet = '" . $b . "' ORDER BY '" . $a ."' LIMIT $start, $entrees_par_page  "; 
	$result = mysql_query( $sql) or die( "Erreur : " . mysql_error() ); 
	$nb_entrees = mysql_num_rows($result);
	$total_pages = ceil($nb_entrees/$entrees_par_page);	

	}
else
{

$sql = "SELECT * FROM devis_table  WHERE departement = '" . $a . "' AND thematique_projet = '" . $b . "' ORDER BY '" . $a ."' LIMIT $start, $entrees_par_page "; 
$result = mysql_query( $sql) or die( "Erreur : " . mysql_error() ); 
$nb_entrees = mysql_num_rows($result);
$total_pages = ceil($nb_entrees/$entrees_par_page);

}

echo "$start";echo "_";
echo "$entrees_par_page";echo "_";
echo "$total_pages";echo "_";
echo "$page_courante";
echo "_";


je ne sais pas ou placer mon if get page !!:!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
CapitainCo Messages postés 126 Date d'inscription mardi 24 juin 2008 Statut Membre Dernière intervention 5 novembre 2009 61
3 juil. 2008 à 12:38
$page_courante la vau 0 ; je le voi nul par dans ton code; peut etre dans l'include?? modif: post trop tard ;)
0
dubuducu Messages postés 391 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 19 mai 2010 4
3 juil. 2008 à 12:44
hum ! jai donc ici un autre probleme . je calcule le nombre de ligne de ma requete alors qu'elle est limitée a 5 lignes .
c'est pour ca que j'obtien nombre_page = 1
car 5/5 = 1
que dois-je faire ?
0
dubuducu Messages postés 391 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 19 mai 2010 4
3 juil. 2008 à 13:00
Alors voila, j'ai donc fait deux requetes identiques sauf que pour l'une j'ai enlevé le limit ! ca me donne le bon nombre de page.
Mon nouveau probleme (y'en a pas mal aujourd'hui) est que lorsque j'appui sur page 2 (liste.php?page=2) rien ne s'affiche
session_start();
include('bdd.php');
include ('pagination.php');
	
	$b = $_POST['thematique_projet'];	
	$_SESSION['b'] = $b;
	$k = $_SESSION['k'];
		
$entrees_par_page = 5; 
	
if(!isset($_GET['page'])){
        $page_courante = 1; // si aucune page n'existe dans l'URL, on attribue 1 à la page courante
    } else {
        $page = $_GET['page'];
        if ($page<1) $page_courante=1; // on ne peut avoir de page inférieure à 1 : dans ce cas la valeur par défaut est 1
        elseif ($page>$total_pages) $page_courante=$total_pages; // on ne peut avoir de page supérieure au nombre total de pages : dans ce cas la valeur par défaut est la dernière page
        else $page_courante=$page; // sinon la page courante est celle indiquée dans l'URL
    }
	
	
$start = ($page_courante * $entrees_par_page - $entrees_par_page);	
if ( ($a == 'null'))
{

	if ($b == 'null')
	{
	$sql_entree = "SELECT * FROM devis_table  WHERE sous_categorie = '" . $k . "' ORDER BY '" . $a ."'  "; 
	$result_entree = mysql_query( $sql_entree) or die( "Erreur : " . mysql_error() );

	 $sql = "SELECT * FROM devis_table  WHERE sous_categorie = '" . $k . "' ORDER BY '" . $a ."' LIMIT $start, $entrees_par_page  "; 
	$result = mysql_query( $sql) or die( "Erreur : " . mysql_error() );
	$nb_entrees = mysql_num_rows($result_entree);
	$total_pages = ceil($nb_entrees/$entrees_par_page);
	}
	else
	$sql_entree = "SELECT * FROM devis_table  WHERE thematique_projet = '" . $b . "' ORDER BY '" . $a ."'  "; 
	$result_entree = mysql_query( $sql_entree) or die( "Erreur : " . mysql_error() ); 
	$sql = "SELECT * FROM devis_table  WHERE thematique_projet = '" . $b . "' ORDER BY '" . $a ."' LIMIT $start, $entrees_par_page  "; 
	$result = mysql_query( $sql) or die( "Erreur : " . mysql_error() ); 
	$nb_entrees = mysql_num_rows($result_entree);
	$total_pages = ceil($nb_entrees/$entrees_par_page);	

	}
else
{
$sql_entree = "SELECT * FROM devis_table  WHERE departement = '" . $a . "' AND thematique_projet = '" . $b . "' ORDER BY '" . $a ."'  ";
$result_entree = mysql_query( $sql_entree) or die( "Erreur : " . mysql_error() );
$sql = "SELECT * FROM devis_table  WHERE departement = '" . $a . "' AND thematique_projet = '" . $b . "' ORDER BY '" . $a ."' LIMIT $start, $entrees_par_page "; 
$result = mysql_query( $sql) or die( "Erreur : " . mysql_error() ); 
$nb_entrees = mysql_num_rows($result_entree);
$total_pages = ceil($nb_entrees/$entrees_par_page);

}




if ( $thematique_projet == 'null')

{		
echo"<b><center>Votre Recherche porte sur <br> $k / Toutes les Thematiques <br><br><br></center></b>\n";
}
else
{		
echo"<b><center>Votre Recherche porte sur <br> $k / $thematique_projet <br><br><br></center></b>\n";
}



if($result) { 
// debut du tableau 
echo '<form action="confirmation.php" method="post">';
 echo '<font size="2" face="Arial" >';
 
echo '<table bgcolor="#FFFFFF" border="0" align="center">'."\n"; 
// première ligne on affiche les titres dans 4 colonnes 
echo '<tr>'; 
echo '<td width="80" bgcolor="#3366ff"><b><u><font color="#FFFFFF">Devis n° :</font></u></b></td>'; 
echo '<td bgcolor="#3366ff"><b><u><font color="#FFFFFF">Département </font></u></b></td>­'; 
echo '<td bgcolor="#3366ff"><b><u><font color="#FFFFFF">Commentaires</font></u></b></td>'; 
echo '<td bgcolor="#3366ff"><b><u><font color="#FFFFFF">Clics Restants</font></u></b></td>'; 
echo '<td bgcolor="#3366ff"><b><u></u></b></td>'; 
echo '</tr>'."\n"; 
// lecture et affichage des résultats sur 4 colonnes, 1 résultat par ligne. 




$i=0; 
$timeout = 604800;
$heure = time();





while($row = mysql_fetch_array($result)) 
{ 
	if ( ( $heure < ($row['time'] + $timeout )) || ( $row['time'] == "0" ))
		
		
		if ( $row['clic'] != "0" )
				
		
			{

				{
				echo '<tr>'; 
				echo '<td width="80" bgcolor="#e8e2e2">'.$row[id].'</td>'; 
				echo '<td bgcolor="#e8e2e2">'.$row[departement].'</td>'; 
				echo '<td bgcolor="#e8e2e2">'.$row[commentaires].'</td>'; 
				echo '<td bgcolor="#e8e2e2">'.$row[clic].'</td>';			
				echo '<td><input type="checkbox" name="option'.$i.'" value="'.$row[id].'">acheter</td>';
				echo '</tr>'; 
				$i = $i+1; 
				
				
				
				echo '<tr>';
				echo '<td></td>';
				echo '<td bgcolor="#e8e2e2"><h5><i>Ajouté le :<br> </h5></i></td>';
				echo '<td bgcolor="#e8e2e2"><h5><i>'.$row[Date].'</h5></i></td>';
	echo '<td bgcolor="#e8e2e2"><h5><i>'.$row[objet_message2].'</h5></i></td>';
				echo '<td></td>';
				echo '</tr>';	
				
				echo '<input type="hidden" name="variable" value="'.$i.'">'; 
				
			
	
				}	
			}
			
		
} 


echo '</table>'."\n"; 

echo "<input type='submit' value='Commander Devis' /></form>"; 

 echo '</font>';
// fin du tableau. 

} 

else 
{
echo 'Pas d\'enregistrements dans cette table...'; 
}
echo '<center>'."\n"; 
echo pagination($total_pages,$page_courante);
echo '</center>'."\n"; 


Merci
0
CapitainCo Messages postés 126 Date d'inscription mardi 24 juin 2008 Statut Membre Dernière intervention 5 novembre 2009 61
3 juil. 2008 à 13:02
dsl mais je voi pas ton post en entier
0
dubuducu Messages postés 391 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 19 mai 2010 4
3 juil. 2008 à 13:06
Mince et si tu copi colle le texte de celui ci dans un bloc note ?
0
dubuducu Messages postés 391 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 19 mai 2010 4
3 juil. 2008 à 13:13
help please !
je deteste quand ca fonctionne presque mais en fait ca fonctionne pas ... :(
j'ai besoin d'un oeil nouveau sur mon code, mes erreurs je ne les voients plus.je passe dessus sans faire attention.

Merci beaucoup
0