Affichage aléatoires des images(simultanément)

[Résolu]
Signaler
Messages postés
151
Date d'inscription
vendredi 19 août 2005
Statut
Membre
Dernière intervention
21 février 2006
-
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
-
Bonjour à tous;
j'ai uploader des images dans un dossier et j'ai stocké leurs url dans un champs dans ma base de données.
Maintenent je veux afficher ces images: à chaque actualisation 6 images s'affichent d'une maniere aléatoire.
je pense une requete "select image from table order by rand()" comme ça j'ai tous les url aléatoirement, mais je ne sais pas comment faire pour les afficher.
Avez vous une idée? aidez moi SVP!

18 réponses

Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
enlève la variable $list_image elle ne sert plus à rien :



<?php

$requete=mysql_query('SELECT DISTINCT logo FROM entreprise ORDER BY RAND() LIMIT 6');

mysql_close();

while($resultat=mysql_fetch_row($requete))

{

echo ', ';

}

?>



<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
Hello,

tu fais ta requête en ajoutant un LIMIT 1, 5 par exemple (fais des tests, je ne me souviens jamais ce que font ces paramètres et dans quel ordre, lol)
Ensuite, tu affiches le résultat de ta requête dans le src="..." d'une balise img, simplement.
Messages postés
420
Date d'inscription
vendredi 28 novembre 2003
Statut
Membre
Dernière intervention
20 mars 2006

Les paramètres de LIMIT c'est comme pour subst() ou plein de fonction
de ce genre, le premier c'est l'orgine et le deuxième la longueur =)
(en sachant que le premier enregistrement a pour origine 0)

La requête devrait donner (tiens je connaissais pas rand(), j'ai appris quelque chose)



$query = "SELECT image FROM table ORDER BY rand() LIMIT 0,5";



tu envoi la requête

$result = mysql_query($query,$res); //$res est la ressource renvoyée par mysql_connect()



et tu l'exploite

$list_image="";

while($data = mysql_fetch_array($result) )

{

$list_image.= "";

}

et voila plus qu'à afficher $list_image là où tu veux =)
Messages postés
420
Date d'inscription
vendredi 28 novembre 2003
Statut
Membre
Dernière intervention
20 mars 2006

Zut! Pour 6 images c'est LIMIT 0,6 biensûr :)
Messages postés
151
Date d'inscription
vendredi 19 août 2005
Statut
Membre
Dernière intervention
21 février 2006

Merci pour vos réponses,
j'ai essayé ta solution 199699 monoceros01, mais ça m'affiche toutes les images qui existent.
d'ou vient le problème ? j'ai bien mis le LIMIT 0,6
voila mon code
<?
$requet =mysql_query("select logo from entreprise ORDER BY rand() LIMIT 0,6 ");


?>
<?php

while($resultat=mysql_fetch_array($requet))
{$list_image.= \"\"; ?>
<?php echo $list_image ?>,
<? }?>
</td>

merci
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
Mets juste LIMIT 6, ça suffit de toutes façons.



mais curieux que ça ne marche pas...
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Salut,



ton image se trouve bien dans le répertoire courant ?

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
Messages postés
151
Date d'inscription
vendredi 19 août 2005
Statut
Membre
Dernière intervention
21 février 2006

en fait j'ai fait des recherches et je trouve que le rand() et LIMIT ne vont pas ensemble, c'est interprété mal ou meme pas interprété par mysql!
mais j'ai pas trouver une solution!
je croix qu'il me faut une table temporaire???
pour vous répondre antho, ça m'affiche les images donc il a bien trouvé et le rand() fonctionne aussi mais le problème c'est au niveaul du limit, il ne le considère pas!
J'espère que vous m'aidez!
Merci
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
heu non y'a aucun problème entre rand et limit :-)

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
Messages postés
420
Date d'inscription
vendredi 28 novembre 2003
Statut
Membre
Dernière intervention
20 mars 2006

ben dans ton while du met une structure de controle :

$i=0;

$list_image="";

while($data = mysql_fetch_array($result))

{

if ($i==5) break;

$i++;

$list_image.="";

}
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
heu mais ça c'est la solution brouillon mdr ^^

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
Messages postés
420
Date d'inscription
vendredi 28 novembre 2003
Statut
Membre
Dernière intervention
20 mars 2006

Ouai XD J'ai eu la flemme de décortiquer le problème sur le coup.... aaah une faiblesse impardonnable! :p
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
Tu devrais montrer comment tu as écrit ta requête, parce que si ça ne marche pas, mon idée est qu'elle est mal écrite.
Messages postés
151
Date d'inscription
vendredi 19 août 2005
Statut
Membre
Dernière intervention
21 février 2006

Bonjour et merci pour vos réponses,


voila ma requete malalam, avec la structure de controle de monoceros01
<?
$requet=mysql_query("select distinct logo from entreprise ORDER BY rand() LIMIT 6");
<?php
$i=0;
$list_image=\"\";
while($resultat=mysql_fetch_array($requet))
{ if ($i==5) break;
$i++;

$list_image.= \"\"; ?>
<?php echo $list_image; ?>, <? } ?>

et ça ne marche pas, ça m'affiche plusieurs logos et à chaque actualisation le nombre de logos affiché augmente!
avez vous une idée?
Merci
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
Vire le contrôle de monoceros, il n'était pas bien réveillé ;-)



Je ne pige pas...il y a justeune partie là? Parce que tu ouvres un bloc
php, tu ne le refermes pas...tu mets du html directement dedans, puis
tu réouvres un bloc php...

Pourquoi un distinct, au passage ?
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Eclaire un peu tout ça :





<?php

$requete=mysql_query('SELECT DISTINCT logo FROM entreprise ORDER BY RAND() LIMIT 6');

mysql_close();

$list_image='';

while($resultat=mysql_fetch_row($requete))

{

echo ', ';

}

?>





<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
Messages postés
151
Date d'inscription
vendredi 19 août 2005
Statut
Membre
Dernière intervention
21 février 2006

Merci infiniment antho!
c'est génial, ça marche très bien maintenant, mais seulement j'ai mis le LIMIT 7 au lieu de 6, pour qu'il m'affiche 6 images à la fois.
Merci encore une fois!
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
ok pas de quoi :-)

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>