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 :

affichage paginé d'une table de bdd mysql


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 7
    Points : 7
    Points
    7
    Par défaut affichage paginé d'une table de bdd mysql
    bonjour,
    En réalite je dispose d'une table et je veux l'afficher jusqu'à present ca marche:

    Mais en fait cette table contient 1002 enregistrements
    Ben voil le probleme vous penser bien que je ne vais pas afficher 1002 enregistrements dans la meme page php
    donc j'ai decide de regrouper l'affichage des enregistrement par 30
    jusqu'à present ca marche:
    avec une requete sql

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query="SELECT distinct nom,prenom,id FROM `mutuelles_a_remplir` LIMIT $Ncur,$Nmax";
    mais la je ne vois ke les 30 premiers enregistrements
    et moi je voudrai les voirs tous a l'aide de bouton suivant et precedent
    un peu comme sur phpmy admin.

    DONC aidez moi
    je vous en supplie aidez moi
    ps : voici mon code jusqu'a present :

    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
    <html><body>
    <?php
    $host = "localhost";
    $user = "root";
    $pass = "";
    $bdd = "mutuelles_stages";
    $table="mutuelles_a_remplir";
    $link =mysql_connect($host,$user,$pass) or die ("erreur de connexion au SGBD"); 
    mysql_select_db($bdd,$link) or die("Impossible de se connecter à la base de données");
     
    // si $a et $b sont égaux à Null alors $a=0 et $b=20
    //R1
     
    echo "<b>affichage de la table par 20</b>";
    echo "<br><br>";
     
    /* REQETE QUI NOUS PERMET DE COMPTABILISER LE NOMBRE TOTAL D'ENREGISTREMENTS DANS LA TABLE  */
     
    $query2="SELECT * FROM `mutuelles_a_remplir ";/* on selectionne toute la table */
    $result=mysql_query($query2,$link)or die($query2."probleme pour se connecter la base de données ".
    mysql_error());
     
    $total_enregistrements=mysql_num_rows($result);/*nombre maximum d'enregistrement */
     
    echo "on a ";echo $total_enregistrements; echo " enregistrements a remplir par les gestionnaires ";
     
     
    $Ncur='0';//n°de l'enregistrement courant
    $Nmax='20';//nombre maximum d'enregistrements par page
    $Ndeb=@$_GET["num"];//premier enregistrement transmise par l'URL
     
     
    /*REQETE QUI SELECTIONNE ENTIEREMENT LA TABLE AVEC DES LIMITES  */
    $query="SELECT distinct nom,prenom,id FROM `mutuelles_a_remplir` LIMIT $Ncur,$Nmax";
    echo "<br /><br />";
    $r=mysql_query($query);
    mysql_close();
     
     
    /*AFFICHAGE DE LA TABLE */
    echo'<table><tr><td>id</td><td>nom</td><td>prenom</td></tr>';
    while($a=mysql_fetch_object($r))
       {    $id= $a->id;
        $nom= $a->nom;
        $prenom= $a->prenom;
        echo"<tr><td>$id</td><td>$nom</td><td>$prenom</td></tr><tr><td>";	}
    echo '</table>';
    echo"<br><br>";
     
     
    echo "nombre de pages necessaire pour l'affichage de la table limité à 20 enregistrements --->  ";
    /*test *//*cherche la division avec resultat entier */
     
     
    $NBurl=$total_enregistrements/$Nmax;
    echo $NBurl;/*on affiche pour voir si ca marche */
     
     
    ?>
    </body>
    </html>




  2. #2
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Penses a mettre ton code en forme avec le # dans la boite de message, ca permet de le colorer et le rend bien plus lisible.

    Je n'ai pas détaillé ton code, mais il me semble qu'il te manque justement la manière de passer la position des enregistrements a afficher.

    Il va falloir que tu ajoutes deux liens dans ta page html qui vont présenter comme ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href="./monscript.php?nbPremierEnreg=<?php echo ($NCur + $NMax);?>">  Suivant </a>
    Comme ca, quand tu cliques sur le lien tu vas recharger le script mais tu sauras à quel numéro d'enregistrement tu en es, tu récupères cette valeur dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $NCur = $_GET['nbPremierEnreg'];
    Il suffit donc de vérifier s'il existe, si oui tu mets ton limit a cette valeur, si non tu démares de 1.

    J'espère avoir été clair!

  3. #3
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    g pas tre bien compris l'histoire de l'url qu va charger mon script

  4. #4
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Tu affiches le script, la premiere fois tu as les 20 premiers enregistrements.
    Tu as inséré un lien dans la page "Suivant" qui permet d'avoir les enregistrements 21 a 40.

    Ce lien, il relance ton script (celui qui fait la requete et affiche les résultats) mais il lui passe en paramètre la valeur 21 qui va lui permettre de dire, affiche les résultats de 21 a 40. Cette valeur est passée en paramètre comme expliqué dans mon message précédent.

  5. #5
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Merci

Discussions similaires

  1. pb affichage donnée d'une table
    Par steve o'steen dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 17/10/2006, 10h47
  2. deplacer un champ dans une table de BDD
    Par guillaumeIOB dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 13/10/2006, 15h42
  3. fonction qui fait le tri d'une Table de BDD
    Par devlopassion dans le forum C++Builder
    Réponses: 7
    Dernier message: 03/10/2006, 15h28
  4. import d'une table access ds mysql
    Par nogood1 dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 26/05/2006, 14h12
  5. Réponses: 5
    Dernier message: 08/03/2006, 03h42

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