[MySQL] Question sur un Rand MySQL

Question sur un Rand MySQL [MySQL] - PHP - Programmation

Marsh Posté le 17-01-2003 à 16:10:04    

je fait une requête du style
 
select * from `ma_table` order by rand() limit $S,$L;
 
où '$S' est une variable passée en PHP (0, 10, 20, 30, ...) et $L une limite qui pourrait être changé (default.value=10).
 
la question es celle-ci : quand je fait ça, je ne risque pas de voir plusieurs fois le même enregistrement de la base de donnée s'afficher dans des pages php 'différentes'...
 
si oui, y'a moyen de faire en sorte que, quand je fais un rand sur la page 1, la page 2 prenne la suite de la liste précédente à partir de 10, etc... etc... etc...
 
merci et @+

Reply

Marsh Posté le 17-01-2003 à 16:10:04   

Reply

Marsh Posté le 17-01-2003 à 16:49:24    

un "order by rand()" ça fct ???
order by ne porte pas obligatoirement sur le nom d'un attribut ?
rand() retourne un chiffre non ??
donc je doute que ta query fct...
 

Reply

Marsh Posté le 17-01-2003 à 16:58:33    

nan, il me semble que ça fonctionne on en avait discuté sur un autre topic
 
par contre la question est judicieus mais j'en ai aucune idée.. faut tester pour voir... :??:


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 17-01-2003 à 17:13:32    

bon ok ça fct maitre Sh@rdar  [:tuffgong]  
 
mais les enregs reviennent...

Reply

Marsh Posté le 17-01-2003 à 20:09:03    

ethernal a écrit :

un "order by rand()" ça fct ???
order by ne porte pas obligatoirement sur le nom d'un attribut ?
rand() retourne un chiffre non ??
donc je doute que ta query fct...


 
voir le topic joint...
 
alors, sinon, vous avez des réponses ??

Reply

Marsh Posté le 17-01-2003 à 21:12:13    

Ben il te suffit d'enregistrer le fait que ta valeur a été trouvée une première fois et d'annuler cela une fois que toutes les valeurs auront été trouvées. ;)

Reply

Marsh Posté le 17-01-2003 à 22:13:23    

Hermes le Messager a écrit :

Ben il te suffit d'enregistrer le fait que ta valeur a été trouvée une première fois et d'annuler cela une fois que toutes les valeurs auront été trouvées. ;)
 


 
comment ça ??....

Reply

Marsh Posté le 17-01-2003 à 22:16:22    

Ben dans ta table, tu fais un champ égal à 0 ou 1 (ou true ou false) et tu testes dans ta requête si la valeur à déjà été trouvée grace à ce champ.
Si elle n'a pas encore été trouvée, tu la prends et tu mets un 1 (ou un true) dans le champ dont je viens de parler. Ainsi, la prochaine fois qu'il tombera sur cette valeur, il la laissera tomber et il en cherchera une autre, jusqu'à ce qu'il n'en subsiste aucune. A ce moment là, il faudra mettre 0 ou false sur toutes les valeurs de ta table.

Reply

Marsh Posté le 17-01-2003 à 23:23:18    

un order by rand() marche nickel
mé combiné avec un where il retournera toujours les enregistrements dans le meme ordre (ca a fé ca a partir de mysql 3.23.52 si je me souviens bien, sur les versions anterieures ca varié...)

Reply

Marsh Posté le 17-01-2003 à 23:27:09    

Ah ... :D
 
Ben là, désolé :D je sais pas alors...  [:totozzz]

Reply

Marsh Posté le 17-01-2003 à 23:27:09   

Reply

Marsh Posté le 18-01-2003 à 14:05:17    

yack a écrit :

un order by rand() marche nickel
mé combiné avec un where il retournera toujours les enregistrements dans le meme ordre (ca a fé ca a partir de mysql 3.23.52 si je me souviens bien, sur les versions anterieures ca varié...)


 
donc ça devrait fonctionner tout seul :D


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed