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 tableau (sans bd)


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    noobies
    Inscrit en
    Décembre 2014
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : noobies

    Informations forums :
    Inscription : Décembre 2014
    Messages : 103
    Points : 51
    Points
    51
    Par défaut pagination tableau (sans bd)
    bonjour,

    j'ai un dossier avec des photos, j'ai fais mon code pour afficher les photos de ce dossier mais je souhaiterais ajouter une pagiation
    de facon a n'afficher que 50 photos par page,
    voici mon 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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <?php
     
    $tableau = array();
    $dossier = opendir ('./pics/');
    while ($fichier = readdir ($dossier)) {
    	if ($fichier != '.' && $fichier != '..' && $fichier != 'index.php') {
    	$tableau[] = $fichier;
    	}
    }
    closedir ($dossier);
     
    $nbcol=5;
    $nbpics = count($tableau);
     
    if ($nbpics != 0) {
    	echo '<table>';
    	for ($i=0; $i<$nbpics; $i++){
    	if($i%$nbcol==0) echo '<tr>';
     
    	echo '<td><a rel="example_group" href="pics/' , $tableau[$i] , '" ><img src="mini.php?f=' , $tableau[$i] , '" alt="Image" width="200px" height="120px"/></a></td>';
    	if($i%$nbcol==($nbcol-1)) echo '</tr>';
    	}
    	echo '</table>';
    }
    else echo 'Aucune image a* afficher';
    ?>
    merci de votre aide

    alors j'ai regardé un peu, j'arrive a faire fonctionner mais ce n'est pas correct au niveau de l'affichage, j'ai fais comme ca

    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
    <?php
     
    $tableau = array();
    $dossier = opendir ('./pics/');
     
    while ($fichier = readdir ($dossier)) {
    	if ($fichier != '.' && $fichier != '..' && $fichier != 'index.php') {
    	$tableau[] = $fichier;
    	}
    }
    closedir ($dossier);
     
    $nbcol=5;
    $nbpics = count($tableau);
     
    //definir le nombre d'image par page que l'on souhaite
    $pagination=29;
    $nombreDePages=ceil($nbpics/$pagination);
     
    if ($nbpics != 0) {
    	echo '<table>';
    	for ($i = ($_GET['index']-1)*$pagination; $i <= ($_GET['index']*$pagination); $i++){
     
    	if($i%$nbcol==0) echo '<tr>';
     
    	echo '<td><a rel="example_group" href="pics/' , $tableau[$i] , '" ><img src="mini.php?f=' , $tableau[$i] , '" alt="Image" width="200px" height="120px"/></a></td>';
    	if($i%$nbcol==($nbcol-1)) echo '</tr>';
    	}
    	echo '</table>';
     
    	for ($i = 1 ; $i <= $nombreDePages ; $i++)
    {
        echo '<a href="index.php?index=' . $i . '">' . $i . '</a> ';
    }
     
    }
    else echo 'Aucune image a* afficher';
    ?>
    la premiere page est index.php hors dès que je l'ouvre je n'est pas de photo, si je clique sur le 1 de la pagination je les ai,

    1/ comment mettre la page 1 en index.php

    ensuite j'ai 5 colonnes donc je souhaiterais 40 photos par page hors quand je vais page 2 il y a des trous dans la premiere colonne

    merci

  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
    A priori le problème vient du fait que tu utiliser 'index' sans savoir s'il existe ou pas.
    Il faut lui donner une valeur par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $index = isset($_GET['index']) ? intval($_GET['index']) : 1;
    Et tu utilises ensuite $index au lieu de $_GET['index']
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Homme Profil pro
    noobies
    Inscrit en
    Décembre 2014
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : noobies

    Informations forums :
    Inscription : Décembre 2014
    Messages : 103
    Points : 51
    Points
    51
    Par défaut
    donc j'ai modifié, je n'est plus de trou dans les pages
    mais index.php 'est toujours pas reconu
    et j'ai mis 20 photos par page et j'en ai 21

    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
    <?php
     
    $tableau = array();
    $dossier = opendir ('./pics/');
     
    while ($fichier = readdir ($dossier)) {
    	if ($fichier != '.' && $fichier != '..' && $fichier != 'index.php') {
    	$tableau[] = $fichier;
    	}
    }
    closedir ($dossier);
     
    $nbcol=5;
    $nbpics = count($tableau);
     
    //definir le nombre d'image par page que l'on souhaite
    $pagination=20;
    $nombreDePages=ceil($nbpics/$pagination);
     
    $index = isset($_GET['index']) ? intval($_GET['index']) : 1;
     
    if ($nbpics != 0) {
     
    	echo '<table>';
     
     
    	for ($i = ($_GET['index']-1)*$pagination; $i <= ($_GET['index']*$pagination); $i++){
     
    	if($i%$nbcol==0) echo '<tr>';
     
    	echo '<td><a rel="example_group" href="pics/' , $tableau[$i] , '" ><img src="mini.php?f=' , $tableau[$i] , '" alt="Image" width="200px" height="120px"/></a></td>';
    	if($i%$nbcol==($nbcol-1)) echo '</tr>';
    	}
    	echo '</table>';
     
    	for ($i = 1 ; $i <= $nombreDePages ; $i++)
    {
        echo '<a href="index.php?index=' . $i . '">' . $i . '</a> ';
    }
     
    }
    else echo 'Aucune image a* afficher';
    ?>
    merci


    edit: oublié de modifier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for ($i = ($index-1)*$pagination; $i <= ($index*$pagination); $i++)
    donc la c'est pour pour index.php

    reste juste que j'ai 21 photo au lieux de 20

    merci

  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
    Même sans analyser la situation, tu peux intuitivement trouver qu'il faut mettre un -1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for ($i = ($index-1)*$pagination; $i <= ($index*$pagination) -1; $i++) {
    Tu devrais également vérifier si les images existent dans le tableau car si tu as n'a pas un nombre d'image multiple de 20, tu vas avoir des trous.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre du Club
    Homme Profil pro
    noobies
    Inscrit en
    Décembre 2014
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : noobies

    Informations forums :
    Inscription : Décembre 2014
    Messages : 103
    Points : 51
    Points
    51
    Par défaut
    et oui effectivement

    comme tu ledit sur la derniere page il n'y a que 19 image donc je me retrouve avec une image vide,

    1 / je ne sais pas comment ne pas afficher cette image vide ?

    pour la pagination je souhaite avec du css mettre une couleur sur le numero, j'ai essayé avec a.active mais ca ne fonctionne pas

    merci de ton aide sabotage

  6. #6
    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
    Comme je t'ai dit, il faut simplement contrôler si l'image existe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if (isset($tableau[$i])) {
        echo '<td><a rel="example_group" href="pics/' , $tableau[$i] , '" ><img src="mini.php?f=' , $tableau[$i] , '" alt="Image" width="200px" height="120px"/></a></td>';
    }
    else {
        ehoc '<td></td>';
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre du Club
    Homme Profil pro
    noobies
    Inscrit en
    Décembre 2014
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : noobies

    Informations forums :
    Inscription : Décembre 2014
    Messages : 103
    Points : 51
    Points
    51
    Par défaut
    oui sauf que ca ne m'affiche plus mes colonnes, tout est en ligne horizontal

Discussions similaires

  1. [dom je pense]accéder à des éléments d un tableau sans id
    Par luta dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 07/02/2006, 15h31
  2. Réaliser un tableau sans tracer de lignes
    Par youp_db dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 5
    Dernier message: 13/01/2006, 09h14
  3. remplir un tableau sans doublons ...
    Par ryo-san dans le forum C
    Réponses: 22
    Dernier message: 10/11/2005, 12h43
  4. [HTML] Tableau sans departagement des cellules
    Par nimport nawak dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 09/05/2005, 17h58
  5. [HTML / CSS ... ?] Tableau sans AUCUNE marge
    Par PierrotY dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 19/04/2005, 11h13

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