IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

GROUP BY avec ORDER BY et LIMIT ? [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 156
    Par défaut GROUP BY avec ORDER BY et LIMIT ?
    Bonjour à tous,

    Je dispose de la base de données suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ID | Nom  | Ville | Date
    01 | john | paris | 18/05/10
    02 | nico | lyon  | 16/05/10
    03 | nico | paris | 15/05/10
    04 | john | lyon  | 15/05/10
    La date n'est qu'un exemple, pour la compréhension, en fait il s'agit d'un timestamp.


    Je cherche à afficher, a l'aide d'un while le résultat suivant :


    John à paris le 18/05/10
    Nico à Lyon le 16/05/10


    Autrement dit, la dernière ville visitée par personne.

    Merci d'avance pour votre aide

    -Vincent

  2. #2
    Membre chevronné
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2007
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Janvier 2007
    Messages : 489
    Par défaut
    Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    $marequete = mysql_query("SELECT Nom, Ville, Date FROM tatable ORDER BY Date desc LIMIT 10");
    while ($r= mysql_fetch_row($marequete)) 
    {
    echo $r[0].' à '.$r[1].' le '.$r[2].'<br>';
    }
    ?>

  3. #3
    Membre chevronné
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2007
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Janvier 2007
    Messages : 489
    Par défaut
    Ops le timestamp :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    $marequete = mysql_query("SELECT Nom, Ville, Date FROM tatable ORDER BY Date desc LIMIT 10");
    while ($r= mysql_fetch_row($marequete)) 
    {
    $date = date("Y-m-d", $r[2]);
    // et pour le formatage de ta date avec l'année en YY :
    $da=explode("-",$date);
    $year= substr($da[0], 2, 4);
    $date = "$da[2]/$da[1]/$year";
     
    echo $r[0].' à '.$r[1].' le '.$date.'<br>';
    }
    ?>

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 156
    Par défaut
    Merci pour ta réponse !

    Effectivement oui, si je fais ça je vais avoir (selon mon exemple) 4 résultats :

    John à paris le 18/05/10
    Nico à Lyon le 16/05/10
    nico à paris le 15/05/10
    john à lyon le 15/05/10


    Mais ce n'est pas ce que je recherche. Ce n'est pas le format date qui me pose problème mais le tri et le nombre de résultats.

    Je souhaiterais avoir uniquement, par personne, la dernière date de visite d'une ville.

    Par exemple, si john et nico vont toutes les jours dans une ville différente le resultat me donnera que :

    John à paris le 18/05/10
    Nico à Lyon le 16/05/10

  5. #5
    Membre chevronné
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2007
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Janvier 2007
    Messages : 489
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT Nom, Ville, Date FROM tatable GROUP BY ID ORDER BY Date desc LIMIT ...

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 156
    Par défaut
    Super, alors ça je crois bien que ça fonctionne merci

    Par contre... comment faire pour trier le résultat final ? Par exemple :

    John à paris le 18/05/10
    Nico à Lyon le 16/05/10
    marc à caen le 15/05/10
    eddy à lens le 14/05/10

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL-5.1] Requete très lente avec Order By et Limit
    Par dimainfo dans le forum Requêtes
    Réponses: 10
    Dernier message: 18/07/2013, 14h48
  2. JOIN ON avec ORDER et LIMIT
    Par xxkirastarothxx dans le forum Requêtes
    Réponses: 4
    Dernier message: 21/12/2009, 18h28
  3. Problème avec ORDER BY et GROUP BY
    Par palmafrique dans le forum Requêtes
    Réponses: 12
    Dernier message: 26/10/2009, 13h41
  4. Problème avec ORDER BY et LIMIT
    Par lex_22 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 21/07/2008, 20h03
  5. [SQL] count & group avec order étrange ?
    Par rduvrac dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 28/04/2008, 02h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo