PHP Pagination

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";
Configuration: Windows XP
Internet Explorer 6.0

10 réponses

  1. $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
    1. bin justement page courante ca devait etre 1 .
      1 * 5 - 5 = 0 !!
      je ne sais vraiment pas :(
      1. Où initialises-tu $page_courante ? Si ça vaut 0, c'est que probablement l'initialisation ne se fait pas correctement.
        1. $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 !!:!
          1. $page_courante la vau 0 ; je le voi nul par dans ton code; peut etre dans l'include?? modif: post trop tard ;)
            1. 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 ?
              1. 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
                1. Mince et si tu copi colle le texte de celui ci dans un bloc note ?
                  1. 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