PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 19-03-2011 19:44:54

ebouilleur
Membre
Lieu : Nantes
Inscription : 19-05-2009
Messages : 165
Site Web

Requete mysql avec une notion de "le plus petit possible"

Bonjour,

J'ai un petit soucis.
J'ai une requete sql qui me sort 1 résultat de ma table, ceci de manière aléatoire. Mais, j'aimerais que cette requête me sorte 1 résultat aléatoire dont la date de fin est proche de time().
Je ne suis pas sur que ce soit facilement réalise, mais bon, je demande on vera bien.


$SQL = "select E.id, E.idObjet, E.dateFin, O.nom, O.valeur
    from encheres E inner join objets O on (E.idObjet=O.id)
    where E.dateFin > "
.TIME()." AND E.dateDebut < ".TIME()."
    order by RAND() limit 1"
;

 

(datefin contient un timestamp)

Une idée, mais pas terrible serait de faire ma requete avec E.dateFin > ".time()." + 3600 et si il y a aucun résultat faire parreil avec un chiffre plus grand que 3600, mais c'est moche...
Si vous avez une bonne idée, je suis preneur wink

Merci
Yves

Hors ligne

#2 20-03-2011 08:55:40

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Requete mysql avec une notion de "le plus petit possible"

Saluton,
Il y a une incohérence entre le titre de ton post

notion de "le plus petit possible"

et

order by RAND()

.
Pour offrir une fourchette élargie au 

order by RAND()

tu peux utiliser BETWEEN.

WHERE E.dateFin BETWEEN ".time()-1800." AND ".time()+1800.." AND E.dateDebut  BETWEEN ".time()-1800." AND ".time()+1800)

par exemple, mais il te faut, évidemment, abandonner la notion de "plus petit possible" incompatible avec un ORDER BY RAND()


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#3 20-03-2011 13:29:02

ebouilleur
Membre
Lieu : Nantes
Inscription : 19-05-2009
Messages : 165
Site Web

Re : Requete mysql avec une notion de "le plus petit possible"

Salut

Oui je sais que  la notion de "plus petit possible" est incompatible avec un ORDER BY RAND(), mais c'était pour expliqué ce que je voulais wink
Ton idée de requete me convient presque parfaitement.
Je dis presque, car dans le cas ou la requete ne me sort rien, c'est embetant. Mais dans ce cas je suppose qu'il n'y a pas d'autre choix que de refaire un autre requete?

Merci

Hors ligne

Pied de page des forums