Page 1 sur 1
prendre les x plus grande valeur
Posté : 24 mai 2007, 14:39
par newbie
Bonjour,
Je souhaiterai savoir si il y a un moyen d'extraire avec une requete les X plus grand nombre par exemple.
Merci d'avance
Posté : 24 mai 2007, 14:46
par zeus
Il est possible de trier les valeur avec "ORDER BY".
Il est également possible de ne récupérer que x valeurs d'une requête, mais la syntaxe dépent du SGBD que tu utilises. Sous MySQL, il faut utiliser "LIMIT x", sous Oracle un "WHERE rownum <= x"
Il nous faudrait plus de détails sur le SGBD, sur la valeur que tu veux récupérer, pour pouvoir te donner plus de détail
Posté : 24 mai 2007, 14:49
par newbie
alors je suis sous mysql, je voudrai retirer les trois dates les plus recente
merci
Posté : 24 mai 2007, 14:56
par Invité
non en faite se que je veux faire, c'est afficher en gras les enregistrements ayant les trois dates les plus élever. Donc en faite il faudrai que j'extrais la 3eme date en faisant un order by desc
Mais je ne voi pas comment proceder
merci
Posté : 24 mai 2007, 15:51
par zeus
donc, si tu fait un "ORDER BY DESC tonChampDate", tu vas avoir la liste de tes enregistrements, les dates les plus récentes en 1er.
Ensuite, dans ton code PHP, tu mets un compteur qui s'incrémente à chaque ligne, et tant que ce compteur est inférieur à x, tu affiches les lignes en gras
$str_requete = "...";
$o_result = mysql_query($str_requete);
//Initialisation du compteur
$i = 1;
while ($a_result = mysql_fetch_array())
{
$date = $a_result['tonChampDate'];
//Ici, les 3 1eres lignes sont en gras
if ($i <= 3) {
echo "<b>" . $date . "</b><br />";
} else {
echo $date . "<br />";
}
//Incrémentation du compteur
$i++;
}
Posté : 24 mai 2007, 15:58
par newbie
ok, je suis d'accord, mais le souci c'est que j'ai deja une requete qui fait afficher les enregistrements, et je veux pas qu'il soit afficher en fonction de la date. C'est pour cette raison que je voulai faire une requeste pour extraire la date, et ainsi j'aurai pu comparer chaque ligne et mettre en gras ceux qui etait egale ou superieur a la date.
Merci
Posté : 24 mai 2007, 16:31
par zeus
dans ce cas là, fait une requête qui retourne les X enregistrements triés par ordre décroissant (avec ORDER BY DESC et LIMIT X)
Stockes ces valeurs dans un tableau et, lors de l'affichage de tes enregistrements, si la date de l'enregistrement est dans le tableau, affiche là en gras

Posté : 24 mai 2007, 17:14
par Invité
la je rame serieusement, jai jamais fait de tableau en php et je peine. Y aurai t il un moyen d'avoir un exemple.
merci
Posté : 24 mai 2007, 17:45
par Cyrano
...jai jamais fait de tableau en php et je peine...
Un tuto peut-être
