Page 1 sur 1

Aléatoire

Posté : 25 janv. 2007, 12:12
par Dom!
Bonjour à tous !

Je cherche le moyen d'afficher les images que je fais défiler dans un ordre aléatoire.

voici comment j'affiche les photos :
 <?php
		$sqldip = 'select * from nuked_photo where visible = 1';
		
		$resselectdip = mysql_query($sqldip);
				
		$maxi = mysql_num_rows($resselectdip);
		
		$photo = rand(1, $maxi)-1;
		
		mysql_data_seek($resselectdip, $photo);
		
		$selectdip = mysql_fetch_array($resselectdip);
				
		if ($selectdip["lien"] == NULL)
				$temp = "";
		else {
			$width = 150;
			$height = 100;
			$temp = '<a href="javascript:MM_openBrWindow(\'zoom.php?url='.$selectdip["lien"].'\',\'photos\',\'width='.$width.',height='.$height.'\');">';
		}	 
	 	
        print $temp.'<img src="'.$selectdip["lien"].'" border="0"></a><br>';
        ?>
Merci pour votre aide !

Posté : 25 janv. 2007, 12:16
par jojolapine
c'est tout simple... ;-)
tu rajoute dans ta requête sql:
ORDER BY rand();
et voilà normalement pas de soucis

Posté : 25 janv. 2007, 12:40
par Dom!
Pardonne moi mais rand est utilisé dans mon cas.... et malgré cela ca ne fonctionne pas !

Un autre idée peut être ?
Merci d'avance pour votre aide

Posté : 25 janv. 2007, 12:45
par jojolapine
comment ça ça ne fonctionne pas ?

Posté : 25 janv. 2007, 12:46
par Dom!
Mes images s'affiche toujours dans le meme ordre.

Ordre de rentrée dans la base de données.

Posté : 25 janv. 2007, 12:55
par jojolapine
si tu faits ORDER BY rand(), il faut virer ce que tu avais déja commencé, c'est à dire
$photo = rand(1, $maxi)-1;
        
        mysql_data_seek($resselectdip, $photo); 
et simplement faire affiché les résultat avec un while(mysql_fetch_array()) tout simple

Posté : 25 janv. 2007, 13:05
par ayayaaa
Salut,

Sinon tu peux essayer en ajoutant
srand((double)microtime()*1000000);
$rand = rand(0, mysql_num_rows($resselectdip)-1);
Pour intialiser le générateur de nombre aléatoire.

Ayayaaa

Yes ça marche, mais ça marche trop bien

Posté : 25 janv. 2007, 13:26
par Neomcdn
Salut jojolapine, salut tout le monde,

j'ai aussi besoin du aléatoire et là ça fonctionne nickel. Mon annuaire est bien aléatoire avec la méthode ORDER BY rand();

Mais il y a un souçi car on utilise la région répétée sur plusieurs pages: du coup, ça recharge à chaque page des nouveaux enregistrements: on peut donc trouver sur la première page les enregistrements: 1 2 3 4 5 6 7 8 et les retrouver, même dans un ordre différent, sur la seconde page, et pas voir les autres enregistrements 9, 10, ...

C'est peut-être mal dit; et ce serait plus clair en voyant:

http://develop.web.free.fr/template_generic3.php

Il y a t-il une possibilité pour générer une seule fois de manière aléatoire afin que le clic pour afficher la deuxième page ne charge pas de nouveaux enregistrements? De même lorsqu'on veut retourner sur la première page pour afficher les mêmes enregistrements et qu'on ne les retrouve plus...

merci!

Posté : 25 janv. 2007, 13:29
par iclo
Utilises une session pour mémoriser les enregistrements affichés et les conserver.

Posté : 25 janv. 2007, 13:38
par Dom!
Pour ma part ca fonctionne impeccable...

Merci pour votre aide :D

Je ne mets pas résolu je laisse le soin à "Neomcdn" de le faire....

Merciiii

Posté : 25 janv. 2007, 16:37
par Neomcdn
Ok Dom je m'en occupe dès que j'ai trouvé comment faire!! D'une part mettre résolu pour un autre et surtout comment faire pour la variable de session. ça fonctionne comment dans notre cas? je vais essayer de chercher les topics là-dessus!

Merci par avance!