[PHP] Pb script chaines de car.

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par webmister62, 10 Octobre 2005.

  1. webmister62
    webmister62 WRInaute discret
    Inscrit:
    10 Février 2005
    Messages:
    106
    J'aime reçus:
    0
    Salut les WRI-eurs ^^ (ca se dit comme ça ?)

    j'ai un ptit problème avec cette fonction PHP :

    Code:
    function affichePages($nb,$page,$total,$crit) {
            $nbpages=ceil($total/$nb);
            $numeroPages = 1;
            $compteurPages = 1;
            $limite  = 0;
            echo '<table border = "0"><tr>'."\n";
            while($numeroPages <= $nbpages) {
            echo '<td><a href = "'.$page.'?crit='.$crit.'&limite='.$limite.'"><b><font size="2" face="Verdana">'.$numeroPages.'</font></b></a></td>'."\n";
            $limite = $limite + $nb;
            $numeroPages = $numeroPages + 1;
            $compteurPages = $compteurPages + 1;
                if($compteurPages == 10) {
                $compteurPages = 1;
                echo '<br>'."\n";
                }
            }
            echo '</tr></table>'."\n";
    }
    Cette fonction permet de découper une selection en plusieurs pages.
    Au début, c'était impeccable : disons que je veux sélectionner tous les bonbons de ma base de données (lol), eh bien en pas de pages j'avais :
    "pages 1 2 3 4 5 6".

    Le problème c'est que maintenant j'ai tellement de "bonbons" ( :lol: ) que en fin de pages j'ai : "pages 1 2 3 4 5 6 7 8 ... 21 22 23".... et ca n'en fini pas, ça déforme même toute la page !

    Bref, comment faire pour que l'affichage des pages fasse un retour à la ligne automatiquement au lien d'aggrandir le tableau et déformer toute la page ?


    MERCI d'avoir lu mon roman, et encore plus merci pour la réponse.

    bonne soirée !
     
  2. jeroen
    jeroen WRInaute passionné
    Inscrit:
    30 Août 2002
    Messages:
    2 131
    J'aime reçus:
    0
    Quelle horreur :evil:
    Si on te demande qui a écrit ça, on ne se connait pas...
    Code:
    function affichePages($nb,$page,$total,$crit) {
            $nbpages=ceil($total/$nb);
            $numeroPages = 1;
            $compteurPages = 1;
            $limite  = 0;
            echo '<table border = "0"><tr><td>'."\n";
            while($numeroPages <= $nbpages) {
            echo '<a href = "'.$page.'?crit='.$crit.'&limite='.$limite.'"><b><font size="2" face="Verdana">'.$numeroPages.'</font></b></a> '."\n";
            $limite = $limite + $nb;
            $numeroPages = $numeroPages + 1;
            $compteurPages = $compteurPages + 1;
                if($compteurPages == 10) {
                $compteurPages = 1;
                echo "\n";
                }
            }
            echo '</td></tr></table>'."\n";
    }
    ps : WRInautes
     
  3. webmister62
    webmister62 WRInaute discret
    Inscrit:
    10 Février 2005
    Messages:
    106
    J'aime reçus:
    0
    merci ca marche ;)

    cette fonction je l'ai eu toute faite sur un site d'aide php...
    en quoi est-ce si moche exactement ?
     
  4. jeroen
    jeroen WRInaute passionné
    Inscrit:
    30 Août 2002
    Messages:
    2 131
    J'aime reçus:
    0
    vilain d'utiliser un tableau pour ça...
     
  5. sgaze
    sgaze WRInaute occasionnel
    Inscrit:
    2 Février 2004
    Messages:
    452
    J'aime reçus:
    0
    En alternative, je vous propose celle que j'ai fait. Elle s'utilise comme ça :
    Code:
    Page(s) : <?php menuHorizontal($pageCurrent, $iMenuLength, $nbrPages); ?>
    Où $pageCurrent est la page affichée, par exemple la n°8
    Où $iMenuLength est la longueur du menu
    Où $nbrPages est le nombre total de page, à déterminer au préalable

    exemple :
    menuHorizontal(8, 3, 43) affichera
    Code:
    //Renvoie un élément de menu 1 ... 2 3 4 ... 10
    function dispMenuItem($pn, $n, $current) {
    	if($n==$current) {
    		return "<b>". $pn ."</b>\n";
    	}
    	else {
    		return "<a href=\"page.php?". ereg_replace("\&p=[^\&]*", "", $_SERVER["QUERY_STRING"]) ."&p=". $n ."\" title=\"". $n ."\">". $pn ."</a>\n";
    	}
    }
    
    //Fonction principale - renvoie le menu 1 ... 2 3 4 ... 10
    function menuHorizontal($page, $length, $npages) {
    	if($page>1) {
    		echo dispMenuItem("Précédent", $page-1, $page);
    	}
    	echo dispMenuItem(1, 1, $page);
    	if($page>$length+2) {
    		echo dispMenuItem("...", round((1+$page-$length)/2), $page );
    	}
    	for($i=$page-$length;$i<=$page+$length;$i++) {
    		if( ($i>1) && ($i<$npages) ) {
    			echo dispMenuItem($i, $i, $page);
    		}
    	}
    	if($npages-$page>$length+1) {
    		echo dispMenuItem("...", round(($npages+$page+$length)/2), $page );
    	}
    	if($npages>1) {
    		echo dispMenuItem($npages, $npages, $page);
    		if($page<$npages) {
    			echo dispMenuItem("Suivant", $page+1, $page);
    		}
    	}
    	return true;
    }
     
  6. h4ni
    h4ni WRInaute occasionnel
    Inscrit:
    11 Juillet 2005
    Messages:
    427
    J'aime reçus:
    0
    Up
    quelqu'un a une diée sur la façon dont on peu utiliser le code de sgaze a fin de remplacer mon code

    Code:
    function affichePages($nb,$page,$total) {
            $nbpages=ceil($total/$nb);
            $numeroPages = 1;
            $compteurPages = 1;
            $num  = 0;
            echo '<div class="pagination"><ul>'."\n";
            while($numeroPages <= $nbpages) {
            echo '<li><a href = "liste-'.$num.'.html">'.$numeroPages.'</a></li>'."\n";
            $num = $num + $nb;
            $numeroPages = $numeroPages + 1;
            $compteurPages = $compteurPages + 1;
                if($compteurPages == 10) {
                $compteurPages = 1;
                echo '<br>'."\n";
                }
            }
            echo '</ul></div>'."\n";
    }
    
    
    if($total > $nombre) {
    
    
        affichePages($nombre,$page,$total);
    
    }
    ce que je cherche surtout c limoter le nombre de liens par page et pouvoir utliser la fonction current

    Bonne nuit
     
Chargement...
Similar Threads - [PHP] script chaines Forum Date
[PHP] Problème avec script Développement d'un site Web ou d'une appli mobile 7 Novembre 2006
[PHP] Aide, script déjà bien modifier... Développement d'un site Web ou d'une appli mobile 27 Août 2006
[PHP] Gestion des balises title et meta description Développement d'un site Web ou d'une appli mobile 19 Août 2006
[Php] Script adsense / parrainage aléatoire Développement d'un site Web ou d'une appli mobile 13 Juillet 2006
[PHP] Script qui contrôle que tous les liens sont valident Développement d'un site Web ou d'une appli mobile 24 Avril 2006
Astuce [PHP] Récolter ville, pays du visiteur Développement d'un site Web ou d'une appli mobile 9 Mars 2021
[PHP] Détecter le navigateur / bot en fonction du HTTP_USER_AGENT Développement d'un site Web ou d'une appli mobile 14 Septembre 2019
[PHP] Détecter le navigateur / bot en fonction du HTTP_USER_AGENT Développement d'un site Web ou d'une appli mobile 12 Janvier 2017
[PHP] Cookie vide dans une fonction, complet juste avant ou après Développement d'un site Web ou d'une appli mobile 25 Novembre 2014
[php] Cookie d'un domaine vers un sous-domaine Développement d'un site Web ou d'une appli mobile 29 Août 2014
[PHP]Cci mails Développement d'un site Web ou d'une appli mobile 18 Août 2014
[PHP] gethostbyname Développement d'un site Web ou d'une appli mobile 15 Février 2014
[PHP] file_get_contents retourne un "Connection timed out" Développement d'un site Web ou d'une appli mobile 14 Février 2014
[PHP] Regex Complexe Développement d'un site Web ou d'une appli mobile 29 Octobre 2013
[PHP] Formulaire dynamique Développement d'un site Web ou d'une appli mobile 2 Mai 2013
[php] error suite à code antiduplication Développement d'un site Web ou d'une appli mobile 5 Février 2013
[PHP] Condition et include Développement d'un site Web ou d'une appli mobile 31 Janvier 2013
[PHP] comprendre ce code pour pseudo-frame Développement d'un site Web ou d'une appli mobile 28 Décembre 2012
[PHP] Requête très lente Développement d'un site Web ou d'une appli mobile 22 Septembre 2012
[PHP] Question technique Regex Développement d'un site Web ou d'une appli mobile 28 Juillet 2012