Page 1 sur 2
afficher les 5 derniers enregistrement d'une table
Posté : 29 janv. 2010, 11:13
par Invité
Bonjour,
Voila je voudrai faire une requête et faire afficher les 5 derniers enregistrements d'une table, le souci c'est que je ne peux pas faire order by monchamp desc limit 5 car je veux qu'il les affiche dans l'ordre croissant. Auriez vous une idée sur une autre commande ?
merci d'avance
Re: afficher les 5 derniers enregistrement d'une table
Posté : 29 janv. 2010, 11:18
par Antjac
Et pourquoi tu ne ferai pas effectivement un ORDER BY DESC, que coté PHP tu enregistres le résultat dans un tableau que tu parcours de la fin vers le début ?
Re: afficher les 5 derniers enregistrement d'une table
Posté : 29 janv. 2010, 11:23
par Invité
ou la, en faite je pensais faire plus simple, je pensais qu'il y aurai une fonction. je maitrise pas trop les tableau, comment doit-je procéder ?
merci
Re: afficher les 5 derniers enregistrement d'une table
Posté : 29 janv. 2010, 11:40
par stealth35
tu creer une vue, sur la quelle du fera un order dans l'autre sens
Re: afficher les 5 derniers enregistrement d'une table
Posté : 29 janv. 2010, 12:21
par Antjac
LA vue est une bonne solution sinon tu peux t'amuser aussi avec un curseur
Re: afficher les 5 derniers enregistrement d'une table
Posté : 29 janv. 2010, 12:59
par singleton
Salut,
Heu pourquoi tu fait DESC si tu cherche l'ordre croissant ?
Prenant un order by ASC le tour est joué ??

Re: afficher les 5 derniers enregistrement d'une table
Posté : 29 janv. 2010, 16:23
par Antjac
Parceque quand tu utilises la syntaxe avec "Select * from table LIMIT X", il prends les X premiers enregistrements.
Si tu veux les X derniers, tu fais un order by DESC.
Re: afficher les 5 derniers enregistrement d'une table
Posté : 29 janv. 2010, 16:26
par AB
ou la, en faite je pensais faire plus simple, je pensais qu'il y aurai une fonction. je maitrise pas trop les tableau, comment doit-je procéder ?
merci
Ben faudra t'y mettre un peu aux tableaux sinon t'iras pas loin en php
Surtout que là c'est quand même pas compliqué :
Tu liste la ressource de ta requête dans un tableau puis tu inverse l'ordre du tableau.
$requete = "SELECT ...";
$ressource = mysql_query($requete);
$donnees = array();
while($ligne = mysql_fetch_assoc($ressource)) $donnees[] = $ligne;
$donnees = array_reverse($donnees);
//vérification
echo '<pre>';
print_r($donnees);
echo '</pre>';
Ensuite lu liste ton tableau $donnees pour afficher les données.
Re: afficher les 5 derniers enregistrement d'une table
Posté : 29 janv. 2010, 16:33
par singleton
Parceque quand tu utilises la syntaxe avec "Select * from table LIMIT X", il prends les X premiers enregistrements.
Si tu veux les X derniers, tu fais un order by DESC.
Au temps pour moi j'ai vu l'odre croissant avec un DESC je me suis dit

lol
Le dernier exemple est une bonne solution

Re: afficher les 5 derniers enregistrement d'une table
Posté : 29 janv. 2010, 16:42
par stealth35
ouai, mais le mieux etant d'utilisé une view, ca optimise des 2 cotés (php, mysql)
Re: afficher les 5 derniers enregistrement d'une table
Posté : 29 janv. 2010, 17:35
par Invité
donc je suis en trein d'essayer avec les tableau, le souci c'est que j'essaie de faire afficher les enregistrements docn j'ai saisi echo $donnees[dat]; dat étant mon nom de champ que je souhaite faire afficher. Et rien ne s'affiche.
merci
Re: afficher les 5 derniers enregistrement d'une table
Posté : 29 janv. 2010, 17:39
par stealth35
donc je suis en trein d'essayer avec les tableau, le souci c'est que j'essaie de faire afficher les enregistrements docn j'ai saisi echo $donnees[dat]; dat étant mon nom de champ que je souhaite faire afficher. Et rien ne s'affiche.
merci
$donnees[0]['dat'];
Re: afficher les 5 derniers enregistrement d'une table
Posté : 29 janv. 2010, 17:43
par Invité
cela m'affiche aussi array
merci
Re: afficher les 5 derniers enregistrement d'une table
Posté : 29 janv. 2010, 17:44
par stealth35
cela m'affiche aussi array
merci
fais un :
print_r($donnees);
Re: afficher les 5 derniers enregistrement d'une table
Posté : 29 janv. 2010, 17:47
par Invité
voici se que cela me renvoi :
Array ( [0] => Array ( [dat] => 2009-09-01 ) ) Array ( [0] => Array ( [dat] => 2009-06-01 ) [1] => Array ( [dat] => 2009-08-01 ) ) .......