FORUM Tom's Hardware » Programmation » PHP & MySQL & ASP » [Résolu ; php] Récupérer les valeurs d'un tableau
 

[Résolu ; php] Récupérer les valeurs d'un tableau

Il y a 256 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici
Ajouter une réponse



 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : [Résolu ; php] Récupérer les valeurs d'un tableau
 
Je me la pête
Profil : /!\ Docteur - PDG
Plus d'informations

Salut,
 
Je suis en train d'essayer de construire une petite photothèque en php. J'ai donc un répertoire "albums", qui lui-même contient des sous-répertoires thématiques (un répertoire = un album de photos). Et ces répertoires thématiques contiennent donc les photos (en jpg).
 
Et je rencontre un petit souci de codage php pour générer les liens "précédent" et "suivant" lors de l'affichage d'une photo, ne pouvant pas me baser sur l'id de la table sql (des photos peuvent être enlevées ou ajoutées dans les albums, et donc les id ne se suivent plus), ni sur le nom de la photo (qui est aléatoire).
 
Donc pour arriver à trouver une logique entre l'ordre des miniatures dans l'album et l'odre des liens "suivant" et "précédent", j'ai décidé de classer (arbitrairement) les miniatures par ordre alphabétique du nom de fichier.
 
A partir de là, il faut que j'arrive à trouver un moyen d'obtenir, à partir du nom de fichier de la photo en cours, le nom du fichier précédent et le nom du fichier suivant. Je suis parti sur la possibilité de lister le contenu du répertoire contenant les photos et de classer ce contenu dans un tableau. Ce qui donne le code ci-dessous

Code :
  1. // créer un tableau pour stocker le contenu du répertoire
  2.     $tab = array();
  3.     // chemin vers le répertoire
  4.     $rep = "albums/fleurs";
  5.     // mettre le contenu du répertoire dans le tableau
  6.     $listRep=opendir($rep);
  7.     $i=0;
  8.     while ($file = readdir($listRep))
  9.     {
  10.         if ($file != "." && $file != ".." )
  11.         {
  12.             $tab[$i] = $file;
  13.             $i++;
  14.         }
  15.     }
  16.     // fermer le répertoire
  17.     closedir($listRep);


 
C'est très bien (enfin j'espère...), mais je ne sais pas comment faire pour récupérer à partir de là le nom du fichier précédent et du fichier suivant, sachant que le nom de la photo en cours est contenu dans une variable GET.
 
[:edit] J'ai un peu progressé ; j'arrive maitenant à récupérer la place du fichier dans le tableau grâce à un array_search ; je peux donc identifier la place précédente et la place suivante... Mais comment après obtenir les valeurs contenues dans le tableau à ces postions ?
 
Si vous pouviez éclairer ma lanterne
Merci d'avance  :)


Message édité par marsien le 30-06-2006 à 14:23:11

---------------
.: La Pipicy Team :love: :.

Je me la pête
Profil : /!\ Docteur - PDG
Plus d'informations

C'est bon, j'ai trouvé, parfois je ne vais très bien( ou je dors :/), amis c'est franchement pas compliqué de faire une requête de valeur dans un tableau...
 
Merci de votre aide ; quand le script sera complêt je le mettrais ici avec un titre approprié ; ça peut toujours servir :)


---------------
.: La Pipicy Team :love: :.
zeb
Profil : Modérateur libre
Plus d'informations

( Avis à tout le monde.
 
Aller faire un tour à la machine à café par exemple peut être suffisant pour débloquer un problème (informatique ou autre) apparament insoluble :o Entre la pause-déjeuner, le gros soucis de Marsien a disparu. :D
 
A croire que les soucis prennent des pauses aussi :lol: )

Je me la pête
Profil : /!\ Docteur - PDG
Plus d'informations

Faut aussi manger avec des gens chiants, ça laisse le temps de réfléchir :o
 
:D


---------------
.: La Pipicy Team :love: :.
Plus d'informations

Shino-Genin a écrit :

Faut aussi manger avec des gens chiants, ça laisse le temps de réfléchir :o
 
:D


Bonjour,
Je bute exactement sur le même probleme si tu as le réponce.... ça m'intéresse...
Merci

Je me la pête
Profil : /!\ Docteur - PDG
Plus d'informations

Salut,
 
Voilà ce que j'ai fait.

Code :
  1. <?php
  2.     // créer un tableau pour stocker le contenu du répertoire
  3.     $tab = array();
  4.     // chemin vers le répertoire
  5.     $retour = mysql_query('SELECT categorie2 FROM phototheque WHERE nom="' . $_GET['photo'] . '"');
  6.     $donnees = mysql_fetch_array($retour);
  7.     $rep = 'albums/' . $donnees['categorie2'];
  8.     // mettre le contenu du répertoire dans le tableau
  9.     $listRep=opendir($rep);
  10.     $i=0;
  11.     while ($file = readdir($listRep))
  12.     {
  13.         if ($file != "." && $file != ".." )
  14.         {
  15.             //$tab[$i][0] = $i;
  16.             $tab[$i] = $file;
  17.             $i++;
  18.         }
  19.     }
  20.     // on trie le tableau par ordre croissant
  21.     sort($tab);
  22.     // on récupère le nom de la photo actuelle dans l'url
  23.     $photo = $_GET['photo'];
  24.     // on cherche cette photo dans le tableau et on récupère sa position
  25.     $photoCourante = array_search($photo, $tab);
  26.     // on calcule les postions des photos précédentes et suivantes
  27.     $prec = $photoCourante - 1;
  28.     $suiv = $photoCourante + 1;
  29.     // page de l'album sur laquelle se trouve la photo suivante ou la photo précédente (dans le cas où on veut afficher un nombre fixe de photos par pages ; ici 12)
  30.     $pageSuiv = ceil(($suiv + 1) / 12);
  31.     $pagePrec = ceil(($prec + 1) / 12);
  32.     // on compte le nombre d'entrée dans le tableau
  33.     $nombre = count($tab);
  34.     // on garde la photo précédente si sa position n'est pas avant 0 !
  35.     if($prec >= 0)
  36.     {
  37.         $prec = '<a href="phototheque.php?categorie='. $_GET['categorie'] . '&amp;page=' . $pagePrec . '&amp;photo=' . $tab[$prec] . '" title="photo précédente">Photo précédente</a>';
  38.     }
  39.     else
  40.     {
  41.         $prec = 'Photo précédente';
  42.     }
  43.     // on garde la photo suivante si sa position n'est pas après la dernière !
  44.     if($suiv < $nombre)
  45.     {
  46.         $suiv = '<a href="phototheque.php?categorie='. $_GET['categorie'] . '&amp;page=' .$pageSuiv  . '&amp;photo=' . $tab[$suiv] . '" title="photo suivante">Photo suivante</a>';
  47.     }
  48.     else
  49.     {
  50.         $suiv = 'Photo suivante';
  51.     }
  52.     // fermer le répertoire
  53.     closedir($listRep);
  54. ?>


 
Voilà, en espérant que ça puisse t'aider :jap:

Plus d'informations

Un grand merci....
A+


Aller à :
Ajouter une réponse
  FORUM Tom's Hardware » Programmation » PHP & MySQL & ASP » [Résolu ; php] Récupérer les valeurs d'un tableau
 

Annonces Google
Publicité