begin process at 2012 05 31 03:19:28
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

Débutants

 > 

Liens sur pages apres requete SQL


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Liens sur pages apres requete SQL

mercredi 1 juin 2005 à 13:55:39 | Liens sur pages apres requete SQL

LaTatadu91


salut,

voila j'ai trouver sur le site une fonction bien sympa pour créer des liens lorsque l'on effectue une requete SQL et que l'on veut diviser le retour en plusieurs pages ....
voici la fonction en question:

function pgs($enreg_par_pg, $pg, $link)
{
//c'est la requete qui doit permettre le nombre de résultats total qui va etre reparti sur plusieurs pages
    $res = mysql_query("SELEC * FROM blabla", $link);
    mysql_close();
    $nb_enreg = mysql_num_rows($res);
    //on calcule le nb de pages
    $nb_pg_rounded = ceil( $nb_enreg / $enreg_par_pg );//arrondi au nb supérieur
    //numero de page precedente
    $pp = $pg - 1;
    //numero de la page suivante
    $ps = $pg + 1;
    //si l'utilisateur ne se trouve pas a la page n°1
    if($pg != 1){
        //on affiche un lien page précedente
        echo "<a href='?page=29&pg=$pp'>&lt;&lt;</a>";
    }
    //definition d'une variable pour la boucle
    $i=1;
    do{
        //si $i n'est pas egal au numero de la page sur laquelle se trouve l'utilisateur...
        if($i != $pg){
            //...on affiche un lien vers cette page
            echo "&nbsp;<a href='?page=29&pg=$i'>$i</a>\n";
        }else{
            //...sinon on affiche simplement le n°  de la page actuelle
            echo "&nbsp;$i&nbsp;";
        }

    $i++;
    //on recommence tant que $i n'atteint pas le numero de la derniere page
    }while($i <= $nb_pg_rounded);

    //si l'utilisateur n'est pas a la derniere page...
    if($pg != $nb_pg_rounded){
        //...on affiche un lien page suivante
        //idem: si votre script a besoin d'autre variable pour fonctionner n'oublier pas des les transmettre en ajoutant &var=$var...
        echo "&nbsp;<a href='?page=29&pg=$ps'>&gt;&gt;</a>";
    }

 voila mon pb est que lorsque je recois bcp de reponses il m'affiche tous les liens donc qd j'ai 100 pages
il y a les 100 nombres affiché moi j'aimerias pouvoir les afficher par 5 ou 10 avec un lien vers les 5 ou 10 suivants!!!
est ce que cette fonction peut etre modifier ds ce sens?
ou quelqu'un a deja fait un truc du genr peut etre mem totalement différent.....

merci  bien...............

X.

mercredi 1 juin 2005 à 14:39:32 | Re : Liens sur pages apres requete SQL

garfield90

moi j'utilise ce code ( de mon cru) a ameliorer et a mettre a ta sauce ( bonne cuisine, je l'espere ;) )

$startElement = id du 1er element a afficher dans ta page
$nbPerPage = le nombre d'element par page;
$nbElement = nb total d'element de la requete
il fonctionne pour dix elements
un elements : un retour d'une requete SQL


    function linkPage( $nbPerPage, $nbElement, $startElement)
    {
   
        $nbPage = ceil($nbElement/$nbPerPage) ;
        $pgCourante = ceil(($startElement+1)/$nbPerPage);
        if ( $pgCourante%10==0)
        {
            $startPage = $pgCourante+1;
        }else{
            $startPage = floor(($pgCourante/10))*10+1;
        }
       
        $ret = '<div id="lien_page">';
        if ( $startPage>=10)
        {
            $j = ($startPage-11)*$nbPerPage;
            $ret .= '&nbsp;<a href="javascript:setMin(\''.$j.'\')">Pr&eacute;c&eacute;dent</a>';
        }
        $ok = 1;
        $i = $startPage;
        while ( $ok==1 )
        {
            if ($i == $pgCourante)
            {
                $ret .= '&nbsp;'.$i;
            }else{
                $j = ($i-1)*$nbPerPage;
                $ret .= '&nbsp;<a href="javascript:setMin(\''.$j.'\')">'.$i.'</a>';
            }
            if ( $i >= $startPage+9 || $i >= $nbPage)
            {
                $ok = 0;
            }
            $i++;
        }
        if ( $startPage+9 < $nbPage)
        {
            $j = ($startPage+9)*$nbPerPage;
            $ret .= '&nbsp;<a href="javascript:setMin(\''.$j.'\')">Suivant</a>';
        }
        return $ret.'</div>';
    }

la fonction javascript setMin() permet de mettre a jour un champ caché et de submiter le formulaire



"They are 10 sorts of persons whose understand binary and whose not"
mercredi 1 juin 2005 à 16:58:05 | Re : Liens sur pages apres requete SQL

LaTatadu91

j'avoue que la comme ca  en lisant en diagonale je capte aps tout mais je vais le relire a tete reposé
mais j'aimerias bien éviter le javascript etc.....
enfin je vais voir ca  mais je suis tjrs ouvert aux autre propositions!!!
merci....
:)

mercredi 1 juin 2005 à 17:44:23 | Re : Liens sur pages apres requete SQL

garfield90

Il est vrai que je ne l'ai pas commenté

    function linkPage( $nbPerPage, $nbElement, $startElement)
    {
   
        $nbPage = ceil($nbElement/$nbPerPage) ; // calcul le nombre total de page
        $pgCourante = ceil(($startElement+1)/$nbPerPage); // determine la page courante

       // détermine le premier n° de page a affiché
        if ( $pgCourante%10==0)
        {
            $startPage = $pgCourante+1;
        }else{
            $startPage = floor(($pgCourante/10))*10+1;
        }
       
        $ret = '<div id="lien_page">';
       // affiche précedent si on est a 1 page > 10
        if ( $startPage>=10)
        {
            $j = ($startPage-11)*$nbPerPage;
            $ret .= '&nbsp;<a href="javascript:setMin(\''.$j.'\')">Pr&eacute;c&eacute;dent</a>';
        }
        $ok = 1;
        $i = $startPage;

      //  affiche les dix pages compris entre x*10 et x*10 +10 x étant un nombre entier
     // les n° pages vont de 10 en 10 et le premier n° est 1 puis 11 puis 21 etc.
        while ( $ok==1 )
        {
            if ($i == $pgCourante)
            {
                $ret .= '&nbsp;'.$i;
            }else{
                $j = ($i-1)*$nbPerPage;
                $ret .= '&nbsp;<a href="javascript:setMin(\''.$j.'\')">'.$i.'</a>';
            }
            if ( $i >= $startPage+9 || $i >= $nbPage)
            {
                $ok = 0;
            }
            $i++;
        }
       // affiche suivant si il y a encore des pages apres la x*10+10
        if ( $startPage+9 < $nbPage)
        {
            $j = ($startPage+9)*$nbPerPage;
            $ret .= '&nbsp;<a href="javascript:setMin(\''.$j.'\')">Suivant</a>';
        }
        return $ret.'</div>';
    }

Quant à la fonction javascript, ca me permettait de pouvoir utilisé ce script a plusieurs endroits. si tu veux, tu peux mettre l'adresse en param et donc l'adapté a ton source

Voila, bonne sieste et j'espere que ca pourra te servir, sinon il doit en exister des tout faits sur internet


"They are 10 sorts of persons whose understand binary and whose not"
mercredi 1 juin 2005 à 20:47:44 | Re : Liens sur pages apres requete SQL

Anthomicro

Salut,

je te file ce que j'utilise pour mon forum en vrac :

    $nb_topics_page=10; //10 enregistrements par page
    $nbre_pages=ceil($r[1]/$nb_topics_page);
    $nb_topics=$r[1];

        //--------------------------------------------
        //SI UNE PAGE EST DEMANDEE, ON VERIFIE QU'ELLE
        //EST VALIDE (EXISTE)
        //--------------------------------------------
if(isset($_GET['page']) AND is_numeric($_GET['page']) AND $nbre_pages >= $_GET['page'] AND $_GET['page']>0)
{
            $page=$_GET['page'];
            $debut=$nb_topics-($page*$nb_topics_page)+$nb_topics_page;
            $fin=$debut-$nb_topics_page+1;
}
else
{
            $page=1;
            $debut=$nb_topics-$nb_topics_page;
            $fin=$nb_topics+1;
}

en gros...

Bon après faut adapter à ton script...

Bref tu fais une requête optimisée (si tu fais pas une requête optimisée t'utilises LIMIT $debut,$fin)

a +




    Cette discussion est classée dans : affiche, page, pages, nb, pg


    Répondre à ce message

    Sujets en rapport avec ce message

    Includes et variables. [ par Rimb0 ] Bonjour, je viens de faire un script php qui affiche une page en fonction des secondes : include('http:/monsite.com/repertoire/'.$date.'');  ?> Je plusieurs variables [ par refkaben ] Bonjour tout le monde!j'essaie de faire l'affichage de resultat d'une requete sur plusieurs pages (pagination), alors le probleme c'est que j'ai plusi Affichage page par Page [ par milkasoprano ] Bonjour tous le monde,Je vous écris car j'ai un tous petit probleme au niveau de mon script qui affiche les resultat dune requete par page...Le script Garder la trace d 'une session [ par younes371 ] Bonjour, moi j'ai un script qui affiche des données sur plusieurs pages, voilà ma page :session_start(); // Démarage de la session OBLIGATOIRE if (iss Problème dans ma recherche [ par R3dDragon ] Bonjour, voilà j'ai un petit problème, j'ai crée un petit moteur de recherche pour mon site, celui-ci fouille la base de donnée et affiche les résulta Au secours ! problème avec mysql_fetch_object qui me prend la tête ! [ par Audreypf ] Bonjour, J'ai fait le tour des forums et je n'ai pas trouvé la réponse pour mon cas perso. Voila le pb : J'ai créé un site d'annonces et un formulai page php [ par Becca ] Bonjour,J'ai fait un site Internet pour une amie. Sur mon ordi les pages html et les pages php marchent très bien mais quand je suis allée mettre le s ajout de pages automatiquement [ par ilyess658 ] Je travail sur un back office et dessus je doit gérer le fait que quand une nouvelle page est créée, elle doit s'afficher automatiquement sur mon plan conserver paramétre [ par ads31 ] Bonsoir,ma question va vous paraitre bête mais je maitrise pas le php (faut bien commencer un jour).J'ai une adresse url avec un paramétre. Je sais ré Transmettre des variables PHP à travers un formulaire [ par lolo038 ] Bonjour,Je vous explique mon problème : je possède à un certain moment sur ma page un certains nombres de variables PHPs, ainsi qu'un formulaire en ba


    Nos sponsors


    Sondage...

    Comparez les prix

    CalendriCode

    Mai 2012
    LMMJVSD
     123456
    78910111213
    14151617181920
    21222324252627
    28293031   

    Consulter la suite du CalendriCode

    Photothèque

    A découvrir



     
    Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
    CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
    CodeS-SourceS.com© est une marque déposée tous droits réservés

    Google Coop CodeS-SourceS Google Coop CodeS-SourceS
    Temps d'éxécution de la page : 0,468 sec (4)

    Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales