Selectionner une colonne distincte + une autre colonne
Résolu
Herve_be
Messages postés
1182
Date d'inscription
Statut
Membre
Dernière intervention
-
Herve_be Messages postés 1182 Date d'inscription Statut Membre Dernière intervention -
Herve_be Messages postés 1182 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Bonjour,
Je ne parviens pas à obtenir ce que je veux.
Chaque fois qu'un utilisateur se connecte à mon site j'ajoute un enregistrement dans une DB qui contient donc Userid + Date.
Par exemple
28/5 User 1
27/5 User 2
27/5 User 1
27/5 User 3
26/5 User 2
...
Je voudrais avoir la liste des utilisateurs avec la dernière date à laquelle ils se sont connectés; dans l'exemple le résultat serait
28/5 User 1
27/5 User 2
27/5 User 3
J'ai essayé avec distinct, Group, Sort, ... je n'y parviens pas
Une idée ?
Bonjour,
Je ne parviens pas à obtenir ce que je veux.
Chaque fois qu'un utilisateur se connecte à mon site j'ajoute un enregistrement dans une DB qui contient donc Userid + Date.
Par exemple
28/5 User 1
27/5 User 2
27/5 User 1
27/5 User 3
26/5 User 2
...
Je voudrais avoir la liste des utilisateurs avec la dernière date à laquelle ils se sont connectés; dans l'exemple le résultat serait
28/5 User 1
27/5 User 2
27/5 User 3
J'ai essayé avec distinct, Group, Sort, ... je n'y parviens pas
Une idée ?
Configuration: Windows / Firefox 67.0
6 réponses
-
bonjour il faut faire un Group, Sort avec l'id = id de connexion + une recherche via la date la plus récente cela dépend du type d'encodage pour la date sur ton site
-
Merci pour ta réponse rapide, c'est effectivement ce que je voudrais faire mais je ne sais pas comment.
La date est en fait un timestamp en zone texte, par exemple 190528085857 -
Bonjour,
Est-ce que ce résultat te convient ?SELECT MAX(Date), UserId FROM ta_table GROUP BY UserId
Xavier -
Presque.
Voici ce que j'ai fait pour tester$results = mysqli_query($db,'select MAX(Timestamp), Userid from RVRTlog group by Userid order by Timestamp DESC '); while($result = mysqli_fetch_array($results)) { echo "<br>".$result['Timestamp'].";".$result['Userid']; }J'ai bien le Userid mais pas le Timestamp.-
C'est normal, quand tu écris $result['Timestamp'] tu supposes que la première colonne s'appelle ainsi, or ce n'est pas le cas car elle est le résultat d'un calcul.
Il faut forcer le nom dans la requête, comme ceci :$results = mysqli_query($db,'select MAX(Timestamp) as Timestamp, Userid from RVRTlog group by Userid order by Timestamp DESC ');
Xavier
-
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Merci, entretemps j'avais trouvé la même chose que toi
$results = mysqli_query($db,'select MAX(Timestamp) as LastDate, Userid from RVRTlog group by Userid order by Timestamp DESC '); ... echo "<br>".$result['LastDate'].";".$Userid;
Ca fonctionne très bien, un tout grand merci. -
Un petit détail : j'avais fait order by Timestamp qui n'est pas dans la sélection donc ce n'est pas trié.
J'ai fait order by LastDate et là tout est OK.
encore merci.