PHP: navigation et numérotation de pages

Nico -  
 Thibs -
Bonjour à tous,
Je suis à la recherche d'un petit script PHP (ou idée) afin de réaliser une numérotation de page et une navigation clair sur mon site.
Si quelqu'un a des idées, merci d'avance.
A+

8 réponses

  1. Martin
     
    Salut,

    j'aime bien le code page par page à la google.... c un code PHP/MySql... auriez vous la même chose en PHP/Access?

    Merci!!
    3
  2. Matt42
     
    Bonsoir,
    Et pourquoi pas quelque chose comme ça :
    << Précente | Page X | Aller à la page (liste déroulante avec tous les numéros de page) | Suivante >>
    La liste déroulante s'écrit facilement en php.
    Page X serait la page courante.
    A voir...
    0
    1. tdie
       
      Salut,
      je cherche quelque chose dans le genre, tu as pas un exemple comment faire ça? surtout je vois pas comment faire avec la liste déroulante
      0
  3. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  4. Nico
     
    Tout d'abord, merci à tous pour votre aide;
    La solution qui me conviendrait le plus c'est en effet, un truc dans le même style que google...
    Mais pour le faire..... j'vois pas trop. quelqu'un aurait il un petit script php qui pourrait m'aider ?
    Merci d'avance.
    0
  5. laurent
     
    Salut,

    je devrais pas faire ca mais bon :)
    pour les images prend les direct
    sur l'un de mes sites :: http://www.charmapart.com

    @++

    <?php
    // ------------------------------------------------------------------------
    // image_html
    // ------------------------------------------------------------------------
    function image_html($img, $align = "absmiddle")
    {
    $taille = @getimagesize($img);
    return '<IMG SRC="'.$img.'" '.$taille[3].' BORDER=0 ALIGN="'.$align.'">';
    }

    // ------------------------------------------------------------------------
    // barre_navigation
    // ------------------------------------------------------------------------
    function barre_navigation($nbtotal,
    $nbenr,
    $cfg_nbres_ppage,
    $debut, $cfg_nb_pages
    )
    {
    // --------------------------------------------------------------------
    global $cfg_nb_pages; // Nb de n° de pages affichées dans la barre

    $lien_on = ' <A HREF="{cible}">{lien}</A> ';
    $lien_off = ' {lien} ';
    // --------------------------------------------------------------------

    $query = 'index.php?debut=';

    // début << .
    // --------------------------------------------------------------------
    if ($debut >= $cfg_nbres_ppage)
    {
    $cible = $query.(0);
    $image = image_html('images/gauche_on.gif');
    $lien = str_replace('{lien}', $image.$image, $lien_on);
    $lien = str_replace('{cible}', $cible, $lien);
    }
    else
    {
    $image = image_html('images/gauche_off.gif');
    $lien = str_replace('{lien}', $image.$image, $lien_off);
    }
    $barre .= $lien." <B><font color = foe3ae>·</B>";

    // précédent < .
    // --------------------------------------------------------------------
    if ($debut >= $cfg_nbres_ppage)
    {
    $cible = $query.($debut-$cfg_nbres_ppage);
    $image = image_html('images/gauche_on.gif');
    $lien = str_replace('{lien}', $image, $lien_on);
    $lien = str_replace('{cible}', $cible, $lien);
    }
    else
    {
    $image = image_html('images/gauche_off.gif');
    $lien = str_replace('{lien}', $image, $lien_off);
    }
    $barre .= $lien." <B>·</B>";

    // pages 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10
    // -------------------------------------------------------------------

    if ($debut >= ($cfg_nb_pages * $cfg_nbres_ppage))
    {
    $cpt_fin = ($debut / $cfg_nbres_ppage) + 1;
    $cpt_deb = $cpt_fin - $cfg_nb_pages + 1;
    }
    else
    {
    $cpt_deb = 1;

    $cpt_fin = (int)($nbtotal / $cfg_nbres_ppage);
    if (($nbtotal % $cfg_nbres_ppage) != 0) $cpt_fin++;

    if ($cpt_fin > $cfg_nb_pages) $cpt_fin = $cfg_nb_pages;
    }

    for ($cpt = $cpt_deb; $cpt <= $cpt_fin; $cpt++)
    {
    if ($cpt == ($debut / $cfg_nbres_ppage) + 1)
    {
    $barre .= "<A CLASS='ma'> ".$cpt." </A> ";
    }
    else
    {
    $barre .= "<A CLASS='on' HREF='".$query.(($cpt-1)*$cfg_nbres_ppage);
    $barre .= "'<A> ".$cpt." </A> ";
    }
    }

    // suivant . >
    // --------------------------------------------------------------------
    if ($debut + $cfg_nbres_ppage < $nbtotal)
    {
    $cible = $query.($debut+$cfg_nbres_ppage);
    $image = image_html('images/droite_on.gif');
    $lien = str_replace('{lien}', $image, $lien_on);
    $lien = str_replace('{cible}', $cible, $lien);
    }
    else
    {
    $image = image_html('images/droite_off.gif');
    $lien = str_replace('{lien}', $image, $lien_off);
    }
    $barre .= " <B>·</B>".$lien;

    // fin . >>
    // --------------------------------------------------------------------
    $fin = ($nbtotal - ($nbtotal % $cfg_nbres_ppage));
    if (($nbtotal % $cfg_nbres_ppage) == 0) $fin = $fin - $cfg_nbres_ppage;

    if ($fin != $debut)
    {
    $cible = $query.$fin;
    $image = image_html('images/droite_on.gif');
    $lien = str_replace('{lien}', $image.$image, $lien_on);
    $lien = str_replace('{cible}', $cible, $lien);
    }
    else
    {
    $image = image_html('images/droite_off.gif');
    $lien = str_replace('{lien}', $image.$image, $lien_off);
    }
    $barre .= "<B>·</B> ".$lien;

    return($barre);
    }

    $cfgBase = $sql_base;

    // ------------------------------------------------------------------------
    $nom_table = '';
    $champs = '*';
    // ------------------------------------------------------------------------
    $cfg_nbres_ppage = 3; // Nombre de réponses par page
    $cfg_nb_pages = 10; // Nombre de n° de pages affichés dans la barre
    // ------------------------------------------------------------------------
    $nbtotal = 5;
    if (!isset($nbtotal)) $nbtotal = 4;
    if (!isset($debut)) $debut = 0;

    // recherche des réponses
    $sql = 'SELECT '.$champs.' ';
    $sql .= 'FROM '.$nom_table.' ';
    $sql .= ' ORDER BY id ASC';
    $sql .= ' LIMIT '.$debut.','.$cfg_nbres_ppage;

    $resultat = mysql_db_query($cfgBase, $sql);
    $nbenr = mysql_num_rows($resultat);

    // plage de réponses
    $barre_nav = '<TABLE BORDER=0 WIDTH="100%" CELLPADDING=3 CELLSPACING=1>';
    $barre_nav .= '<TR class=normalnobold><TD BGCOLOR=#f8f8f8 WIDTH="35%" ALIGN="left">';
    $barre_nav .= '     Result: <B>'.($debut + 1).'</B> to <B>'.($debut + $nbenr).'</B>';
    $barre_nav .= ' of <B>'.($nbtotal).'</B></TD>';

    // barre de navigation
    if($nbtotal>10){$barre_nav .= "<TD ALIGN='center' WIDTH='60%'> ";}
    if($nbtotal<=10){$barre_nav .= "<TD BGCOLOR=#f8f8f8 ALIGN='center' WIDTH='60%'> ";}

    if ($nbtotal > $cfg_nbres_ppage)
    {
    $barre_nav .= barre_navigation($nbtotal, $nbenr,
    $cfg_nbres_ppage,
    $debut, $cfg_nb_pages
    );
    }
    $barre_nav .= "</TD></TR></TABLE>\n";

    // affichage de la barre de navigation
    echo $barre_nav;

    // affichage des données

    while ($row = mysql_fetch_array($resultat))
    { print" $row[YEPYEP]</b><br> "; } ?>
    0
  6. laurent
     
    Re,

    Merci pour le site d'appart mais en ce moment ce site est en campagne Google sur l'amérique latine et ca marche du feu de dieu, par contre si en tapant PHP sur ton moteur de recherche ::: mon site : http://www.phpsources.net pouvait etre en premiere page ca serait génial car je pense que c mérité. Enfin c toi qui vois :)

    Laurent
    http://www.phpsources.net
    0