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 :

recherche code pour limiter une lister et utiliser les bouton suivant precedent


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 329
    Points : 126
    Points
    126
    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 : 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
    <?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 : 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
     
    <?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 : 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
    <?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.

  2. #2
    Rédacteur
    Avatar de BrYs
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 014
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 014
    Points : 3 522
    Points
    3 522
    Par défaut
    Fais un recherche sur le forum en utilisant le mot

    pagination
    Tu trouveras ton bonheur

    exmeple de source :

    http://php.developpez.com/sources/?p...ysqlpagination

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 329
    Points : 126
    Points
    126
    Par défaut merci
    je vais chercher et regarder le lien

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 329
    Points : 126
    Points
    126
    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 : 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
     
    <?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 : 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
     
    <?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 : 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
     
    <?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;}
    ?>

Discussions similaires

  1. Réponses: 1
    Dernier message: 15/04/2014, 12h45
  2. Recherche méthode pour formater une chaine pour JS
    Par mittim dans le forum Langage
    Réponses: 1
    Dernier message: 05/09/2006, 10h04
  3. code pour faire une migration
    Par rollins_ng dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 11/08/2006, 21h18
  4. Réponses: 16
    Dernier message: 07/08/2006, 13h11
  5. [FTP] Code pour mettre une image en background
    Par Link14 dans le forum Langage
    Réponses: 2
    Dernier message: 24/02/2006, 21h10

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