Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
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 28/09/2006, 17h47   #1
Membre régulier
 
Inscription : décembre 2005
Messages : 305
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 305
Points : 86
Points : 86
Par défaut recherche code pour limiter une lister et utiliser les bouton suivant precedent

Bonjours

J'ai crée une page affichant un listing sous forme de tableau. Je n'arrive pas à faire une fonction qui permetra de limiter le nombre de lignes dans une page.
De plus je souhaiterai trouver une fonction qui me permetra d'afficher la suite du listing dans une autre page en utilisant le bouton suivant ou précédent.

test.php
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
<?php
session_start();
require('fonction_test.php');
mysql_connect("localhost","root","");
mysql_select_db("test");
$sql = "SELECT ref,nom,prenom,age FROM inscris";
$exec = mysql_query($sql);
$af = array();
$i=0;
while ($res = mysql_fetch_object($exec)){
$af[$i][0]=$res->ref;
$af[$i][1]=$res->nom;
$af[$i][2]=$res->prenom;
$af[$i][3]=$res->age;
$i++;
}
$_SESSION["af"]=$af;
?>
<html>
<head>
</head>
<body>
<form method="post" action="traitement.php"/>
<table border="1" align="center">
<tr>
<td colspan="4" align="center"><b>test de tableau</b></td>
</tr>
<tr>
<td colspan="1"><b>Référence</b></td>
<td colspan="1"><b>Nom de l'entreprise</b></td>
<td colspan="1"><b>Nom</b></td>
<td colspan="1"><b>Prénom</b></td>
</tr>
<?php 
afficher_test($af);
?>
</table>
</form>
</body>
</html>
fonction_test.php
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
 
<?php
function afficher_test($af){
	$taille = sizeof($af);
	if ($taille-1 <= 4){$limite = $taille-1;}
	else {$limite = 4;}
	//-----------------------------------
	for ($i = 0; $i <= $limite+4; $i++){
		if  ($af[$i][0] != 0){
		echo "<tr><td colspan='1'>";
		echo $af[$i][0];
		echo "</td><td colspan='1'>";
		echo $af[$i][1];
		echo "</td><td colspan='1'>";
        echo $af[$i][2];
		echo "</td><td colspan='1'>";
		echo $af[$i][3];
		echo "</td></tr>";
}}
		echo "<tr><td colspan='1'>";
		echo "<input type='submit' value='Précédent' name='action'/>";
		echo "</td><td colspan='2'>";
		echo "Nombre de page";
		echo "</td><td colspan='1'>";
		echo "<input type='submit' value='Suivant' name='action'/>";
		echo "</td></tr>";
}
?>
traitement.php

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
session_start();
mysql_connect("localhost","root","");
mysql_select_db("test");
require('fonction_test.php');
$action = $_POST['action'];
if ($action=="Suivant"){
//ici on met la page+ref permetant d'afficher la suite du listing dans une autre page.
}
elseif ($action=="Précédent"){
//ici on met la page+ref permetant de revenir au listing dans de l'ancienne page.
}
}
else{header("location:test.php");}
?>
Pouvez vous me donner un lien où trouver ce code qui permet d'afficher la suite du listing dans une autre page en utilisant les boutons, ou me completer le script de traitement afin de faire cela?

J'ai fais une recherche sur google avec : php + listing + suivant + precedent . j ai rien trouver.
carmen256 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2006, 17h49   #2
Rédacteur
 
Avatar de BrYs
 
Inscription : octobre 2002
Messages : 2 016
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : octobre 2002
Messages : 2 016
Points : 2 038
Points : 2 038
Fais un recherche sur le forum en utilisant le mot

Citation:
pagination
Tu trouveras ton bonheur

exmeple de source :

http://php.developpez.com/sources/?p...ysqlpagination
BrYs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2006, 17h52   #3
Membre régulier
 
Inscription : décembre 2005
Messages : 305
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 305
Points : 86
Points : 86
Par défaut merci

je vais chercher et regarder le lien
carmen256 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2006, 17h43   #4
Membre régulier
 
Inscription : décembre 2005
Messages : 305
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 305
Points : 86
Points : 86
Par défaut rep

J' ai reussi a faire ma fonction de pagination. Mais j ai un probleme, en cas d'un trop grand nombre de ligne, ma pagination va exploser le telechargement de la page.
Comment faire pour avoir une pagination de 10 en 10 page style google?

exemple < 1 2 3 4 5 7 8 9 10 > si je clique sur 10 j'ai
<8 9 10 11 12 13 14 15 16 17 18 > mais les page de 1 à 7 ne sont plus en memoire. idem pour les pages 19 à n.

Donc je voudrais modifier ma fonction_pagination.php afin de faire cela. Mais je ne sais pas comment faire et quelle fonction doit etre utilisée.

pouvez vous me donner un lien viers un exemple ou me donner le script à insérer dans ma fonction afin de faire cela ?


test.php
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
 
<?php
session_start();
mysql_connect("localhost","root","");
mysql_select_db('test');
require('fonction_listing.php');
$sql = "SELECT nom,prenom,age,sexe FROM fr_entreprise";
$exec = mysql_query($sql);$parpage = 2;
$url = $_SERVER['PHP_SELF']."?ref=";
$nblignes = mysql_num_rows($exec);
$nbpages = ceil($nblignes/$parpage);
$result = validlimit($nblignes,$parpage,$sql);
$af = array();$i=0;
while($res=mysql_fetch_array($result)){
$af[$i][0]=$res[nom];
$af[$i][1]=$res[prenom];
$af[$i][2]=$res[age];
$af[$i][3]=$res[sexe];
$i++;
}
$_SESSION['af']=$af;
?>
<html>
<head></head>
<body>
<table border="1" align="center">
<tr>
<td colspan="4" align="center"><b>test de tableau</b></td>
</tr>
<tr>
<td colspan="1"><b>nom</b></td>
<td colspan="1"><b>prenom</b></td>
<td colspan="1"><b>age</b></td>
<td colspan="1"><b>sexe</b></td>
</tr>
<?php
afficher_test($af);
echo pagination($url,$parpage,$nblignes,$nbpages);
?>
</table>
</body>
</html>
focntion_listing.php
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
<?php
require('fonction_pagination.php');
function afficher_test($af){
	$taille = sizeof($af);
	if ($taille-1 <= 4){$limite = $taille-1;}
	else {$limite = 4;}
	//-----------------------------------
	for ($i = 0; $i <= $limite+4; $i++){
		if  ($af[$i][0] != 0){
		echo "<tr><td colspan='1'>";
		echo $af[$i][0];
		echo "</td><td colspan='1'>";
		echo $af[$i][1];
		echo "</td><td colspan='1'>";
        echo $af[$i][2];
		echo "</td><td colspan='1'>";
		echo $af[$i][3];
		echo "</td></tr>";
}}}
?>
fonction_pagination.php
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
 
<?php
function pagination($url,$parpage,$nblignes,$nbpages)
{$html = precedent($url,$parpage,$nblignes);
 if ($nbpages > 1) {
    for ($i = 0 ; $i < $nbpages ; ++$i) {
      $ref = $i * $parpage;
      $ref = $ref.",".$parpage;
      $html .= "<a href=".$url.$ref.">".($i + 1)."</a>";}}
  else {$html .= "";}
  $html .= suivant($url,$parpage,$nblignes);
  return $html;}
function validlimit($nblignes,$parpage,$sql)
{if (isset($_GET['ref'])) { 
    $pointer = split('[,]', $_GET['ref']);
    $debut = $pointer[0];
    $fin = $pointer[1];
    if (($debut >= 0) && ($debut < $nblignes) && ($fin == $parpage)){
      $ref = $_GET['ref'];
      $sql .= " LIMIT ".$ref.";";
      $result = mysql_query($sql);}
    else {$sql .= " LIMIT 0,".$parpage.";";$result = mysql_query($sql);}}
  else {$sql .= " LIMIT 0,".$parpage.";";$result = mysql_query($sql);}
  return $result;}
function precedent($url,$parpage,$nblignes)
{if ($nblignes > $parpage) {
    if (isset($_GET['ref'])) {
      $pointer = split('[,]', $_GET['ref']);
      $pointer = $pointer[0]-$parpage;
      if ($pointer < 0) {$precedent = "";}
      else {$ref = "$pointer,$parpage";
      $precedent = "<a href=".$url.$ref."><img src='fleche_gauche.gif'></a>";}
                               }else {$precedent = "";}
                            }else {$precedent = "";}return $precedent;}
function suivant($url,$parpage,$nblignes)
{if ($nblignes > $parpage) {
    if (isset($_GET['ref'])) {
      $pointer = split('[,]', $_GET['ref']);
      $pointer = $pointer[0] + $parpage;
      if ($pointer >= $nblignes) {
        $suivant = "";
      }else {
        $ref = "$pointer,$parpage";
        $suivant = "<a class='pagination' href=".$url.$ref."><img src='fleche_droite.gif'></a>";}}
    if (@$_GET['ref']== false) {
      $suivant = "<a href=".$url.$parpage.",".$parpage."><img src='fleche_droite.gif'></a>";}}
  else {$suivant = "";}return $suivant;}
?>
carmen256 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 12h33.


 
 
 
 
Partenaires

Hébergement Web