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 :

Array : Recupérer les 9 premiers résultats dans un div puis les 9 suivant dans une autre div


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Juillet 2007
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 114
    Points : 73
    Points
    73
    Par défaut Array : Recupérer les 9 premiers résultats dans un div puis les 9 suivant dans une autre div
    Bonjour,

    Je cherche une méthode pour récupérer les 9 premiers résultats (images) pour les affichés dans une div , puis les 9 suivants dans une autre div , ainsi de suite jusqu'a la fin de l'array.
    le but étant d'afficher les images 9 part 9 dans un slider.

    d'aprés ce que je vois des exemples sur le net, il faut utilisé un "for" mais je n'arrive pas a l'intégrer dans le code que j'ai deja fait ( en superposition du foreach ):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <div class="gallery col-xl-12 ">
      <?php
           	$files = scandir ("img/"); // scan du repertoire image
           	$files1= array_diff($files, array('.', '..','.DS_Store')); //retirer les valeurs "." ".." ".DSStore"
                    foreach($files1 as $images) { //modification du nom du fichier pour $filter
                   		$remove_numbers= preg_replace('/[0-9]+/', '', $images); // suprimer les numéros des fichiers
    			$filter= (basename($remove_numbers, '.jpg')); // supprimer ".jpg" des fichiers
    			echo"<img class=\"photos col-xl-4 filter $filter\" src=\"img/$images\">"; // afficher l'image
                	}
      ?>
    </div>
    Merci pour votre aide

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 30
    Points : 39
    Points
    39
    Par défaut
    Si je comprends bien ton problème, il faut que tu utilises un compteur dans ta boucle (pour simuler un for en somme) et que tu déclares ton div à l'intérieur de cette boucle, quelque chose comme :

    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
     
    <?php
    $liste_images = array(); // on imagine qu'il y a des images là dedans bien sûr
     
    $i = 0; // notre compteur
     
    foreach($liste_images as $image)
    {
        // on ferme le div toutes les 9 images, on réouvre aussitôt -> il faut penser au cas où on est à la fin aussi
        if(($i % 9 == 0) && ($i != 0))
            echo '</div><div>';
     
        // Si on démarre juste on se contente d'ouvrir le div
        if($i == 0)
            echo '<div>';
     
        echo $image;
     
        $i++; // on incrémente le compteur
    }
    ?>

  3. #3
    Membre régulier
    Inscrit en
    Juillet 2007
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 114
    Points : 73
    Points
    73
    Par défaut
    C'est exactement ca !!!

    Je cherchais à ajouter un for et count avec le foreach ....

    Pourquoi faire compliquer quand on peut faire simple

    merci beaucoup alfanor

  4. #4
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 857
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 857
    Points : 6 555
    Points
    6 555
    Par défaut
    Tu peux aussi utiliser la fonction array_chunk qui permet de saucissonner un tableau en tableaux avec n items:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function buildImgTag($filepath) {
        $class = preg_replace('/[0-9]+/', '', basename($filepath, '.jpg'));
        return sprintf('<img class="photos col-xl-4 filter %s" src="%s">', $class, $filepath); 
    }
     
    $files = glob('img/[!.]*.jpg'); // élimine d'emblée tout ce qui commence par un point,
                                    // vérifie l'extension jpg et renvoie le path complet.
     
    foreach (array_chunk($files, 9) as $chunk) {
        echo '<div>', implode('', array_map('buildImgTag', $chunk)), '</div>';
    }
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

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

Discussions similaires

  1. Obtenir les 5 premiers résultats par catégorie
    Par FabFab9 dans le forum Requêtes
    Réponses: 7
    Dernier message: 06/01/2015, 14h58
  2. Réponses: 4
    Dernier message: 10/10/2011, 09h08
  3. Réponses: 2
    Dernier message: 18/11/2010, 09h54
  4. Réponses: 2
    Dernier message: 17/11/2010, 19h55
  5. [MySQL] Avoir les 50 premiers résultat par rapport à une recherche
    Par polemoss dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 30/11/2007, 11h42

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