IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

pagination


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    en étude de webmaster
    Inscrit en
    Février 2016
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : en étude de webmaster

    Informations forums :
    Inscription : Février 2016
    Messages : 125
    Points : 56
    Points
    56
    Par défaut pagination
    Bonjour.
    J'essaie de faire une pagination.
    Je me suis basé sur le tuto de developpez.com, mais il n'arrive pas à m'intégrer la base de donnée, alors qu'avant il n'y avait pas de problème.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    $nbreparpage = 10;
     
    $sql_page_plat = "SELECT COUNT(id_page) AS nbr_plat FROM plat";
    $res_page_plat = mysqli_query($connexion, $page_plat);
    $nbrplat = mysqli_fetch_assoc($res_page_plat);
    $nbrepage = $nbrplat["nbr_plat"];
     
    $nombredepages = ceil($nbrepage/$nbreparpage);
     
    if(isset($_GET["page"])){
     
        $pageactuelle = intval($_GET["page"]);
     
        if($pageactuelle > $nombredepages){
     
            $pageactuelle = $nombredepages;
     
        }
     
    } else {
     
        $pageactuelle = 1;
     
    }
     
    $premierepage = ($pageactuelle - 1)*$nbreparpage;
     
    $sql_par_page = "SELECT * FROM plat ORDER BY genre, descriptif LIMIT '.$premierepage.', '.$nbreparpage.'";
    $resultat_par_page = mysqli_query($connexion, $sql_par_page);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    <table>
                                    <thead>
                                        <tr>
                                            <th data-field="plat">Descriptif</th>
                                            <th data-field="prix">Prix</th>
                                            <th data-field="genre">Genre</th>
                                            <th date-field="action">Action</th>
                                        </tr>
                                    </thead>
                                    <tbody>
                                        <!-- Je fais une boucle sur $resultat_select pour afficher tant qu'il y a quelque chose dedans -->
                                        <?php while($plat_select = mysqli_fetch_assoc($resultat_par_page)){ ?>
     
                                                    <tr>
                                                        <td><?php echo $plat_select["descriptif"]; ?></td>
                                                        <td><?php echo $plat_select["prix_plat"]; ?></td>
                                                        <td><?php echo $plat_select["genre"]; ?></td>
                                                        <td>
                                                            <a class="btn waves-effect waves-light ajoumodsup" href="modif_plat_liste.php?modif_plat=<?php echo $plat_select["id_plat"]; ?>">Modifier</a>
                                                            <a class="btn waves-effect waves-light ajoumodsup" href="plat_liste.php?id_suppression=<?php echo $plat_select["id_plat"]; ?>">Supprimer</a>
                                                        </td>
                                                    </tr>
     
                                        <?php } ?>
                                    </tbody>
                                </table>
                                <p>
                                    <?php
                                        for($i = 1; $i <= $nombredepages; $i++){
     
                                            if($i == $pageactuelle){
     
                                                echo ' ['.$i.'] ';
     
                                            } else {
     
                                                echo '<a href="plat_liste.php?page='.$i.'">'.$i.'</a>';
     
                                            }
     
                                        }
                                    ?> 
                                </p>

  2. #2
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Points : 7 503
    Points
    7 503
    Par défaut
    il n'arrive pas à m'intégrer la base de donnée
    ça sous entend quoi ? que tu n'arrive pas à t'y connecter? que tu n'arrive pas à connaitre le nombre de page avec ton count? etc ....
    la vie n'est pas cirrhose des foies ...

    Avant de poster un message Rechercher n'est pas qu'une option.
    FAQ Web - Tuto Web

  3. #3
    Membre du Club
    Homme Profil pro
    en étude de webmaster
    Inscrit en
    Février 2016
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : en étude de webmaster

    Informations forums :
    Inscription : Février 2016
    Messages : 125
    Points : 56
    Points
    56
    Par défaut
    Je me suis rendu compte que j'avais des erreur de frappes, alors par contre il m'affiche le nombre de page, mais il ne m'affiche pas la base de donnée donc la requête pour la base de donnée dois avoir une erreur et je vois pas où.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    $nbreparpage = 10;
     
    $sql_page_plat = "SELECT COUNT(id_plat) AS nbr_plat FROM plat";
    $res_page_plat = mysqli_query($connexion, $sql_page_plat);
    $nbrplat = mysqli_fetch_assoc($res_page_plat);
    $nbrepage = $nbrplat["nbr_plat"];
     
    $nombredepages = ceil($nbrepage/$nbreparpage);
     
    if(isset($_GET["page"])){
     
        $pageactuelle = intval($_GET["page"]);
     
        if($pageactuelle > $nombredepages){
     
            $pageactuelle = $nombredepages;
     
        }
     
    } else {
     
        $pageactuelle = 1;
     
    }
     
    $premierepage = ($pageactuelle - 1)*$nbreparpage;
     
    $sql_par_page = "SELECT * FROM plat ORDER BY genre, descriptif LIMIT '.$premierepage.', '.$nbreparpage.'";
    $resultat_par_page = mysqli_query($connexion, $sql_par_page);

  4. #4
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $res_page_plat = mysqli_query($connexion, $sql_page_plat);

  5. #5
    Membre du Club
    Homme Profil pro
    en étude de webmaster
    Inscrit en
    Février 2016
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : en étude de webmaster

    Informations forums :
    Inscription : Février 2016
    Messages : 125
    Points : 56
    Points
    56
    Par défaut
    oui j'avais des erreur de frappe, mais la base de donnée ne s'affiche quand même pas.
    si mon id_plat est unsigned est-ce que je dois quand même faire

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1/ merci d'arrêter de mettre le mot "problème" dans les titres de tes discussions.

    2/ les scripts de pagination sont légion sur le web.
    Tu n'en a pas trouvé un fonctionnel ?

    "pagination PHP"


    Il semble que c'est celui que tu as utilisé, en modifiant les commandes mysql_ en mysqli_, non ?

    3/ Où est le code d'affichage ?
    Citation Envoyé par fleedalfire Voir le message
    ...mais la base de donnée ne s'affiche quand même pas....
    4/ Quel rapport entre id_plat et ($pageactuelle - 1) ?
    Citation Envoyé par fleedalfire Voir le message
    ...si mon id_plat est unsigned est-ce que je dois quand même faire ($pageactuelle - 1) ?
    Es-tu sûr de bien comprendre le fonctionnement de "LIMIT..." ?
    Dernière modification par Invité ; 05/05/2017 à 19h27.

  7. #7
    Membre du Club
    Homme Profil pro
    en étude de webmaster
    Inscrit en
    Février 2016
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : en étude de webmaster

    Informations forums :
    Inscription : Février 2016
    Messages : 125
    Points : 56
    Points
    56
    Par défaut
    ok

  8. #8
    Membre du Club
    Homme Profil pro
    en étude de webmaster
    Inscrit en
    Février 2016
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : en étude de webmaster

    Informations forums :
    Inscription : Février 2016
    Messages : 125
    Points : 56
    Points
    56
    Par défaut
    C'est sur ce tuto de pagination que je me suis basé

    oui, j'avais pas tout compris, mais là c'est bon j'ai compris le fonctionnement de LIMIT

    Le code d'affichage est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php while($plat_select = mysqli_fetch_assoc($resultat_par_page)){ ?>
     
                                                    <tr>
                                                        <td><?php echo $plat_select["descriptif"]; ?></td>
                                                        <td><?php echo $plat_select["prix_plat"]; ?></td>
                                                        <td><?php echo $plat_select["genre"]; ?></td>
                                                        <td>
                                                            <a class="btn waves-effect waves-light ajoumodsup" href="modif_plat_liste.php?modif_plat=<?php echo $plat_select["id_plat"]; ?>">Modifier</a>
                                                            <a class="btn waves-effect waves-light ajoumodsup" href="plat_liste.php?id_suppression=<?php echo $plat_select["id_plat"]; ?>">Supprimer</a>
                                                        </td>
                                                    </tr>
     
                                        <?php } ?>
    Je pensais que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $premierepage = ($pageactuelle - 1)*$nbreparpage;
    ce basais sur l'id_plat et comme je fait moins 1 ça fait 0, et que mes id_plat sont unsigned je me demandais si c'était ça qui pouvait faire que ça ne s'affiche pas.

  9. #9
    Membre du Club
    Homme Profil pro
    en étude de webmaster
    Inscrit en
    Février 2016
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : en étude de webmaster

    Informations forums :
    Inscription : Février 2016
    Messages : 125
    Points : 56
    Points
    56
    Par défaut
    Ce matin j'ai trouver où situe le bug.
    c'est dans ma requête sql.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $sql_par_page = "SELECT * FROM plat ORDER BY genre, descriptif LIMIT '".$premierepage.", ".$nbreparpage."'";
    if(!mysqli_query($connexion, $sql_par_page)){
        die ('ERREUR '.mysqli_error($connexion));
    }
    il m'affiche cela comme message:
    ERREUR You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''0, 10'' at line 1
    Je comprend pourquoi il me dit qu'il y a une erreur de syntaxe.

  10. #10
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Je croyais que tu avais compris le fonctionnement de LIMIT (et donc la syntaxe) ?

    As-tu pensé à faire (DEBOGAGE DE BASE) :
    réponse : ce sont les ' en trop.

    Citation Envoyé par fleedalfire Voir le message
    ...Je comprend pourquoi il me dit qu'il y a une erreur de syntaxe.
    Ah bon ? re-

  11. #11
    Membre du Club
    Homme Profil pro
    en étude de webmaster
    Inscrit en
    Février 2016
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : en étude de webmaster

    Informations forums :
    Inscription : Février 2016
    Messages : 125
    Points : 56
    Points
    56
    Par défaut
    J'ai compris a quoi sert LIMIT et comment on l'écrit avec les chiffre, mais pas avec des variables.

    oui et ça me donne ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM plat ORDER BY genre, descriptif LIMIT '-10, 10'
    Je ne comprend pas pourquoi il me donne -10 alors que je lui fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $premierepage = ($pageactuelle-1)*$nbreparpage;
    ce qui devrais donné (1 - 1) * 10
    vus que $nbreparpage est égale à 10
    et que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    if(isset($_GET["page"])){
     
        $pageactuelle = intval($_GET["page"]);
     
        if($pageactuelle > $nombredepages){
     
            $pageactuelle = $nombredepages;
     
        } else {
     
            $pageactuelle = 1;
     
        }
     
    }
    (et c'est que je sais ne comprend plus, c'est égale au nombre de page ou égale à 1)

  12. #12
    Invité
    Invité(e)
    Par défaut
    Ce n'est pourtant pas sorcier de faire le DEBOGAGE DE BASE !

    => AFFICHE les variables !! (pour savoir ce qu'elles contiennent !)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    echo 'GET page = '.$_GET["page"].'<br />';
    echo 'pageactuelle = '.$pageactuelle.'<br />';
    echo 'nbreparpage = '.$nbreparpage.'<br />';
    Et la syntaxe correcte de LIMIT est SANS les ' !!

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    "........LIMIT 0, 10 "
    Donc :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql_par_page = "SELECT * FROM plat ORDER BY genre, descriptif LIMIT ".$premierepage.", ".$nbreparpage."";

    N.B. Le pire, c'est que tu rajoutes des erreurs... à un tuto qui fonctionne...

  13. #13
    Membre du Club
    Homme Profil pro
    en étude de webmaster
    Inscrit en
    Février 2016
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : en étude de webmaster

    Informations forums :
    Inscription : Février 2016
    Messages : 125
    Points : 56
    Points
    56
    Par défaut
    Ne me donne rien.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo 'GET page = '.$_GET["page"].'<br />';
    echo 'pageactuelle = '.$pageactuelle.'<br />';
    Me donne 10
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo 'nbreparpage = '.$nbreparpage.'<br />';
    Et j'ai enlever le guillemet au deux nombre de LIMIT
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql_par_page = "SELECT * FROM plat ORDER BY genre, descriptif LIMIT ".$premierepage.", ".$nbreparpage."";

  14. #14
    Invité
    Invité(e)
    Par défaut
    1/ Ca t'ennuierait de faire un copier-coller de ce qui s'AFFICHE à l'écran ?!?

    2/ Peux-tu comparer TON code avec celui du TUTO ?

    (ton code) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    if(isset($_GET["page"])){
     
        $pageactuelle = intval($_GET["page"]);
     
        if($pageactuelle > $nombredepages){
     
            $pageactuelle = $nombredepages;
     
        } else {
     
            $pageactuelle = 1;
     
        }
     
    }
    Il n'y a pas comme un problème ?
    (je t'aide : else mal placé !)

    Tu aurais intérêt à conserver les COMMENTAIRES : c'est utile pour COMPRENDRE ce qu'on fait...


    Tu vas dire que je radote, mais ...
    Citation Envoyé par jreaux62 Voir le message
    N.B. Le pire, c'est que tu rajoutes des erreurs... à un tuto qui fonctionne...

  15. #15
    Membre du Club
    Homme Profil pro
    en étude de webmaster
    Inscrit en
    Février 2016
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : en étude de webmaster

    Informations forums :
    Inscription : Février 2016
    Messages : 125
    Points : 56
    Points
    56
    Par défaut
    Je viens de voir avec mon prof et c'est réglé.
    Désoler.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Struts-Layout] Problème de pagination
    Par Haplo2006 dans le forum Struts 1
    Réponses: 1
    Dernier message: 23/02/2007, 18h09
  2. Problème de pagination avec un GridView
    Par Perceuse-Killer dans le forum ASP.NET
    Réponses: 2
    Dernier message: 07/02/2007, 13h30
  3. [DisplayTag] Problème de pagination
    Par questionneuse dans le forum Taglibs
    Réponses: 6
    Dernier message: 21/08/2006, 16h54
  4. [MySQL] Problème de pagination dans un script.
    Par Scurz dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 13/08/2006, 12h47
  5. [SQL] Problème de pagination avec tableau
    Par guy2004 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 06/05/2006, 22h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo