Bdd affichage des données

Résolu
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. 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. Merci bien je fais les essais.
      0
    2. Merci, ça fonctionne comme je le souhaitais !

      Bonne soirée
      0
    3. @Nico_heureux d'avoir pu t'aider

      0