Bdd affichage des données

Résolu
Nico_ Messages postés 1220 Date d'inscription   Statut Membre Dernière intervention   -  
divland Messages postés 215 Statut Membre -
Bonjour,

j'ai sur mon site des messages que j'ajoute régulièrement dans une BDD.
Je les affiches par ordre décroissant.
Je vais bientôt avoir trop de message sur une page (celle-ci commence à ce déformer)
Quel est le code pour faire afficher les 10 premiers message, et qu'a la fin du 10ème messages,
il y ai page 1 2 3 4 5
je souhaite qu'il y ai 10 messages par page.
Automatiquement, que je ne soit pas obligé de faire ces page a la main.

Merci, bonne journée et bon weekend.
--
Le service a besoin de nous, mais nous nous n'avons pas besoin de lui !
Si résolu, n'oublie pas de cliquer !
Configuration: Windows XP
Firefox 3.0

1 réponse

  1. divland Messages postés 215 Statut Membre 13
     
    bonjour,
    j'ai retrouvé ce bout de script...je pense que ça correspond à ce que vous recherchez..

    //début
    <?
    //récupération de $limite
    if(isset($_GET['limite']))
    $limite=$_GET['limite']; else $limite=0;

    function verifLimite($limite,$total,$nombre) {
    // je verifie si limite est un nombre.
    if(is_numeric($limite)) {

    // si $limite est entre 0 et $total, $limite est ok
    // sinon $limite n'est pas valide.
    if(($limite >=0) && ($limite <= $total) && (($limite%$nombre)==0)) {
    // j'assigne 1 à $valide si $limite est entre 0 et $max
    $valide = 1;
    }
    else {
    // sinon j'assigne 0 à $valide
    $valide = 0;
    }
    }
    else {
    // si $limite n'est pas numérique j'assigne 0 à $valide
    $valide = 0;
    }
    // je renvois $valide
    return $valide;
    }
    ?>
    <?
    function affichePages($nb,$page,$total,$gras) {
    $nbpages=ceil($total/$nb);
    $numeroPages = 1;
    $compteurPages = 1;
    $limite = 0;
    echo '<table border = "0" ><tr>'."\n";
    while($numeroPages <= $nbpages) {
    if($gras == $numeroPages) {
    echo '<td ><span class = "numeropage">  '.$numeroPages.'  </span></td>'."\n";
    }
    else {
    echo '<td ><span class = "numeropage_gras"><a href = "'.$page.'?limite='.$limite.'">'.$numeroPages.'</a></span></td>'."\n";
    }
    $limite = $limite + $nb;
    $numeroPages = $numeroPages + 1;
    $compteurPages = $compteurPages + 1;
    if($compteurPages == 10) {
    $compteurPages = 1;
    echo '<br>'."\n";
    }
    }
    echo '</tr></table>'."\n";
    }
    ?>
    <?
    //=========================================
    // information pour la connection à le DB
    //=========================================
    $host = 'xxxxxxx';
    $user = 'xxxxxxx';
    $pass = 'xxxxxxx';
    $db = 'xxxxxxxxx';
    //=========================================
    // initialisation des variables
    //=========================================
    // on va afficher 5 résultats par page.
    $nombre = 5;
    // si limite n'existe pas on l'initialise à zéro
    if (!$limite) $limite = 0;
    // on cherche le nom de la page.
    $path_parts = pathinfo($_SERVER['PHP_SELF']);
    $page = $path_parts["basename"];
    $gras = ($limite / $nombre)+1;
    //=========================================
    // connection à la DB
    //=========================================
    $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
    mysql_select_db($db) or die ('Erreur :'.mysql_error());

    //=========================================
    // requête SQL qui compte le nombre total
    // d'enregistrements dans la table.
    //=========================================
    $select = "SELECT count(xxxxxxxxxxxxx) FROM xxxxxxxxx";
    $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
    $row = mysql_fetch_row($result);
    $total = $row[0];

    //=========================================
    // vérifier la validité de notre variable
    // $limite;
    //=========================================
    $verifLimite= verifLimite($limite,$total,$nombre);
    // si la limite passée n'est pas valide on la remet à zéro
    if(!$verifLimite) {
    $limite = 0;
    }

    $sql = "SELECT * FROM xxxxxxx ORDER BY id DESC limit ".$limite.','.$nombre;

    // on envoie la requete
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

    // on fait une boucle qui va faire un tour pour chaque enregistrements
    while($data = mysql_fetch_array($req))
    {
    // on affiche les informations de l'enregistrements en cours
    echo 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
    }

    // on ferme la connexion à mysql
    mysql_close();

    //=========================================
    // si le nombre d'enregistrement à afficher
    // est plus grand que $nombre
    //=========================================
    if($total > $nombre) {
    // affichage des liens vers les pages
    affichePages($nombre,$page,$total,$gras);
    }
    ?>
    //fin

    en remplaçant les x par les bonnes valeurs ...
    0
    1. Nico_ Messages postés 1220 Date d'inscription   Statut Membre Dernière intervention   189
       
      Merci bien je fais les essais.
      0
    2. Nico_ Messages postés 1220 Date d'inscription   Statut Membre Dernière intervention   189
       
      Merci, ça fonctionne comme je le souhaitais !

      Bonne soirée
      0
      1. divland Messages postés 215 Statut Membre 13 > Nico_ Messages postés 1220 Date d'inscription   Statut Membre Dernière intervention  
         
        heureux d'avoir pu t'aider

        0