Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/07/2011, 15h53   #1
 
Homme khmaies guesmi
Étudiant
Inscription : avril 2011
Messages : 63
Détails du profil
Informations personnelles :
Nom : Homme khmaies guesmi
Localisation : Tunisie

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

Informations forums :
Inscription : avril 2011
Messages : 63
Points : -3
Points : -3
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 :
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>"; 
    }
    ?>
pfakhmaies est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 17h12   #2
Membre confirmé
 
Avatar de Retrokiller069
 
Homme Bertrand
Étudiant
Inscription : octobre 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Bertrand
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2010
Messages : 216
Points : 268
Points : 268
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 :
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 :
While($i<($nb_total/$limit))
__________________
Ce n'est pas ce que nous voulons faire qui est impossible mais ce sont les moyens à sa mise en oeuvre qui peuvent le paraître

Ps: N'oubliez pas SVP
Retrokiller069 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 18h18   #3
 
Homme khmaies guesmi
Étudiant
Inscription : avril 2011
Messages : 63
Détails du profil
Informations personnelles :
Nom : Homme khmaies guesmi
Localisation : Tunisie

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

Informations forums :
Inscription : avril 2011
Messages : 63
Points : -3
Points : -3
bonjours

merci pour vos remarques..
pour la première remarque, oui c'est une faute de frappe.
pour la deuxième remarque:::
Code :
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....
pfakhmaies est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2011, 08h15   #4
Membre confirmé
 
Avatar de Retrokiller069
 
Homme Bertrand
Étudiant
Inscription : octobre 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Bertrand
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2010
Messages : 216
Points : 268
Points : 268
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 :
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
__________________
Ce n'est pas ce que nous voulons faire qui est impossible mais ce sont les moyens à sa mise en oeuvre qui peuvent le paraître

Ps: N'oubliez pas SVP
Retrokiller069 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2011, 09h13   #5
 
Homme khmaies guesmi
Étudiant
Inscription : avril 2011
Messages : 63
Détails du profil
Informations personnelles :
Nom : Homme khmaies guesmi
Localisation : Tunisie

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

Informations forums :
Inscription : avril 2011
Messages : 63
Points : -3
Points : -3
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 :
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.....
pfakhmaies est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2011, 10h33   #6
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
Bonjour,

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

Ensuite l'ajouter ici
heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h36.


 
 
 
 
Partenaires

Hébergement Web