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

PHP & Base de données Discussion :

Pagination et liste déroulante


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2016
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Pagination et liste déroulante
    Bonjour à tous, j'ai un petit soucis dans mon code php, je m'explique. J'ai suivi un tutoriel de pagination et tout ce passe bien, mon code fonctionne parfaitement. J'ai voulu rajouter une liste déroulante afin que le visiteur puisse rechercher une personne en fonction de son département mais le problème est que lorsque que l'utilisateur a fait son choix dans la liste déroulante, j'ai bien le bon nombre de page de pages qui s'affichent dans ma pagination et j'ai bien les personnes qui s'affichent sur la première page, mais dès que l'on clique sur la deuxième page on recommence à 0 comme si l'utilisateur n'avait pas fait son choix, pourtant dans la barre d'adresse j'ai bien la page 2 qui est stipulé. Je vous mets mon code. Merci beaucoup pour vos réponses et le temps que vous passez à m'aider.

    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    <?php
    //On vérifie que les personnes soient présentes sur ce département. $bdd->quote() sert à eviter une injection
    $req3 = $bdd->query('SELECT COUNT(code_postal) AS verif_cp FROM personnes WHERE code_postal LIKE '. $bdd->quote($_POST['departement'] .'%'));
    $verif = $req3->fetch();
    if ($verif['verif_cp'] == 0)
    {$erreur3 = "Aucun tatoueur n'est présent dans notre base de données sur ce département";
    }
    else
    {
     
        //On définit le nombre de personne à afficher dans la page
        $personneParPage = 5;
     
        //on calcul le nombre total de page
        $nbPages = ceil($verif['verif_cp']/$personneParPage);
     
        // Récupération du numéro de la page courante depuis l'URL avec la méthode GET
        // S'il s'agit d'un nombre on traite, sinon on garde la valeur par défaut : 1
        $current = 1;
        if (isset($_GET['p']) && is_numeric($_GET['p']))
        {
            $page = intval($_GET['p']);
            if ($page >= 1 && $page <= $nbPages)
            {
                 // cas normal
                 $current=$page;
            }
            else if ($page < 1)
            {
                // cas où le numéro de page est inférieure 1 : on affecte 1 à la page courante
                $current=1;
            }
            else
            {
                //cas où le numéro de page est supérieur au nombre total de pages : on affecte le numéro de la dernière page à la page courante
                $current = $nbPages;
            }
        }
     
        // $start est la valeur de départ du LIMIT dans notre requête SQL (dépend de la page courante)
        $start = ($current   $personneParPage - $personneParPage);
     
        //On récupère les personnes en fonction du département
        $req = $bdd->prepare("SELECT   FROM personnes WHERE code_postal LIKE ? LIMIT $start, $personneParPage");
        $req->execute(array($_POST["departement"] .'%'));
     
        while ($donnees = $req->fetch())
        {
            ?>
            <div class="personnes">
            <h3><?php echo $donnees['nom'];?><br/></h3>
            <?php echo $donnees['description'];?><br/>
            <a href="Personne_post.php?billet=<?php echo $donnees['id'];?>">En savoir plus</a>
            </div>
            <?php
        }
        ?>
        <?php
        }
    }
    ?>

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 251
    Points : 383
    Points
    383
    Par défaut
    $_POST['departement'] est perdu quand tu cliques sur un lien de pagination.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2016
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Merci beaucoup de ta réponse scvo.One. Peux-tu me lancer sur une piste pour que j'essaie de trouver le résultat par mes propres moyens. Merci encore

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2016
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    J'ai tenté maintes solutions mais je n'ai rien trouvé. J'aurais vraiment besoin de votre aide. Merci à vous.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 251
    Points : 383
    Points
    383
    Par défaut
    Tu ne devrais pas utiliser $_POST['departement'] partout.

    en vitesse :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    $departement = '';
    if (isset($_POST['departement'])) {
    $departement = $_POST['departement']:
    }
    if (isset($_POST['departement'])) {
    $departement = $_GET['departement'];
    }
    // ou en cascadant des opérateurs ternaires si tu veux un code plus concis
     
    // pour tes liens de pagination, tu fais un truc du genre
    <a href="mapage.php?p=<?= $numeroDePage."&departement=".$departement;?>">Page <?=$numeroDePage;?></a>

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

    petite erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (isset($_GET['departement'])) {
      $departement = $_GET['departement'];
    }
    Pour gérer facilement plusieurs critères de sélection, j'opterai pour une mise en SESSION.

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2016
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Merci beaucoup pour votre aide je viens de réussir ce que je souhaitais faire. Merci encore pour tout.

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

Discussions similaires

  1. [1.x] paginer une liste déroulante
    Par gohanfaye dans le forum Symfony
    Réponses: 0
    Dernier message: 26/05/2010, 10h14
  2. liste déroulante
    Par leeloo076 dans le forum ASP
    Réponses: 12
    Dernier message: 23/03/2004, 10h35
  3. liste déroulante avec session
    Par leeloo076 dans le forum ASP
    Réponses: 3
    Dernier message: 19/03/2004, 11h01
  4. liste déroulante en ASP vbscript
    Par leeloo076 dans le forum ASP
    Réponses: 9
    Dernier message: 17/03/2004, 16h42
  5. Listes déroulantes liées entre elles
    Par denisC dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 27/07/2002, 15h53

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