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 :

probleme dans la pagination


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Avril 2011
    Messages : 65
    Par défaut probleme dans la pagination
    bonjours ,

    SVP , j'ai bessoin d'un coup de main intelligent....j'ai un script php et je voudrai afiicher un formulaire de donnée page par page, dans chaque enrigistrement il y a 50 enrigistrement dans chaque page.j'ai arrivé a faire ça , mais j'ai rencontré deux petit probleme:
    i) la numerotation impair des enrigistrement (la numrotation est comme ça( 1 3 5 7 9....))
    ii) le repetition des liens ("suivant" et" précédent") en haut de chaque page , je sais que le probleme est dans la boucle "while" mais je ne peut sortir le bloc de la boucle while pour resoudre le probleme..
    merci pour votre comrehension et ça sera trés synpa :priere:
    voici mon code..
    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
     
    <?php
    	     $limit=50;
             $page = isset($_GET['page']) ? $_GET['page']:0; 
    		 $requete = "SELECT * from pc"; 
    		 $ret = mysql_query($requete);
    		 $nb_total=mysql_num_rows($ret);
    		 if($nb_total>$page*$limit)
    		 {
              $debut=$page*$limit; 
     
     
             $limite=mysql_query("$requete limit $debut,$limit"); 
    	      $limit_str = "LIMIT ". $page * $limit .",$limit"; 
     
            $result = mysql_query("SELECT *  FROM pc ORDER BY id ASC $limit_str"); 
    	     $k=1;
    	    while ($row =mysql_fetch_array ($result) ) 
        {    
    	     echo "<tr>";
    		 echo "<td valign=top><p class=text2>$k</td>";
    	     echo "<td valign=top><p class=text2>$row[1]</td>";
    		 echo "<td valign=top><p class=text2>$row[2]</td>";
    		 echo "<td valign=top><p class=text2>$row[11]</td>";
    		 echo "<td valign=top><p class=text2>$row[12]</td>";
    		 echo "<td valign=top><p class=text2>$row[9]</td>";
    		 echo "<td valign=top><p class=text2>$row[7]</td>";
    		 echo "<td valign=top><p class=text2>$row[8]</td>";
    		 echo "<td><p class=text2><img src=img/arrow1.gif border=0> Nom :$row[3]<br>
    		 <img src=img/arrow1.gif border=0> Pr&eacute;nom :$row[4]<br> 
    		 <img src=img/arrow1.gif border=0> matricule :$row[5] <br> 
    		 <img src=img/arrow1.gif border=0> Service/UF :$row[6]<br>
    		 <img src=img/arrow1.gif border=0> Date d'affectation :$row[10]
    		 </td>";
    		 $k+;
    	}
    		 //if ($page>0) { 
             //$precedent=$page-1; 
             //echo "<a href="$PHP_SELF?$page=$precedent"><b>< Page précédente</b></a> "; 
             //} 
    	     //}
    		 if ($page>0) { 
            $precedent=$page-1; 
            echo '<a href="'. $_SERVER['PHP_SELF'] .'?page='.$precedent.'"><b>&lt;Page précédente</b></a>'; 
            } 
             $i=0; 
             $j=1; 
    		 if($nb_total>$limit) { 
    		 } 
    	      While($i<($nb_total/$limit)) { 
                     if($i!=$page){
    		           echo ' <a href="' . $_SERVER['PHP_SELF'].'?page='.$i.'"><b>'.$j.'</b></a> ';} 
            else { echo  '<b>'.$j.'</b>';} 
    	  }
     
            $i++;$j++; 
          }
    	  }
     
          if($debut+$limit<$nb_total) { 
            $suivant=$page+1; 
            echo '<a href="' .$_SERVER['PHP_SELF'].'?page='.$suivant.'"><b>< Page suivante &gt;</b></a>';
        //echo"</center>"; 
        }
        ?>

  2. #2
    Membre expérimenté Avatar de Retrokiller069
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 217
    Par défaut
    Bonjour,

    je regarde un peu ton code et j'ai trouvé une erreur (peut être dut copier/coller)

    ligne 35: k++;

    Les lignes 12 et 15 me paresse bizarre, j'aurais fait cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $limite=mysql_query($requete." limit ".$debut.",".$limit); 
    $result = mysql_query("SELECT *  FROM pc ORDER BY id ASC ".$limit_str);
    pourrais tu nous retouner $result (ex: print_r($result); ) pour voir si cela te retourne bien tout ce qu'il te faut?

    j'ai une } en trop à la ligne 57 (peut être dut copier/coller).

    Pourrais tu m'expliquer ta condition dans ton while:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    While($i<($nb_total/$limit))

  3. #3
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Avril 2011
    Messages : 65
    Par défaut
    bonjours

    merci pour vos remarques..
    pour la première remarque, oui c'est une faute de frappe.
    pour la deuxième remarque:::
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $limit_str = "LIMIT ". $page * $limit .",$limit"; 
    $result = mysql_query("SELECT *  FROM pc ORDER BY id ASC $limit_str");
    je voudrai à partir de ces lignes afficher 50 enregistrement par page , et cela de façon dynamique , c'est a dire si après un temps , j’insère des donnée > 50 , il y a création d'une nouvelle page)
    pour la troisième remarque ( While($i<($nb_total/$limit))),c'est pour afficher les numéros des pages,, même si on le supprime, c'est pas grave mais le problème de répétition des lien reste et aussi le problème des numération impair des données...
    dans l'attente....

  4. #4
    Membre expérimenté Avatar de Retrokiller069
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 217
    Par défaut
    Bonjour,

    je vois pas trop pourquoi cela n'affiche que les impaires, pourrais tu nous envoyer un imprime écran pour voir ce que ca fait stp?

    Avant fait peut être ceci:
    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
    ?><table width="400">
       <tr>
    <?php
     
        While($i<($nb_total/$limit)) 
        { 
                if($i!=$page){
    	       ?><td> <a href="<?php echo $_SERVER['PHP_SELF'].'?page='.$i; ?>"><b><?php echo $j; ?></b></a><td><?php } 
                 else {?><td><b><?php echo $j; ?></b> </td><?php} 
         }
     
            $i++;$j++; 
          }
    ?>
       </tr>
    </table>
    <?php

  5. #5
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Avril 2011
    Messages : 65
    Par défaut
    bonjours,,,

    merci pour la remaque,, mais rien a changé...

    il est noter que ,meme, si je supprime le bloc "while" ,il reste le meme probleme
    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
     
     <?php
    	     $limit=50;
             $page = isset($_GET['page']) ? $_GET['page']:0; 
    		 $requete = "SELECT * from pc"; 
    		 $ret = mysql_query($requete);
    		 $nb_total=mysql_num_rows($ret);
    		 if($nb_total>$page*$limit)
    		 {
              $debut=$page*$limit; 
     
     
             $limite=mysql_query("$requete limit $debut,$limit"); 
    	      $limit_str = "LIMIT ". $page * $limit .",$limit"; 
     
            $result = mysql_query("SELECT *  FROM pc ORDER BY id ASC LIMIT 50"); 
    	   $k=1;
    	    while ($row =mysql_fetch_array ($result) ) 
        {   
    	     echo "<tr>";
    		 echo "<td valign=top><p class=text2>$k</td>";
    	     echo "<td valign=top><p class=text2>$row[1]</td>";
    		 echo "<td valign=top><p class=text2>$row[2]</td>";
    		 echo "<td valign=top><p class=text2>$row[11]</td>";
    		 echo "<td valign=top><p class=text2>$row[12]</td>";
    		 echo "<td valign=top><p class=text2>$row[9]</td>";
    		 echo "<td valign=top><p class=text2>$row[7]</td>";
    		 echo "<td valign=top><p class=text2>$row[8]</td>";
    		 echo "<td><p class=text2><img src=img/arrow1.gif border=0> Nom :$row[3]<br>
    		 <img src=img/arrow1.gif border=0> Pr&eacute;nom :$row[4]<br> 
    		 <img src=img/arrow1.gif border=0> matricule :$row[5] <br> 
    		 <img src=img/arrow1.gif border=0> Service/UF :$row[6]<br>
    		 <img src=img/arrow1.gif border=0> Date d'affectation :$row[10]
    		 </td>";
    		 //if ($page>0) { 
             //$precedent=$page-1; 
             //echo "<a href="$PHP_SELF?$page=$precedent"><b>< Page précédente</b></a> "; 
             //} 
    	     //}
    		 if ($page>0) { 
            $precedent=$page-1; 
            echo '<a href="'. $_SERVER['PHP_SELF'] .'?page='.$precedent.'"><b>&lt;Page précédente</b></a>'; 
            } 
     
          if($debut+$limit<$nb_total) { 
         $suivant=$page+1; 
         echo '<a href="' .$_SERVER['PHP_SELF'].'?page='.$suivant.'"><b>Page suivante &gt;</b></a>';
        echo"</center>"; 
        }
    	$k++;
        ?>
    pour l'envoie de l'imprime ecran...je ne sais pas comment fait ça...????

    dans l'attente.....

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Par défaut
    Bonjour,

    Touche 'Imp Ecran" du clavier puis, coller l'image dans un logiciel d'image gratuit tel que photofiltre

    Ensuite l'ajouter ici

Discussions similaires

  1. Probleme dans request.QueryString("chaine")
    Par soufienne dans le forum ASP
    Réponses: 8
    Dernier message: 24/08/2004, 14h49
  2. Probleme dans une procedure stockée
    Par malbaladejo dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 07/07/2004, 14h08
  3. petit probleme dans une requte POSTGRE SQL
    Par ghis le fou dans le forum Requêtes
    Réponses: 5
    Dernier message: 08/09/2003, 13h51
  4. Probleme dans une clause like !
    Par adil dans le forum Langage SQL
    Réponses: 6
    Dernier message: 15/07/2003, 16h47
  5. Probleme dans ma requete
    Par Kuroro dans le forum Requêtes
    Réponses: 2
    Dernier message: 11/07/2003, 11h14

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