Selectionner une colonne distincte + une autre colonne

Résolu
Herve_be Messages postés 1123 Date d'inscription   Statut Membre Dernière intervention   -  
Herve_be Messages postés 1123 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 ?


Configuration: Windows / Firefox 67.0
A voir également:

6 réponses

VortexUrukog Messages postés 41 Date d'inscription   Statut Membre Dernière intervention   4
 
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
0
Herve_be Messages postés 1123 Date d'inscription   Statut Membre Dernière intervention   9
 
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
0
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
Bonjour,

Est-ce que ce résultat te convient ?
SELECT MAX(Date), UserId FROM ta_table GROUP BY UserId


Xavier
0
Herve_be Messages postés 1123 Date d'inscription   Statut Membre Dernière intervention   9
 
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.
0
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Herve_be Messages postés 1123 Date d'inscription   Statut Membre Dernière intervention   9
 
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.
0
Herve_be Messages postés 1123 Date d'inscription   Statut Membre Dernière intervention   9
 
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.
0