Posez votre question Signaler

[PHP] Aide sur une fonction [Résolu]

txiki 2702Messages postés 30 janvier 2002Date d'inscription 4 février 2012Dernière intervention - Dernière réponse le 14 févr. 2007 à 12:35
Bonsoir a tous les as du php !
J'ai un souci avec une fonction php qui consiste a afficher des liens vers des pages sous forme de (comme sur CCM).
J'ai une table de 380 enregistrements que je voudrai afficher en limitant a 10 ou 15 lignes par écran.
De plus, il y a un bouton suivant qui s'affiche (tant qu'il y a des enregistrements) et à partir de la seconde page le bouton Précédent doit s'afficher en plus.
Quelqu'un peut-il me regarder ce code et le corriger (en mettant un commentaire sur ce qu'il touche pour que je puisse voir ce que j'ai oublié.
En effet, les n° et le bouton s'affichent bien mais en cliquant dessus on revient en début d'écran (comme si on mettait une # pour remonter en haut des pages).
J'ai un autre Pb à savoir que la liste ne commence pas où elle devrait mais on verra plus tard.
Merci d'avance pour vos explications.
// fonction qui affiche les liens sous forme de n° vers les pages a afficher
function affichePages($nb,$page,$total) { 
        $nbpages=ceil($total/$nb);
        $numeroPages = 1;
        $compteurPages = 1;
        $limite  = 0;
        echo '<table border = "0" ><tr>'."\n";
        while($numeroPages <= $nbpages) {
        echo '<td ><a href = "'.$page.'?limite='.$limite.'">'.$numeroPages.'</a></td>'."\n";
        $limite = $limite + $nb;
        $numeroPages = $numeroPages + 1;
        $compteurPages = $compteurPages + 1;
            if($compteurPages == 10) {
            $compteurPages = 1;
            echo '<br>'."\n";
            }
        }
        echo '</tr></table>'."\n";
}
**********************// j'ai de gros doutes ici
//récupération de $limite
    if(isset($_GET['limite'])) 

        $limite=$_GET['limite'];
    else   $limite=0;
**********************// jusqu'ici
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;
}
?>

Le bonheur est la seule chose que l'on peut donner sans l'avoir.
Lire la suite 

[PHP] Aide sur une fonction »

Suggestions
6 réponses
Réponse
+0
moins plus
Salut,

Le problème n'a pas l'air d'etre dans cette partie de code.

Mais le symptome semble indiquer que tu recharges la meme page (c'est pour cela que tu reviens au début).

Que fais tu de ta variable $limite que tu récupères avec $_GET['limite'] ?

ec
txiki - 13 févr. 2007 à 23:58
Voici les 3 fonctions (require fonctions) qui s'appelle fonctions.php.
Il n'y a que ça dans cette page.
<?
function displayNextPreviousButtons($limite,$total,$nb,$page) { // fonction qui affiche boutons Précédent  Suivant
$limiteSuivante = $limite + $nb;
$limitePrecedente = $limite - $nb;
echo  '<table><tr>'."\n";
if($limite != 0) {
        echo  '<td valign="top">'."\n";
        echo  '<form action="'.$page.'" method="post">'."\n";
        echo  '<input type="submit" value="précédents">'."\n";
        echo  '<input type="hidden" value="'.$limitePrecedente.'" name="limite">'."\n";
        echo  '</form>'."\n";
        echo  '</td>'."\n";
}
if($limiteSuivante < $total) {
        echo  '<td valign="top">'."\n";
        echo  '<form action="'.$page.'" method="post">'."\n";
        echo  '<input type="submit" value="suivants">'."\n";
        echo  '<input type="hidden" value="'.$limiteSuivante.'" name="limite">'."\n";
        echo  '</form>'."\n";
        echo  '</td>'."\n";
            
}
echo  '</tr></table>'."\n";
}

function affichePages($nb,$page,$total) { // fonction qui affiche les liens vers les pages
        $nbpages=ceil($total/$nb);
        $numeroPages = 1;
        $compteurPages = 1;
        $limite  = 0;
        echo '<table border = "0" ><tr>'."\n";
        while($numeroPages <= $nbpages) {
        echo '<td ><a href = "'.$page.'?limite='.$limite.'">'.$numeroPages.'</a></td>'."\n";
        $limite = $limite + $nb;
        $numeroPages = $numeroPages + 1;
        $compteurPages = $compteurPages + 1;
            if($compteurPages == 10) {
            $compteurPages = 1;
            echo '<br>'."\n";
            }
        }
        echo '</tr></table>'."\n";
}

//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;

}

?>
Le Pb se trouve alors ici ! mais je ne vois (faut dire que je débute et qu'à force de regarder.....

Merci encore.


Le bonheur est la seule chose que l'on peut donner sans l'avoir.
multicite - 14 févr. 2007 à 08:17
Salut,

Ce qu'il faudrait que tu nous montres c'est la partie qui appelle ces fonctions.

Comment fais tu ton SELECT dans la base pour choisir les enregistrements à afficher ? Comment est construite ta requete ? Comment appelles tu les fonctions affichePages, displayNextPreviousButtons ?

Je pense que l'erreur est plutot dans cette autre partie.

ec
txiki - 14 févr. 2007 à 12:35
Salut multicite et merci,
Je suis au bureau donc je ne peux pas t'envoyer cette partie de code que tu voudrais voir.
Alors ce soir ?
;-))
Ajouter un commentaire
Ce document intitulé « [PHP] Aide sur une fonction » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook