IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Pagination [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2009
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 83
    Par défaut Pagination
    Salut tt le monde.
    J'ai un pbm dont je souhaite vous faire part. En fait j'ai un code de pagination que j'utilise et je pense qu'il marche. j'ai un tableau qui affiche le resultat d'une requete, et en dessous duquel j'affiche le total de cette requete.Ce que j'ai comme probleme est que en passantà une autre page, ce resultat disparait.
    Je vous envoie mon code pour plus de precision.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    <?php
    $titrepage="Liste des interlocuteurs";
    //Connnection à la base de données
    include('connect.inc.php');
    mysql_open();
    $affichage=10; //nombre d'enregistrements à afficher par page
    //Détermination du nombre de page disponible
    if(isset($_GET['np'])) // Si le numero de page est sélectionné
       $num_pages=$_GET['np'];
    else//Sinon
     {   
       $select="SELECT COUNT(*) FROM interlocuteur";//Compte le nombre d'enregistrements dans la table client
       $resultat=mysql_query($select);//Exécution de la requête
       $enregistrement=mysql_fetch_array($resultat, MYSQL_NUM);//récupération du nombre d'enregistrement
       $nombrenregistrement=$enregistrement[0];
       //Calcul du nombre de page disponible
       if($nombrenregistrement > $affichage) //Si plus d'une page
       {
        $num_pages=ceil($nombrenregistrement/$affichage);//numero de pages
        }
     else
     {
       $num_pages=1;
     }
     }
     
     //Détermination du point de départ dans la base de donnée
     if (isset($_GET['s']))
     {
       $depart=$_GET['s'];
      }
       else
       {
         $depart=0;
        }
             $link1 = "{$_SERVER['PHP_SELF']} ?tri=ncli";
    		 $link2 = "{$_SERVER['PHP_SELF']} ?tri=nint";
    	 //vérifie si l'ordre de tri a été défini
    	 if (isset($_GET['tri']))
    	 {
    	   //Détermine comment seront triés les résultats de la requête.
    	   switch ($_GET['tri'])
    	   {
    	      case 'ncli':
    	                   $order_by = 'NomCli ASC';
    			   $link1 = "{$_SERVER['PHP_SELF']}?tri=fnd";
    			   break;
    	      case 'fnd':
    	                    $order_by = 'NomCli DESC';
    			    $link1 = "{$_SERVER['PHP_SELF']}?tri=ncli";
    			    break;
    		  case 'nint':
    	                   $order_by = 'nom ASC';
    			   $link2 = "{$_SERVER['PHP_SELF']}?tri=fnd";
    			   break;
    			   case 'fnd':
    	                    $order_by = 'nom DESC';
    			    $link2 = "{$_SERVER['PHP_SELF']}?tri=nint";
    			    break;
     
    	      default:
    			    $order_by = 'nom DESC';
    			    break;
    	     }
    		   $tri = $_GET['tri'];
             }
    		 else
    		 {
              $order_by = 'NomCli ASC';
              $tri = 'rdd';
             }
     
             $strselect="SELECT civilite, codeinterloc, nom, prenom, fonction, telephone, cellulaire, mail, NomCli FROM client, interlocuteur WHERE client.CodeCli=interlocuteur.CodeCli ORDER BY $order_by LIMIT $depart, $affichage";
             $result = @mysql_query($strselect);
             echo '<table align="center" cellspacing="0" cellpadding="8" border="0"  width="98%" id="rounded-corner" bgcolor="#FFFFFF">
    		  <tr >
    	        <th><b><a href="'.$link1.'">Société</a></b></th>
    		  	<th><b><a href="'.$link2.'">Nom & Prénoms</a></b></th>
    		  	<th><b>Fonction</b></th>
    			<th><b>Téléphone</b></th>
    			<th><b>Cellulaire</b></th>
    			<th><b>E-mail</b></th>
    		</tr>';
    		$bg='#eeeeee';
    		while($row=mysql_fetch_array($result, MYSQL_ASSOC))
    		  {
    		   $bg=($bg=='#eeeeee'? '#ffffff' : '#eeeeee');
    		   echo '<tr bgcolor="'.$bg.'">
    		               <td align="left">' . $row['NomCli'] . '</td>
    		               <td align="left"><a href="infointerlocuteur.php? id=' . $row['codeinterloc'] .'' . $row['nom'] .' '. $row['prenom'] .'">' . $row['civilite'] .' ' . $row['nom'] .' '. $row['prenom'] .'</a></td>
    					   <td align="left">' . $row['fonction'] . '</td>
    					   <td align="left">' . $row['telephone'] . '</td>
    					   <td align="left">' . $row['cellulaire'] . '</td>
    					   <td align="left">' . $row['mail'] . '</td>
    				 </tr>';
    	      }
    		   echo '</table>';
    		   echo'<font size="5"> Total :<font style="color:red;"><b> '.$nombrenregistrement.'</b></font></font>';
    		   if ($num_pages > 1)
    		   {
    		    echo '<br /><p>';
    		    $pagecourante = ($depart/$affichage) + 1;
    		    if ($pagecourante != 1)
    		    {
    		      echo '<a href="listeinterlocuteur.php?s=' . ($depart - $affichage) . '&np=' . $num_pages . '&tri=' . $tri . '">Précédent</a> ';
    		     }
               for ($i = 1; $i <= $num_pages; $i++)
    		    {
    		     if ($i != $pagecourante)
    		     {
    		       echo '<a href="listeinterlocuteur.php?s=' . (($affichage * ($i - 1))) . '&np=' . $num_pages . '&tri=' . $tri . '">' . $i . '</a> ';
    		      }
    		     else
    		     { 
    		      echo $i . ' ';		
    		     }
    		    }
    		  if ($pagecourante != $num_pages)
    		  {
    		    echo '<a href="listeinterlocuteur.php?s=' . ($depart + $affichage). '&np=' . $num_pages .'&tri='.$tri.'">Suivant</a>';
    		   }
    		  echo '</p>';
    		  }
    		   //mysql_free_result($result);
    		   mysql_close();
    ?>

  2. #2
    Membre émérite
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Par défaut
    Bonjour,
    Je crois que la solution a ton probleme tient dans ces lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(isset($_GET['np'])) // Si le numero de page est sélectionné
       $num_pages=$_GET['np'];
    else//Sinon
     {   
      $select="SELECT COUNT(*) FROM interlocuteur";//Compte le nombre d'enregistrements dans la table client
    Comme tu viens de le deviner, si tu renvoies un numéro de page (isset($_GET['np'])), alors tu rentres dans le if, et non dans le select. Lorsque aucune page n'a été choisi, B]isset($_GET['np'])[/B] est faux, et donc on rentre dans la clause else.

    Z.

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2009
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 83
    Par défaut
    Je crois que j'ai trouvé la solution avec ton aide. J'ai en fait supprimé le else
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(isset($_GET['np'])) // Si le numero de page est sélectionné
       $num_pages=$_GET['np'];  
      $select="SELECT COUNT(*) FROM interlocuteur";//Compte le nombre d'enregistrements dans la table client

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Pagination : numéroter sous la forme (1/4)
    Par audreyb dans le forum SAP Crystal Reports
    Réponses: 8
    Dernier message: 01/03/2013, 11h59
  2. [VB.NET] Pagination DataGrid (où est l'erreur?)
    Par franculo_caoulene dans le forum ASP.NET
    Réponses: 2
    Dernier message: 25/10/2004, 11h46
  3. [C#] Probleme de pagination dans datagrid
    Par asphareth dans le forum ASP.NET
    Réponses: 2
    Dernier message: 21/07/2004, 11h25
  4. [VB.NET] Pagination DataGrid
    Par sehing dans le forum ASP.NET
    Réponses: 5
    Dernier message: 20/07/2004, 16h28
  5. Réponses: 15
    Dernier message: 20/07/2004, 09h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo