Accueil > Forum > > > > tri décroissant, fonctions sort() / rsort() ne fonctionnent pas
tri décroissant, fonctions sort() / rsort() ne fonctionnent pas
mardi 16 mars 2010 à 15:25:49 |
tri décroissant, fonctions sort() / rsort() ne fonctionnent pas

ju0123456789
|
Bonjour,
J'ai un léger souci, je voudrais afficher uniquement les 4 derniers utilisateurs inscrits sur mon site, mais je ne vosi pas trop comment faire, car que j'utilise sort() ou rsort(), ça me renvoi toujours le même tri.
Voici mon code, si quelqu'un peut m'aider :
Code PHP :
$sql = "select LOGIN,DATE_INSCRIPTION from utilisateurs ";
$res = mysql_query($sql);
while( $data = mysql_fetch_assoc($res) )
{
$DateAjout = $data['DATE_INSCRIPTION'];
$LogAjout = $data['LOGIN'];
$Inscris = array($DateAjout);
rsort($Inscris);
foreach ($Inscris as $key => $val)
{
echo "Inscrit : [" . $key . "] = " . $val . "\n";
}
}
Merci d'avance
|
|
mardi 16 mars 2010 à 15:37:57 |
Re : tri décroissant, fonctions sort() / rsort() ne fonctionnent pas

Tonio_35
|
Bonjour,
A quel format est ta date ?
Si c'est un timestamp tu peux utiliser un ORDER BY dans ta requête SQL. Avec la date ou les ID d'ailleurs...
_________________________________
Min iPomme
|
|
mardi 16 mars 2010 à 15:39:17 |
Re : tri décroissant, fonctions sort() / rsort() ne fonctionnent pas

47
|
Bonjour,
s'il s'agit de juste afficher les 4 derniers utilisateurs inscrits, pourquoi ne pas le demander à la base de données directement?
du type:
Code :
select LOGIN,DATE_INSCRIPTION
from utilisateurs
order by DATE_INSCRIPTION desc
limit 0,4
bonne après midi
|
|
mardi 16 mars 2010 à 15:52:16 |
Re : tri décroissant, fonctions sort() / rsort() ne fonctionnent pas

Tonio_35
|
Au passage :
Code : $sql = "select LOGIN,DATE_INSCRIPTION from utilisateurs ";
Normalement la norme veux qu'on mette les mot clé SQL en MAJUSCULE et le reste en minuscule.
Code : $sql = "SELECT login, date_inscription FROM utilisateurs";
Tu n'as pas du bien comprendre le principe de ton while. Immaginons que tu ai les données suivantes :
Code : login | date_inscription
toto | 20100306
titi | 20100301
tutu | 20100101
quand tu va faire ton while, au premier passage :
$DateAjout va avoir la valeur "20100306" et $LogAjout la valeur "toto".
Ensuite tu fais $Inscris = array($DateAjout);
$Inscris auras la valeur array("20100306").
Puis tu fais
rsort($Inscris);
Donc ici tu trie un tableau d'un élèment. Il seras toujours dans l'ordre  .
Pour finir tu fais ton foreach
Ca va te retourner qu'une ligne
Code : echo "Inscrit : [" . $key . "] = " . $val . "\n";
retourneras
Inscrit : [0] = "20100306".
Puis tu repasse dans ton while une seconde fois ce qui au final t'écriras :
Inscrit : [0] = "20100301".
_________________________________
Min iPomme
|
|
mercredi 17 mars 2010 à 09:33:23 |
Re : tri décroissant, fonctions sort() / rsort() ne fonctionnent pas

ju0123456789
|
Bonjour et merci pour vos réponses.
ma date est sous ce format la : 06/02/2010 - 03:56:27
(varchar)
je ne peux donc pas faire d'order by, il prend les 2 premiers chiffres uniquement pour le tri. je viens de me rendre compte que j'aurais du faire sous forme yyyymmdd mais j'ai fait tout mon site comme ça c'est un peu tard, donc j'aimerais trouver une solution pour éviter de perdre plusieurs jours à tout recommencer.
MErci pour la précision Tonio, j'ai un peu de mal avec les notions de tableau. J'ai compris mon erreur à ce niveau là, mais alors, comment puis-je les trier sachant que je ne peux aps faire de ORDER BY ni trier avec la fonction sort() ?
Merci
|
|
mercredi 17 mars 2010 à 12:03:07 |
Re : tri décroissant, fonctions sort() / rsort() ne fonctionnent pas

Tonio_35
|
Réponse acceptée !
Essai un
Code : SELECT login, date_inscription, STR_TO_DATE(date_inscription, '%d/%m/%Y - %H:%i:%s') AS insdate FROM utilisateurs ORDER BY insdate DESC LIMIT 0,4
Pour plus de détail sur STR_TO_DATE de MYSQL : ICI
Pour plus de détail sur le format de date (%i%s...) : ICI
Celas-dis, le mieux est que tu te fasse un script php ou mysql pour convertir les données de ta base... Parce-que des formats standard c'est vraiment plus facile (Si tu veux faire des calculs par exemple : Inscrit il y a X jours).
Tu peux passer un script du genre :
Code : UPDATE "utilisateurs" SET date_inscription = STR_TO_DATE(date_inscription, '%d/%m/%Y - %H:%i:%s');
Et convertir ta colonne en type date. Ou passer par une colonne temporaire le temps de modifer ton code PHP :
Code :
ALTER TABLE "utilisateurs" ADD new_date_ins DATETIME;
UPDATE "utilisateurs" SET new_date_ins = STR_TO_DATE(date_inscription, '%d/%m/%Y - %H:%i:%s');
_________________________________
Min iPomme
|
|
mercredi 17 mars 2010 à 14:45:35 |
Re : tri décroissant, fonctions sort() / rsort() ne fonctionnent pas

ju0123456789
|
convertir mes colonnes de ma table ? arf non car j'ai une dizaine de table où il y a un champs de ce type et où le format est le même ça voudrait dire qu'il faut que je change plein de choses dans mes includes (entre autres) qui sont programmés en fonction de ce format là. J'ai mal commencé mais j'avoue ne pas avoir envie de refaire tout cela.
C'est pourquoi il me faut une alternative, dont j'ai besoin uniquement dans ce cas là.
sinon j'ai essayé ta requete, et ça me donne ceci comme erreur, comme si les chamsp n'existaient pas :
Code : Notice: Undefined index: DATE_INSCRIPTION in /homepages/12/d311644604/htdocs/payetonju/www/index.php on line 204
Notice: Undefined index: LOGIN in /homepages/12/d311644604/htdocs/payetonju/www/index.php on line 205
voici ma requete :
Code PHP : $sql = " SELECT login, date_inscription, STR_TO_DATE(DATE_INSCRIPTION, '%d/%m/%Y - %H:%i:%s') AS insdate FROM utilisateurs ORDER BY insdate DESC LIMIT 0,4";
$res = mysql_query($sql) or die('Erreur SQL ! <br />"<font color=\'red\'><b>'.$sql.'</b></font><br />'.mysql_error());
while( $data = mysql_fetch_assoc($res) )
{
echo "- <b>".$LogAjout."</b> inscrit(e) le <b>".$DateAjout."</b><br />";
}
Merci bcp tonio
|
|
mercredi 17 mars 2010 à 15:14:47 |
Re : tri décroissant, fonctions sort() / rsort() ne fonctionnent pas

Tonio_35
|
C'est quoi tes lignes 204 et 205 de ton fichier index.php ?
Sinon tu ne fais pas bien ton mysql_fetch_assoc...
ton while( $data = mysql_fetch_assoc($res) )
va mettre pour chaque ligne dans ta variable $data un tableau avec toutes les colonnes récupérées dans ton SELECT...
La tu te sert de la variable $LogAjout et $DateAjout alors que tu ne les à jamais créées.
il faut se servir de $data['Nom de ta colonne désirée']...
Plus de détails ICI => LAAAAA <=
_________________________________
Min iPomme
|
|
mercredi 17 mars 2010 à 15:22:55 |
Re : tri décroissant, fonctions sort() / rsort() ne fonctionnent pas

ju0123456789
|
pardon j'ai oublié dans mon copié collé :
Code PHP : $DateAjout = $data['DATE_INSCRIPTION'];
$LogAjout = $data['LOGIN'];
|
|
mercredi 17 mars 2010 à 15:24:02 |
Re : tri décroissant, fonctions sort() / rsort() ne fonctionnent pas
|
Cette discussion est classée dans : code, data, tri, sort, rsort
Répondre à ce message
Sujets en rapport avec ce message
requete qui marche a moitié [ par casper77610 ]
Bonjours à tous, Voici mon soucis : Dans un tableau html je recupere les données d'une table SQL. A partir de ce tableau je recopie les lignes chois
Tri d'un "readdir" pour une gallerie d'images [ par blankart ]
bonjour a tous , j'ai crée un site web il y a peu, il s'agit d'une gallerie photo , je me suis donc appuyé sur jbgallery 3 pour faire cela. jai un
soucis avec SELECT WHERE [ par laloire33150 ]
Bonjour, j'essaie de récupérer une ligne de ma bdd pour écrire sur mon site le texte s'affiche mais pas ce que je veux récupérer, je ne sais pas si
Fonction PHP [ par kyoku59 ]
Bonjour. Voilà je détient un formulaire HTML ou j'envoie plusieurs fichier .doc J'ai créé un fonction avec en paramétre : $nameFile le nom de
Téléchargement d'un document [ par dodo1600 ]
dodomomo: S'il vous plait est qu'il ya quelqu'un qui peut m'aider ? J'ai fait ce code mais j'ais un problème au niveau de l'enregistre dans la base o
Nuage de point de différentes couleurs avec Google charts (scatter) [ par monoski ]
Voilà j'évolue avec un graphique établi grâce au scatter charts de google. Voici le code de base que j'utilise : [code=php] <h
Fatal error: Unsupported operand types [ par ju0123456789 ]
Bonjour, j'utilise une fonction qui me retourne un tableau, et dans laquelle j'ai fait une petite division qui apparemment passe très mal : [code=ph
Récupérer la valeur d'un get [ par beegeezzz ]
Salut tout le monde, J'essaie en fait de trier mes données de mes tableaux. Pour cela, j'ai changé le nom des champs du tableau en URL : [code]echo '<
Formulaire mail ... [ par stolken ]
Salut tt le monde, J'ai fait un formulaire contenant plusieurs champ que j'aimerai voir arriver dans ma boite mail, seulement il fallait s'en douter l
Mettre des commentaires à ses news, probleme de code [ par sebing ]
Bonsoir, J'essaye d'afficher les commentaires de mes news. J'ai deux tables: news et commentaires_news. Elle peuvent etre relié par id(news) et id_ne
Livres en rapport
|
Derniers Blogs
ROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGEROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGE par Matthieu MEZIL
Si vous utilisez Roslyn et que vous vous voulez vous simplifier le code du code rewriter, je vous conseille d'installer mon NuGet package RoslynHelper ....(read more) ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|