Flux rss
Collection CommentÇaMarche.net
Rechercher : dans
Par :

[PHP] Aide sur une fonction

txiki, le dimanche 11 février 2007 à 18:29:39 
 Signaler ce message aux modérateurs

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.
Configuration: Windows XP
Firefox 1.5.0.9

1

multicite, le mardi 13 février 2007 à 22:31:03

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

Répondre à multicite

2

txiki, le mardi 13 février 2007 à 23:21:40

Bonsoir multicite et merci pour ta réponse,
? ? ? je ne comprends pas bien ce que tu veux dire.
Tu sais je ne suis pas un as du php, bien au contraire :-(


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

Répondre à txiki

3

multicite, le mardi 13 février 2007 à 23:31:48

Je pense que cette partie de code qui crée les liens est bonne.

Par contre tu ne donnes pas la partie qui permet d'afficher la page numéro x ? Comment fais tu ?

Si tu ne l'as pas écrite... le problème est là !!! ;-)

ec

Répondre à multicite

4

txiki, le mardi 13 février 2007 à 23:58:55

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.

Répondre à txiki

5

multicite, le mercredi 14 février 2007 à 08:17:10

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

Répondre à multicite

6

 txiki, le mercredi 14 février 2007 à 12:35:53

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 ?
;-))
Le bonheur est la seule chose que l'on peut donner sans l'av­oir.

Répondre à txiki
[php] fonction rand (nombre aléatoire) (Résolu) salut, je voudrais savoir, s'il est possible de confiurer la fonction rand de php, pour quel affiche plus souvent un intervale de nombre, sur tous ceux qu'elle doit afficher, si rand(1, 25), je voudrais savoir s'il est possible d'afficher plus souvent... www.commentcamarche.net/forum/affich-5548005-php-fonction-rand-nombre-aleatoire
[PHP] fonction Mysql permettant de... (Résolu) Salut à tous, je cherche une fonction PHP qui permet de retourner tous les résultats d'une requête... Voici cette requête : $test = mssql_query("SELECT libelle FROM projet WHERE type = 'Essais matière'"); En fait la variable test va contenir plusieurs... www.commentcamarche.net/forum/affich-1603650-php-fonction-mysql-permettant-de
[php] fonction system() et timeout Bonjour, j'utilise la fonction system() de php pour lancer des programmes le fichier se compose comme ci : avec ce code je peux lancer des... www.commentcamarche.net/forum/affich-9047636-php-fonction-system-et-timeout
[PHP] Fonction mail()La fonction mail() est bloquée chez certains des hébergeurs gratuits pour des raisons de sécurité (afin d'éviter le spam notamment), l'adresse ip de la machine qui a demandé le script sera alors indiquée dans le header 'X-MM-Mail-From-IP'. renseignez... www.commentcamarche.net/faq/sujet-117-php-fonction-mail
PHP 5 - Utiliser une url externe avec la fonction includeL'option qui permet d'inclure un url externe (c'est à dire absolue, de la forme http://site.tld/url) via la fonction include est désactivée par défaut dans les versions 5 et ultérieures de PHP, pour l'activer sur votre serveur mettez ces deux lignes... www.commentcamarche.net/faq/sujet-15460-php-5-utiliser-une-url-externe-avec-la-fonction-include
[PHP] Upload de fichiersLe langage PHP permet de gérer des fichiers envoyés (uploadés) grâce à un formulaire HTML. Formulaire d'envoi de fichiers Configuration de PHP pour permettre l'upload Récupération du fichier avec PHP Formulaire d'envoi de fichiers La... www.commentcamarche.net/faq/sujet-889-php-upload-de-fichiers
PHP: fonction include et liens relatifs (Résolu)Tout d'abord salut ! Bon sur mon site j'ai essayé le PHP car j'ai besoin de cette fameuse fonction "include". Comme ça je peux faire un menu commun à tout mon site. J'ai donc un dossier: /home/acceuil.php avec ma page d'acceuil et j'inclus dedans des... www.commentcamarche.net/forum/affich-4916497-php-fonction-include-et-liens-relatifs
[PHP] fonction rename() (Résolu)Bonjour, j'ai récemment developpé un petit script php. Dans certain cas, ce script fait appel à la fonction php rename() pour renommer un dossier afin que le système soit totalement automatisé, je ne peux me permettre d'aller changer moi-même le nom... www.commentcamarche.net/forum/affich-3631537-php-fonction-rename
Variable Php, parametre fonction Javascript (Résolu)Bonjour, Je développe depuis peu, et je rencontre de temps en temps des petits problemes, mais celui la me bloque vraiment! Voila, mon probeme est simple. J'ai une variable Php : $VL_TRIGRAMME; // qui contient simplement 'JGI' j'ai une fonction... www.commentcamarche.net/forum/affich-2540628-variable-php-parametre-fonction-javascript
PHP - Mail et fonctions réseauPHP étant un langage consacré au Web, il possède bien évidemment des fonctions lui permettant de communiquer avec le "monde extérieur" à l'aide de fonctions standards. Le service le plus utilisé sur Internet étant la messagerie électronique, il est... www.commentcamarche.net/contents/php/phpmail.php3
PHP - Les fichiersLa gestion des fichiers avec PHP Avec PHP, la création ou la lecture de fichiers est, une fois de plus, assez simple. Il existe une multitude de fonctions dédiées à l'utilisation des fichiers. La communication entre le script PHP et le fichier... www.commentcamarche.net/contents/php/phpfich.php3
PHP - Affichage de texte sur le navigateurLe but de PHP est de permettre la création de pages web dynamiques, ainsi son but premier est de pouvoir envoyer des données au navigateur. Les trois fonctions standards PHP fournit 3 fonctions permettant d'envoyer du texte au navigateur. Ces... www.commentcamarche.net/contents/php/phpaffich.php3