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 :

Boucle et pagination


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 124
    Points : 57
    Points
    57
    Par défaut Boucle et pagination
    Salut !

    Ca fait un moment que je cherche la solution, pourtant je pense que beaucoup de developpeur ont eu affaire un jour à cette problématique, et que donc la solution est toute simple.
    Je cherche en fait à fermer un bloc </div> dans tous les cas, au sein d'un systeme de pagination.

    Je m'explique :

    j'ai 2 blocs <div> l'un au dessus de l'autre, qui contiennent chacun 3 éléments <p></p> affichant les résultats de la requête SQL. Ici, si j'ai 6 éléments ou plus, pas de difficultés pour fermer les </div> un p'tit compteur qui accompagne ma boucle foreach et qui compte 3 coups, et pouf echo "</div>". (encore je sais pas si c'est la solution la plus appropriée)

    ce qui nous donne
    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
     
    $i = 0;
    foreach (resultat..) {
      if ($i == 0)
        echo "<div>";
     
      echo "<p></p>";
      $i++;
     
      if ($i==2)
        echo "</div>";
        $i==0;
    }
     
    // ce qui affiche
    <div> <p></p> <p></p> <p></p> </div>
    <div> <p></p> <p></p> <p></p> </div>
    Mais voila, pagination oblige, si j'arrive à la fin de mes pages, comment procéder dans le cas ou une ligne n'est pas complètement remplie, si j'ai par exemple seulement 2 éléments, ou 4 éléments ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <div> <p></p> <p></p> <p></p> </div>
    <div> <p></p> ... ?
    Je me creuse la tête, pourtant la solution doit être logique

    merci pour vos reponses.

  2. #2
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 487
    Points : 5 134
    Points
    5 134
    Par défaut
    En posant une autre condition si $i < 3 tu places pas la balise...

  3. #3
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Bonjour,

    en conservant le reste de ton code (attention, il manque des accolades après le deuxième if dans le code montré, et tu ne fais pas une assignation de 0 à $1, mais un test (un = en trop)), il suffit d'ajouter ce code après ton foreach :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if ($i > 0) // si i n'est pas égal à 0, c'est que la dernière instruction traitée n'était pas $i = 0, donc qu'on a pas encore fermé de div
    {
        echo "</div>";
    }

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 124
    Points : 57
    Points
    57
    Par défaut Parfait
    Citation Envoyé par Eusebe Voir le message
    Bonjour,

    en conservant le reste de ton code (attention, il manque des accolades après le deuxième if dans le code montré, et tu ne fais pas une assignation de 0 à $1, mais un test (un = en trop)), il suffit d'ajouter ce code après ton foreach :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if ($i > 0) // si i n'est pas égal à 0, c'est que la dernière instruction traitée n'était pas $i = 0, donc qu'on a pas encore fermé de div
    {
        echo "</div>";
    }
    Parfait, c'est nickel.
    Oui pour le reste, j'ai juste retapé rapidement le code pour simplifier.

    Par contre, est ce que c'est la méthode traditionnellement utilisée ?
    Je me demandais juste si y avait pas mieux, dans une méthode de pagination...

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

Discussions similaires

  1. [PHP 5.2] Comment optimiser la boucle de pagination
    Par gtraxx dans le forum Langage
    Réponses: 11
    Dernier message: 05/11/2010, 10h54
  2. Boucle avec foreach et pagination
    Par mathias59 dans le forum Langage
    Réponses: 5
    Dernier message: 09/02/2010, 10h53
  3. Boucle "while" et pagination
    Par mathias59 dans le forum Langage
    Réponses: 2
    Dernier message: 17/03/2009, 22h03
  4. pagination, boucle dans jsp
    Par bilobar dans le forum Struts 1
    Réponses: 13
    Dernier message: 15/07/2008, 18h01
  5. [MySQL] Pagination : faire une boucle dans un tableau ?
    Par benjam89 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 13/09/2007, 20h10

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