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 avec foreach et pagination


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 66
    Points : 59
    Points
    59
    Par défaut Boucle avec foreach et pagination
    Bonjour à tous,

    J'ai un tout petite problème avec ma boucle et ma pagination.

    Donc, je fait une boucle dans chaque répertoire pour afficher les dossiers qui si trouve et à la fin j'aimerais faire une pagination mais la pagination ne marche pas.

    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
    62
    63
    64
     
    <?php
     
    $nbsujet = 10;
     
    if ($page ==""){$page = 1 ;}
     
    $tabRegion = array("Alsace","Aquitaine","Auvergne","Basse-Normandie","Bourgogne","Bretagne","Centre","Champagne-Ardenne","Corse","Franche-Comte","Haute-Normandie","Ile-de-France","Languedoc-Roussillon","Limousin","Lorraine","Midi-Pyrenees","Nord-Pas-de-Calais","Pays-de-la-Loire","Picardie","Poitou-Charentes","Provence-Alpes-Cote-d-Azur","Rhone-Alpes",);
    foreach ($tabRegion as $value) {
     
     
    $dir2 = opendir("../region/".$value."/voiture/annonce/");
    $tableau = array();
    $i=0;
    while (false !== ($File = readdir($dir2))) {
    if(eregi(e,$File))
      {
       $tableau[] =  '../region/'.$value.'/voiture/annonce/'.$File.'';
                                      }
                       $i++;
                                       }
    closedir($dir2);
    rsort($tableau);
     
     
    $Max = count($tableau);
    $pagemin = $page*$nbsujet-$nbsujet;
    $nbpage = $Max/$nbsujet;
    $nbpage = ceil($nbpage);
       if ($page == $nbpage) {$pagemax = $Max;}
               else {$pagemax = $page*$nbsujet;}
     
     if ($Max != 0){
    for($i = $pagemin; $i != $pagemax; $i++){
     
                                    include "$tableau[$i]";
     
                                            }
    		     }
     
     
    $nbpage = $Max/$nbsujet;
    $nbpage = ceil($nbpage);
    $nbpage2 = $nbpage +1 ;
     
     
    } // Je ferme ma boucle avec Foreach
     
    // je commence la pagination
     
    for ($i = 1 ; $i <= $nbpage ; $i++) {
      if ($i < ($page-10) )
        $i = $page - 10;
            if ($i >= $page + 10 AND $i <= $nbpage - 10)
                    echo "...";
      if ($i > ($page+4) )
        $i = $nbpage ;
      if ($i == $page )
        echo '<font class="liens02"><b>['.$i.']</b></font>&nbsp;&nbsp;';
      else
      echo '<a href=teste01.php?regionmoteur='.$_GET['regionmoteur'].'&categoriemoteur='.$_GET['categoriemoteur'].'&searchmoteur='.$search1.'&page='.$i.' class="liens02"><b>'.$i.'</b></a>&nbsp;&nbsp;';
     }
     
    ?>
    Merci pour vos réponses

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Pourrais-tu décrire un peu mieux ton problème que "ne marche pas" ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 66
    Points : 59
    Points
    59
    Par défaut
    En fait, je fait une boucle dans plusieurs répertoires "Alsace","Aquitaine" etc. pour en extraire les fichiers et les afficher, ensuite je fait une pagination que je limite à 10 fichiers par page, mais le problème est que je ne sais pas ou ajouter la pagination.

    Ceci me permettra de faire une recherche par la suite (moteur) et d'extraire les fichiers.

    Vous pouvez voir dans le code que j'ai mis :

    if(eregi(e,$File)) "e" comme mot clé pour faire une recherche

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    f(eregi(e,$File)) "e" comme mot clé pour faire une recherche
    eregi() est une fonction obsolète.
    Ca correspond a quoi ce "e" qui se ballade tout seul dans le code ?

    mais le problème est que je ne sais pas ou ajouter la pagination.
    comment ça ou ? tu l'ajoutes ou tu veux.
    Tu as juste a transmettre l'id de départ de ton tableau et l'utiliser comme tu le fais déjà dans un boucle for allant de id_transmis à id_transmis+nombre d'éléments à afficher

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 66
    Points : 59
    Points
    59
    Par défaut
    J'ai fait plus simple,

    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
     
    $tabRegion = array("Alsace","Aquitaine",);
    foreach ($tabRegion as $value) {
    $dir = "../region/".$value."/voiture/annonce/";
    $i=0; 
    if (is_dir($dir)) {
        if ($dh = opendir($dir)) {
            while (($file = readdir($dh)) !== false) {
         if(eregi(mot-clé,$file)){
     include '../region/'.$value.'/voiture/annonce/'.$file.'';
                           } $i++;
    }closedir($dh);
    }
    }
    }
    echo $i;
     
    ?>
    Donc comme je fait une boucle je veux récupérer la valeur de $i mais foreach me donne la dernière valeur, il n'additionne pas la valeur des 2 boucle. $i doit s'additionner avec les 2 boucle mais ce n'est pas la cas.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 66
    Points : 59
    Points
    59
    Par défaut
    J'ai trouvé la réponse, qui est toute bête


    Merci à toi sabotage

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

Discussions similaires

  1. JSTL : traitement de deux arrayList avec boucle c:forEach
    Par kerido dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 07/02/2014, 22h53
  2. [SSIS] [2K5] Boucle avec Foreach File Enumerator
    Par kellerman_com dans le forum SSIS
    Réponses: 7
    Dernier message: 25/02/2009, 14h55
  3. Boucle avec un TIBDataSet
    Par SebCBien dans le forum Bases de données
    Réponses: 4
    Dernier message: 12/09/2004, 17h33
  4. Boucle avec variable à incrémenter
    Par snoop dans le forum Linux
    Réponses: 2
    Dernier message: 19/03/2004, 11h07
  5. boucle avec condition d'arret changeante
    Par NicoH dans le forum Langage
    Réponses: 3
    Dernier message: 10/06/2003, 11h48

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