Aléatoire

Eléphant du PHP | 424 Messages

25 janv. 2007, 12:12

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 !
Youpi Youpi Yo !

ViPHP
ViPHP | 3607 Messages

25 janv. 2007, 12:16

c'est tout simple... ;-)
tu rajoute dans ta requête sql:
ORDER BY rand();
et voilà normalement pas de soucis

Eléphant du PHP | 424 Messages

25 janv. 2007, 12:40

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
Youpi Youpi Yo !

ViPHP
ViPHP | 3607 Messages

25 janv. 2007, 12:45

comment ça ça ne fonctionne pas ?

Eléphant du PHP | 424 Messages

25 janv. 2007, 12:46

Mes images s'affiche toujours dans le meme ordre.

Ordre de rentrée dans la base de données.
Youpi Youpi Yo !

ViPHP
ViPHP | 3607 Messages

25 janv. 2007, 12:55

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

Eléphanteau du PHP | 13 Messages

25 janv. 2007, 13:05

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

Eléphant du PHP | 193 Messages

25 janv. 2007, 13:26

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!

ViPHP
ViPHP | 2144 Messages

25 janv. 2007, 13:29

Utilises une session pour mémoriser les enregistrements affichés et les conserver.

Eléphant du PHP | 424 Messages

25 janv. 2007, 13:38

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
Youpi Youpi Yo !

Eléphant du PHP | 193 Messages

25 janv. 2007, 16:37

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!