Simplification de programmation

Fermé
dracucharles Messages postés 58 Date d'inscription lundi 17 mars 2008 Statut Membre Dernière intervention 13 novembre 2009 - 13 mai 2008 à 09:56
dracucharles Messages postés 58 Date d'inscription lundi 17 mars 2008 Statut Membre Dernière intervention 13 novembre 2009 - 13 mai 2008 à 10:45
Bonjour,
J'ai sur mon site des images qui sont chargées aléatoirement, c'est à dire qu'à chaque chargement de page, les images changent mais ne sont jamais les mêmes pour éviter d'avoir deux images identiques. J'ai donc un script php qui gère le fait de ne pas avoir de doublons. Ensuite mes images sont affichées dans un tableau.

voila mon code:
<?php
$nbimages=6; //nombre d'images au total

//chemin de mes images stocke dans un tableau
$nomimages[1]="images/labophy.jpg";
$nomimages[2]="images/3emeT4.jpg";
$nomimages[3]="images/secretariat.jpg";
$nomimages[4]="images/lavallee.jpg";
$nomimages[5]="images/ser_champ.jpg";
$nomimages[6]="images/batiment.jpg";

//génération de nombre aléatoire
$affimage1=rand(1,$nbimages);
$affimage2=rand(1,$nbimages);
$affimage3=rand(1,$nbimages);
$affimage4=rand(1,$nbimages);
$affimage5=rand(1,$nbimages);
$affimage6=rand(1,$nbimages);

//boucle de test pour ne pas avoir 2 images pareil
while(($affimage1==$affimage2) || ($affimage1==$affimage3) || ($affimage1==$affimage4) || ($affimage1==$affimage5) || ($affimage1==$affimage6) || ($affimage2==$affimage3) || ($affimage2==$affimage4) || ($affimage2==$affimage5) || ($affimage2==$affimage6) || ($affimage3==$affimage4) || ($affimage3==$affimage5) || ($affimage3==$affimage6) || ($affimage4==$affimage5) || ($affimage4==$affimage6) || ($affimage5==$affimage6)){
	$affimage2=rand(1,$nbimages);
	$affimage3=rand(1,$nbimages);
	$affimage4=rand(1,$nbimages);
	$affimage5=rand(1,$nbimages);
	$affimage6=rand(1,$nbimages);
}
?>

//affichage dans un tableau
<table class='transparent'>
	<tr><td class='transparent'><a href='index.php'><img src='./images/logo_2.gif' width='150'></a></td>
	<td class='transparent'><img src='<?php echo $nomimages[$affimage1];?>' width='150'></td>
	<td class='transparent'><img src='<?php echo $nomimages[$affimage2];?>' width='150'></td>
	<td class='transparent'><img src='<?php echo $nomimages[$affimage3];?>' width='150'></td>
	<td class='transparent'><img src='<?php echo $nomimages[$affimage4];?>' width='150'></td></tr>
</table>


Ma question est: Y-a t-il un moyen plus simple que ma boucle (en gras) pour tester si les images ne sont pas les mêmes ? Car si je veux ajouter d'autres images, les tests dans ma boucle seront encore plus lourd.
Je ne sais pas si j'ai été très clair.
Merci de votre aide

4 réponses

Jeren Messages postés 255 Date d'inscription mardi 6 mai 2008 Statut Membre Dernière intervention 21 mai 2008 45
13 mai 2008 à 10:13
0
dracucharles Messages postés 58 Date d'inscription lundi 17 mars 2008 Statut Membre Dernière intervention 13 novembre 2009 6
13 mai 2008 à 10:24
En fait j'ai déjà mes images aléatoires, mais j'ai fais en sorte que pour les images 1, 2, 3 et 4 que j'affiche dans mon tableau, aucune d'entre elles ne soient identiques. Mais si j'ajoute des images dans ma "collection" il y aura encore plus de tests dans ma boucle. Donc je ne sais pas s'il y a un moyen plus simple pour tester si mes images ne sont pas identiques.
Merci de vos réponses
0
Jeren Messages postés 255 Date d'inscription mardi 6 mai 2008 Statut Membre Dernière intervention 21 mai 2008 45
13 mai 2008 à 10:33
J'ai parfaitement compris ton probleme!
En effet, mon premier lien ne répondait pas à ton probleme!
J'ai trouvé ce lien si non: http://www.lbb.org/script/Php/Images/Aleatoire/index.php
C'est un "annuaire de script", je pense qu'il y en a un qui pourra t'intéresser.

http://www.lbb.org/cgi-bin/script/detail.cgi?ID=6315

J'ai pas été voir le script par lui même, je me suis arreté à la description!
0
dracucharles Messages postés 58 Date d'inscription lundi 17 mars 2008 Statut Membre Dernière intervention 13 novembre 2009 6
13 mai 2008 à 10:45
Merci, mais je ne cherche pas de script tout fait, j'aimerais juste savoir s'il y a un moyen plus simple que la boucle que j'ai déjà.
0