Posez votre question Signaler

PHP Pagination

dubuducu 389Messages postés 2 juin 2008Date d'inscription 19 mai 2010Dernière intervention - Dernière réponse le 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";
Lire la suite 

PHP Pagination »

10 réponses
Réponse
+0
moins plus
$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
Ajouter un commentaire
Réponse
+0
moins plus
bin justement page courante ca devait etre 1 .
1 * 5 - 5 = 0 !!
je ne sais vraiment pas :(
Ajouter un commentaire
Réponse
+0
moins plus
Où initialises-tu $page_courante ? Si ça vaut 0, c'est que probablement l'initialisation ne se fait pas correctement.
Ajouter un commentaire
Réponse
+0
moins plus
$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 !!:!
Ajouter un commentaire
Réponse
+0
moins plus
$page_courante la vau 0 ; je le voi nul par dans ton code; peut etre dans l'include?? modif: post trop tard ;)
Ajouter un commentaire
Réponse
+0
moins plus
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 ?
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
dsl mais je voi pas ton post en entier
Ajouter un commentaire
Réponse
+0
moins plus
Mince et si tu copi colle le texte de celui ci dans un bloc note ?
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Ce document intitulé « PHP Pagination » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?