Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/10/2011, 17h57   #1
Membre du Club
 
Inscription : juin 2007
Messages : 336
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 336
Points : 48
Points : 48
Par défaut Image aléatoire ou presque

Bonjour le forum,

Je suis sur un script pour afficher une image aléatoire, cela fonctionne , voici le code :
Code :
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
<html> 
<head> 
 
 
 
</head> 
<body> 
<?php 
$nbimages=6; 
$nomimages=array();
for($i=1;$i<=6;$i++) 
{
$nomimages[$i]="image".$i.".jpg"; 
}
 
 
$affimage=array_rand($nomimages,4); 
echo '<img src="'.$nomimages[$affimage[0]].'" border="0" width="150" height="112" alt\"Image aléatoire"/>';
echo '<img src="'.$nomimages[$affimage[1]].'" border="0" width="150" height="112" alt\"Image aléatoire"/>';
echo '<img src="'.$nomimages[$affimage[2]].'" border="0" width="150" height="112" alt\"Image aléatoire"/>';
echo '<img src="'.$nomimages[$affimage[3]].'" border="0" width="150" height="112" alt\"Image aléatoire"/>';
?>
<br/>
 
</body> 
</html>
Mais mon soucis est que je voudrais que lorsqu'une image est affichée, je ne veux pas qu'elle apparaisse une nouvelle fois, pas de doublon.
Il faut donc ajouter une exclusion je pense mais je sèche sur le procédé.

Merci de votre aide !
yuyu599 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2011, 18h31   #2
Membre Expert
 
Avatar de Eric2a
 
Homme Eric Garidacci
Inscription : septembre 2005
Messages : 1 057
Détails du profil
Informations personnelles :
Nom : Homme Eric Garidacci
Âge : 41

Informations forums :
Inscription : septembre 2005
Messages : 1 057
Points : 1 564
Points : 1 564
Salut,

Dans ce cas, il est préférable d'utiliser la function shuffle qui mélange les éléments d'un tableau.
__________________

N'oubliez pas le vote des messages utiles ainsi que le Tag [Résolu].

Mon Site Web : Corse - Actualité, Météo, Vidéos, Logiciels, ...
Eric2a est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2011, 18h45   #3
Membre du Club
 
Inscription : juin 2007
Messages : 336
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 336
Points : 48
Points : 48
Merci de votre réponse.
Donc shuffle devant array_rand ?
yuyu599 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2011, 18h54   #4
Membre Expert
 
Avatar de Eric2a
 
Homme Eric Garidacci
Inscription : septembre 2005
Messages : 1 057
Détails du profil
Informations personnelles :
Nom : Homme Eric Garidacci
Âge : 41

Informations forums :
Inscription : septembre 2005
Messages : 1 057
Points : 1 564
Points : 1 564
Code :
1
2
3
4
5
$nomimages=shuffle($nomimages); 
echo '<img src="'.$nomimages[0].'" border="0" width="150" height="112" alt\"Image aléatoire"/>';
echo '<img src="'.$nomimages[1].'" border="0" width="150" height="112" alt\"Image aléatoire"/>';
echo '<img src="'.$nomimages[2].'" border="0" width="150" height="112" alt\"Image aléatoire"/>';
echo '<img src="'.$nomimages[3].'" border="0" width="150" height="112" alt\"Image aléatoire"/>';
__________________

N'oubliez pas le vote des messages utiles ainsi que le Tag [Résolu].

Mon Site Web : Corse - Actualité, Météo, Vidéos, Logiciels, ...
Eric2a est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2011, 19h07   #5
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 789
Points : 35 789
Citation:
Envoyé par yuyu599
Merci de votre réponse.
Donc shuffle devant array_rand ?


Sincèrement, tu as au moins regardé la doc mise en lien par Eric2a avant de poser cette question ???
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2011, 19h22   #6
Membre Expert
 
Inscription : septembre 2010
Messages : 1 244
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 244
Points : 1 566
Points : 1 566
Tu veux afficher une image ou quatre images ?
Pour une image, après avoir utilisé shuffle tu peux renvoyer l'image correspondant à l'index 0 de ton tableau, puis pour éviter que l'image se réaffiche lors de la prochaine utilisation de ton tableau tu peut utiliser array_shift qui supprimera le premier élément du tableau. En même temps l'appel à cette fonction réindexera ton tableau si bien que le prochain appel à $nomimages[0] sera toujours valide et affichera l'image qui correspondait précédemment à $nomimages[1] et ainsi de suite.
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2011, 19h34   #7
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 789
Points : 35 789
Citation:
Envoyé par ABCIWEB
Tu veux afficher une image ou quatre images ?
Pour une image, après avoir utilisé shuffle tu peux renvoyer l'image correspondant à l'index 0 de ton tableau, puis pour éviter que l'image se réaffiche lors de la prochaine utilisation de ton tableau tu peut utiliser array_shift qui supprimera le premier élément du tableau. En même temps l'appel à cette fonction réindexera ton tableau si bien que le prochain appel à $nomimages[0] sera toujours valide et affichera l'image qui correspondait précédemment à $nomimages[1] et ainsi de suite.
Ben, après avoir fait un shuffle(), il suffit de faire une boucle pour afficher les quatre premières images...
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2011, 01h16   #8
Membre Expert
 
Inscription : septembre 2010
Messages : 1 244
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 244
Points : 1 566
Points : 1 566
Oui j'avais mal compris l'énoncé du problème.
Dans les termes
Citation:
"je ne veux pas qu'elle apparaisse une nouvelle fois, pas de doublon.
Il faut donc ajouter une exclusion je pense mais je sèche sur le procédé"
... j'ai pensé qu'il voulait se servir plusieurs fois du même tableau pour faire afficher des images différentes (à différents endroits).
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2011, 15h11   #9
Membre du Club
 
Inscription : juin 2007
Messages : 336
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 336
Points : 48
Points : 48
Je vous remercie cela fonctionne à merveille :-)
yuyu599 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h15.


 
 
 
 
Partenaires

Hébergement Web