Ordre des images dans un tableau php

Fermé
emeline1407 - 13 août 2009 à 15:39
jeangilles Messages postés 816 Date d'inscription samedi 21 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 - 13 août 2009 à 21:43
Bonjour,
Je suis extrêmement novice en php.
J'ai récupéré un script afin de créer un album dynamique sur mon site. Ca fonctionne bien mais le soucis c'est qu'en créant les images, il ne les mets pas dans l'ordre des noms des imageS. Du coup toutes les mignatures sont dans le désordre et donc pas chronologique.
Le script qui crée les mignatures dans un tableau est :
function liste_rep()
{
echo "<br><div align=center><table border=0 cellspacing=5>";
$rep_ouvert = opendir(".");
$cpt_ligne = 0;
while ($lu=readdir($rep_ouvert))
{
if (test_image("$lu"))
{
$cpt_ligne++;
if ($cpt_ligne%5==1) echo "<tr>\n";
echo "<td valign=center align=center colspan=2>";
echo "<a href=\"$_SERVER[PHP_SELF]?photo=$lu\">";
$nom_mini = "_pre_".$lu;
if (!file_exists($nom_mini))
resize_photo($lu,$nom_mini,100,75,99);
echo "<img src=\"$nom_mini\" border=0 alt=$lu>";
if ($cpt_ligne%5==0) echo "</tr>";
}
}
if ($cpt_ligne%3!=0) echo "<td colspan=2> </td></tr>";
echo "</table></div>";
}

Pourriez-vous m'aider. Ca m'aiderait vraiment car je suis complètement bloqué !!!
A voir également:

10 réponses

jeangilles Messages postés 816 Date d'inscription samedi 21 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 186
13 août 2009 à 16:42
Essayes en remplacant ta fonction par :



function liste_rep()
{
	echo "<br><div align=center><table border=0 cellspacing=5>";
	$cpt_ligne = 0;
	$liste = scandir(".");
	for($i=0;$i<count($liste);$i++){
		if($liste[$i] != '.' && $liste[$i] != '..'){
		$lu = $liste[$i];
			if (test_image("$lu"))
			{
				$cpt_ligne++;
				if ($cpt_ligne%5==1) echo "<tr>\n";
				echo "<td valign=center align=center colspan=2>";
				echo "<a href=\"$_SERVER[PHP_SELF]?photo=$lu\">";
				$nom_mini = "_pre_".$lu;
				if (!file_exists($nom_mini))
				resize_photo($lu,$nom_mini,100,75,99);
				echo "<img src=\"$nom_mini\" border=0 alt=$lu>";
				if ($cpt_ligne%5==0) echo "</tr>";
			}
		}
	}
	if ($cpt_ligne%3!=0) echo "<td colspan=2> </td></tr>";
	echo "</table></div>";
} 
0
En fait j'obtiens :
Fatal error: Call to undefined function: scandir() in /mnt/101/sdb/a/1/julienetemeline/photographeprepa/Resize_photos_2.php on line 43

Du coup j'ai essayé ton script en remplaçant juste scandir par opendir() dans ton script mais les images ne s'affiche plus...
0
jeangilles Messages postés 816 Date d'inscription samedi 21 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 186
13 août 2009 à 20:55
ha oui tu dois être en php 4 et scandir est une fction php5 ...
alors remplaces juste cette ligne par (la ligne contenant le scandir) par :


$liste = Array();
$od  = opendir($dir);
$nb=0;
while (false !== ($fic= readdir($od))) {
 if($fic!= '.' && $fic!='..'){
    $liste[$nb] = $fic;
    $nb++
 }
}

sort($liste);

0
Et bien maintenant j'ai ça :
Parse error: syntax error, unexpected '}' in /mnt/101/sdb/a/1/julienetemeline/photographeprepa/Resize_photos_2.php on line 50

Si tu veux, je peux t'envoyer le script entier par mail pour que tu le test...
Vraiment désolée mais le php je comprends pas trop...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jeangilles Messages postés 816 Date d'inscription samedi 21 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 186
13 août 2009 à 21:18
dsl, c'est parce qu'il manque un ; après le $nb++ ^^

Ca donnerai donc :
function liste_rep()
{
	echo "<br><div align=center><table border=0 cellspacing=5>";
	$cpt_ligne = 0;
	
	$liste = Array();
	$od  = opendir($dir);
	$nb=0;
	while (false !== ($fic= readdir($od))) {
	 if($fic!= '.' && $fic!='..'){
		$liste[$nb] = $fic;
		$nb++;
	 }
	}

	sort($liste);
	for($i=0;$i<count($liste);$i++){
		if($liste[$i] != '.' && $liste[$i] != '..'){
		$lu = $liste[$i];
			if (test_image("$lu"))
			{
				$cpt_ligne++;
				if ($cpt_ligne%5==1) echo "<tr>\n";
				echo "<td valign=center align=center colspan=2>";
				echo "<a href=\"$_SERVER[PHP_SELF]?photo=$lu\">";
				$nom_mini = "_pre_".$lu;
				if (!file_exists($nom_mini))
				resize_photo($lu,$nom_mini,100,75,99);
				echo "<img src=\"$nom_mini\" border=0 alt=$lu>";
				if ($cpt_ligne%5==0) echo "</tr>";
			}
		}
	}
	if ($cpt_ligne%3!=0) echo "<td colspan=2> </td></tr>";
	echo "</table></div>";
} 




0
Et maintenant j'ai ça :

Warning: readdir(): supplied argument is not a valid Directory resource in /mnt/101/sdb/a/1/julienetemeline/photographeprepa/Resize_photos_2.php on line 46

Warning: sort() expects parameter 1 to be array, null given in /mnt/101/sdb/a/1/julienetemeline/photographeprepa/Resize_photos_2.php on line 52
0
A non pardon, j'ai ça plutôt : (après avoir recopier tout le script...)

Warning: readdir(): supplied argument is not a valid Directory resource in /mnt/101/sdb/a/1/julienetemeline/photographeprepa/Resize_photos_2.php on line 47
0
jeangilles Messages postés 816 Date d'inscription samedi 21 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 186
13 août 2009 à 21:33
Oui excuses moi j'ai un peu de mal XD
je veux ouvrir le répertoire $ dir alors que jl'ai même pas initialisé ^^

remplace
$od  = opendir($dir);


par

$od = opendir(".");


(enfin "." si c'est le répertoire où se situe ton fichier qui contient les images ^^)

PS : dsl de pas pouvoir tester le code avant de te l'envoyer, mais j'ai aucun serveur capable d'interpréter du php sur cet ordi, et jvais pas non plus utiliser le serveur du boulot pour ca XD)
0
Génial !!!!!!!!!!!!!!!!!
Ca marche !!!!!!!!!!!!!!!!!!!!!
Merci énormément beaucoup. Tu viens de me sauver des heures et des heures de chargement !!!
Encore merci et très très bonne soirée !!!
PS : si j'ai un soucis je pourrais te reposer des questions ???
0
jeangilles Messages postés 816 Date d'inscription samedi 21 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 186
13 août 2009 à 21:43
Oui oui pas de pblème :)

et de rien ^^
0