Requete mysql
Je sais que je me répète mais j'ai oublié ce que vous m'avez dit la dernière fois et je ne rettroube plus le message donc je repose la question : comment, grace à une requete mysql, puis-je connaitre les 5 plus récentes entrée en utilisant un champs date ou est-il plus préfèrable d'utiliser PHP et les ids ?
8 réponses
-
ContributeurSelect top 5 * from matable sort by monchampdate;
A quelques petit default de syntaxe parce que ca remonte, ca doit etre ca (sortby ou sort by? )
ö,ö
\_/ -
Mais cela ne me sort-il pas les 5 premiers ? Sinon merci mais puis-je utiliser cela avec autre chose que la date comme l'id ou autre ?
-
ContributeurBa les 5 premiers, tu as raison, il faut trier dans l'autre sens (reverse je crois)
Bon apres courte verification,
SELECT LAST 5 * FROM... SORT BY date;
SELECT LAST 5 * FROM... ORDER BY date;
SELECT FIRST 5 * FROM... SORT BY date DESC;
SELECT FIRST 5 * FROM... ORDER BY date DESC;
Theoriquement, elles marchent toutes ;-)
ö,ö
\_/ -
Et qu'est-ce que desc ? Je vais les essayer.
-
Hélas rien ne marche...
-
ContributeurDESC comme DESCENDANT pour dire de le faire en ordre inverse...en gros, soit tu prend les 5 derniers et tu tries dans l'ordre normal (ASC mais c'est par default) soit tu prends les 5 premiers mais tu tries en ordre inverse...
Pourl a facilite d'ecriture, le trie normal et prendre les 5 dernier...pour l'efficacite en cas de grosses tables, tries a l'envers et prendre les 5 premiers (grosse table > 100 000 entrees pour commencer a voir des differences et encore des petites...)
ö,ö
\_/ -
Est-ce que ce code marcherait ? Le voilà :
$requete = mysql_query("SELECT * FROM matable ORDER BY date");
$num = 1;
$count = mysql_query("SELECT COUNT * FROM matable");
while($row = mysql_fetch_row($requete))
{
if($num >= ($count - 5))
{
...
}
$num++;
} -
ContributeurJ'ai un peu oublie le PHP, mais je pense que oui, mais ca tirera plus au niveau temps qu'une belle requete SQL
ö,ö
\_/