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 :

Requête mysql MAX()


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Designer API
    Inscrit en
    Octobre 2003
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Designer API

    Informations forums :
    Inscription : Octobre 2003
    Messages : 280
    Par défaut Requête mysql MAX()
    Bonjour à tous,

    je n'arrive pas à faire la bonne requête. J'ai une table `stage` avec un champs date et une table `fairestage` qui fais la liaison entre le stagiaire et ses stages.

    J'aimerais récupérer le stage le plus récent d'un stagiaire X
    J'ai une vieille version de mysql hélas, je ne peux pas faire directement des sous-requête

    Voilà ce que j'ai fais pour l'instant sur l'id :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    $sql = "SELECT MAX(idStage) FROM `fairestage`WHERE idStagiaire = '".$_SESSION['user']."'";
                        list($maxIdStage) = mysql_fetch_array(mysql_query($sql));
     
                        $sql = "SELECT
                                      `stage`.idStage,
                                      date_format(dateStage, '%d/%m/%Y') AS dateStage,
                                      `lieu`.cp,
                                      `lieu`.ville,
                                      `stage`.prix,
                                      `typestage`.libelle
                                FROM
                                      `stage`,`fairestage`,`typestage`,`lieu`
                                WHERE
                                      idStagiaire = '".$_SESSION['user']."'
                                  AND stage.idStage = fairestage.idStage
                                  AND `fairestage`.idType = `typestage`.idType
                                  AND `stage`.idLieu = `lieu`.idLieu
                                  AND `stage`.idStage = '".$maxIdStage."'";
    En gros, comment récupérer l'idStage correspond à MAX(dateStage)

    j'ai trouvé une solution, je contourne le problème ^^

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT
         `stage`.idStage
     FROM
         `stage`, `fairestage` 
    WHERE
         `fairestage`.idStage = `stage`.idStage
          AND `fairestage`.idStagiaire = '".$_SESSION['user']."'
    ORDER BY
         dateStage DESC 
    LIMIT 0, 1


    Peut-on utiliser un max() dans un where ? genre maColonne = MAX(....)

  2. #2
    Membre éclairé Avatar de sami_c
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Mai 2002
    Messages
    764
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 764
    Par défaut
    tu ne peux pas utiliser MAX() dans un WHERE !
    sinon pourquoi tu ne cherche pas le stage le plus récent en se basant sur la date !! Tu as bien une colonne dateStage non ?
    Tu peux donc faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select * from stage
    where id_stagiere=$id_stagiere
    order by dateStage DESC
    limit 1
    order by dateStage DESC : on aura le stage le plus récent en premier
    limit 1 : la requete peut retourner plusieurs stage, c'est le dernier qui nous interesse

Discussions similaires

  1. Formulation d'une requête mysql avec max & group by
    Par Didier100 dans le forum Requêtes
    Réponses: 4
    Dernier message: 23/09/2010, 16h37
  2. Réponses: 2
    Dernier message: 26/03/2008, 08h49
  3. Arrêt de l'exécution d'une requête MySQL dans DELPHI.
    Par joelmarc dans le forum Bases de données
    Réponses: 9
    Dernier message: 11/10/2004, 16h11
  4. surcharge de requête MySQL
    Par simoryl dans le forum Requêtes
    Réponses: 4
    Dernier message: 15/06/2004, 10h43
  5. requête mysql sous php
    Par remi59 dans le forum Débuter
    Réponses: 9
    Dernier message: 03/07/2003, 10h39

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