Page 1 sur 1

Double tableau php

Posté : 07 févr. 2012, 20:41
par cdw77
Bonjour,

Pour afficher des photos je me sert de ce code
<?php
$arrFichier = array();
$i=0;
$directory='images/';
// Ouvre un dossier bien connu, et liste tous les fichiers
if (is_dir($directory)) {
if($dh = opendir($directory)) {
while (($file = readdir($dh)) !== false) {
$extension = pathinfo($directory.$file);
if($file!='..' && $file!='.' && strtolower($extension['extension'])=='jpg'){//N'affiche pas le . et ..
$arrFichier[$i] = $file; //PLace les fichier dans un tableau
$i++;
}
}
}
closedir($dh); //Il est vivement conseiller le repertoire pour toute autre opération sur le systeme de fichier.
}
//Initalisation.
if($_GET['index']!=''){
$index = $_GET['index'];
}else{
$index = 0;
}
//Affichage des liens précédent et suivant.
if($index > 0){ //N'affiche pas le boutton au premier
echo '<input onClick="window.location=\''.$_SERVER['SCRIPT_NAME'].'?index='.($index-1).'\'" type="button" name="precedent" value="<<">';
}
echo '<img src="'.$directory.'/'.$arrFichier[$index].'">'; //Affichage de l'image
if($index < (count($arrFichier)-1)){ //N'affiche pas le boutton suivant lorsqu'il y a pas d'image apres
echo '<input onClick="window.location=\''.$_SERVER['SCRIPT_NAME'].'?index='.($index+1).'\'" type="button" name="suivant" value=">>">';
}
?>
et j'aimerai ajouter du texte sous chaque photos.
Bien-sûr le texte change suivant la photo.

Merci

Re: Double tableau php

Posté : 07 févr. 2012, 22:28
par Ryle
Tu peux faire un tableau de libellé et utiliser le nom de l'image comme clé pour afficher le bon texte :)
$arrTexte = array();
$arrFichier['image1.jpg'] = "blabla";
$arrFichier['image2.jpg'] = "blabla2";

...

echo '<img src="' . $directory . '/' . $arrFichier[$index] . '">'; //Affichage de l'image
echo $arrTexte[$arrFichier[$index]];

Re: Double tableau php

Posté : 07 févr. 2012, 22:36
par cdw77
Bonsoir Ryle,

J'adore ce forum.
Vous êtes tous des pros.
Réponses Rapides, bien détaillées.

Je vais tester
et je reviendrai donner le résultat.

Un grand Merci très sincèrement.

Re: Double tableau php

Posté : 09 févr. 2012, 16:39
par cdw77
Bonjour,

Je viens de tester le code , mais cela m'affiche une erreur

Code : Tout sélectionner

Notice: Undefined index: 001.jpg in C:\wamp\www\Sextan\journeeFemme.php on line 60 Call Stack # Time Memory Function Location 1 0.0008 688128 {main}( ) ..\journeeFemme.php:0
voici mon code complet

<?php
					
						
						
$arrFichier = array();
$i=0;
$directory='Images/Journee_femme/images/';
// Ouvre un dossier bien connu, et liste tous les fichiers
if (is_dir($directory)) {
if($dh = opendir($directory)) {
while (($file = readdir($dh)) !== false) {
$extension = pathinfo($directory.$file);
if($file!='..' && $file!='.' && strtolower($extension['extension'])=='jpg'){//N'affiche pas le . et ..
$arrFichier[$i] = $file; //PLace les fichier dans un tableau

$arrTexte = array();                           //--------------------------------------------------------------------  code ajouté    
$arrFichier['001.jpg'] = "blabla";         //--------------------------------------------------------------------  code ajouté
$arrFichier['002.jpg'] = "blabla2";	//--------------------------------------------------------------------  code ajouté

$i++;
}
}
}
closedir($dh); //Il est vivement conseiller le repertoire pour toute autre opération sur le systeme de fichier.
}
//Initalisation.
if($_GET['index']!=''){
$index = $_GET['index'];
}else{
$index = 0;
}
//Affichage des liens précédent et suivant.
if($index > 0){ //N'affiche pas le boutton au premier
echo '<input onClick="window.location=\''.$_SERVER['SCRIPT_NAME'].'?index='.($index-1).'\'" type="button" name="precedent" value="<<">';
}
echo '<img src="'.$directory.'/'.$arrFichier[$index].'">'; //Affichage de l'image
echo $arrTexte[$arrFichier[$index]]; //--------------------------------------------------------------------  code ajouté

if($index < (count($arrFichier)-1)){ //N'affiche pas le boutton suivant lorsqu'il y a pas d'image apres
echo '<input onClick="window.location=\''.$_SERVER['SCRIPT_NAME'].'?index='.($index+1).'\'" type="button" name="suivant" value=">>">';
}
?>

Re: Double tableau php

Posté : 09 févr. 2012, 20:02
par Ryle
A priori, le code faudrait le mettre avant ou après la boucle while, car ça ne sert à rien de recréer ton tableau à chaque fois :)

C'est laquelle la ligne 60 ?

Pour debugger le plus simple c'est d'afficher les valeurs... au moment où tu affiches l'image regarde ce que contient $index, vérifie qu'il existe bien dans ton tableau $arrFichier. Puis regarde ce que contient $arrFichier[$index] , et contrôle que tu as bien ce même nom comme index dans ton tableau $arrTexte :)

Re: Double tableau php

Posté : 09 févr. 2012, 20:21
par cdw77
Bonsoir Ryle,

Je vais les changements et les tests.

Merci

Re: Double tableau php

Posté : 09 févr. 2012, 20:31
par cdw77
Bonsoir Ryle,

La ligne 60 c'est
echo $arrTexte[$arrFichier[$index]];
merci