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 :

Sélectionner le dernier enregistrement de ma table [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é
    Femme Profil pro
    Intégratrice Web
    Inscrit en
    Mai 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Intégratrice Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 64
    Par défaut Sélectionner le dernier enregistrement de ma table
    Bonjour

    J'ai recherché sur le forum et sur gg une solution mais il n'y a rien qui fonctionne...

    Je veux récupérer le dernier enregistrement d'une table. La solution qui m'affiche quelque chose est :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT MAX(a.id) AS id, a.id_auction, a.id_customer, a.price, a.date
    FROM ps_invertus_auction_blind a

    Seulement ça m'affiche le bon id (le dernier) mais le reste des infos ne sont pas bonnes (il s'agit de la première ligne)...

    Je n'ai peut-être pas tout compris à l'utilisation de cette requête
    Merci d'avance

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    Tu mélanges une fonction de groupage (MAX) avec des colonnes sans groupage et sans GROUP BY dans la requête. Du coup, comme MySQL est mauvais et accepte cette requête alors qu'elle est fausse, il donne des résultats faux !
    Pour en savoir plus, un petit cours de SQLPro.

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT id, id_auction, id_customer, price, `date`
    FROM ps_invertus_auction_blind
    WHERE id = 
    (
    	SELECT MAX(id)
    	FROM ps_invertus_auction_blind
    )

    Au passage, remarque aussi que j'ai entouré la colonne mal nommée 'date' par des apostrophes inversées car date est un mot réservé du langage SQL.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre confirmé
    Femme Profil pro
    Intégratrice Web
    Inscrit en
    Mai 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Intégratrice Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 64
    Par défaut
    Ok, merci.
    J'avais pourtant trouvée cette requête sur le forum et qui devait permettre de récupérer le dernier enregistrement de la base...


    Par contre, mon var_dump me donne ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    array(1) { [0]=> array(1) { ["id_customer"]=> string(2) "26" } }
    Comment je fais pour accéder au 2ème tableau (sachant que je suis sous Presta et donc Smarty)

    Avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {$last_customer->id_customer}
    il me renvoi rien

  4. #4
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    Commence par donner ta vraie requête.

    Ensuite, "Presta et donc Smarty", moi pas connaître et on sort du forum MySQL pour aller dans PHP&MySQL. C'est de l'exploitation et de la présentation des données retournées par la requête, ce n'est plus du SQL.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Membre confirmé
    Femme Profil pro
    Intégratrice Web
    Inscrit en
    Mai 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Intégratrice Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 64
    Par défaut
    Voici ma requête :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT a.id_customer
    FROM ps_invertus_auction_blind a
    WHERE a.id = (
    	SELECT MAX(a.id)
    	FROM ps_invertus_auction_blind a
    )


    Citation Envoyé par CinePhil Voir le message
    Ensuite, "Presta et donc Smarty", moi pas connaître et on sort du forum MySQL pour aller dans PHP&MySQL. C'est de l'exploitation et de la présentation des données retournées par la requête, ce n'est plus du SQL.
    Je parle de Prestashop. Je vais poser la question sur leur forum.

    Merci pour ton aide !

  6. #6
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    C'est bien ce que je pensais : comme tu ne sélectionnes que a.id_customer, ton var_dump ne retourne que id_customer ; normal !

    Regarde ma requête :
    Citation Envoyé par CinéPhil
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT id, id_auction, id_customer, price, `date`
    FROM ps_invertus_auction_blind
    WHERE id = 
    (
    	SELECT MAX(id)
    	FROM ps_invertus_auction_blind
    )
    Un var_dump sur le résultat de cette requête donnera toutes les colonnes du SELECT.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

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

Discussions similaires

  1. PB Sélectionner le dernier enregistrement
    Par lionelvz dans le forum Access
    Réponses: 23
    Dernier message: 16/06/2006, 16h29
  2. comment rechercher les derniers enregistrement d'une table ?
    Par hornetboy dans le forum Langage SQL
    Réponses: 4
    Dernier message: 28/09/2005, 09h13
  3. Récupérer dernier enregistrement d'une table?
    Par Invité dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 19/01/2004, 11h38
  4. Réponses: 10
    Dernier message: 01/08/2003, 13h45
  5. Trouver le dernier enregistrement d'une table
    Par remi59 dans le forum Requêtes
    Réponses: 4
    Dernier message: 11/03/2003, 14h54

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