[RESOLU] prendre les x plus grande valeur

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] prendre les x plus grande valeur

par Cyrano » 24 mai 2007, 17:45

...jai jamais fait de tableau en php et je peine...
Un tuto peut-être :?:

par Invité » 24 mai 2007, 17:14

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

par zeus » 24 mai 2007, 16:31

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 ;)

par newbie » 24 mai 2007, 15:58

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

par zeus » 24 mai 2007, 15:51

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++;
}

par Invité » 24 mai 2007, 14:56

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

par newbie » 24 mai 2007, 14:49

alors je suis sous mysql, je voudrai retirer les trois dates les plus recente

merci

par zeus » 24 mai 2007, 14:46

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

prendre les x plus grande valeur

par newbie » 24 mai 2007, 14:39

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