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

Zend_Db PHP Discussion :

Comment faire un select max()


Sujet :

Zend_Db PHP

  1. #1
    Membre régulier

    Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2006
    Messages
    164
    Points
    75
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 164
    Points : 75
    Par défaut Comment faire un select max()
    Bonjour,

    Depuis hier je tourne en rond et je ne trouve pas la solution pour extraire la valeur maximale d'un champ
    Code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select max(champ) from table
    en utilisant zend framework.

    Est-ce que quelqu'un pourrait m'expliquer la procédure ?


    De plus, je souhaiterai savoir s'il est possible de distinguer le clic sur un bouton submit du clic sur un bouton reset quand on entre dans un controller ?
    (un truc du type isPost).

    Merci

  2. #2
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Points
    3 212
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Par défaut
    Bonjour

    Pour utilises des fonctions comme MAX(), COUNT(), SUM() sur les champs d'une table mysql il faut que tu aies une clause group by dans ta requete SQL

    Explications sur le group by

  3. #3
    Membre régulier

    Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2006
    Messages
    164
    Points
    75
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 164
    Points : 75
    Par défaut
    ok mais en fait mon problème c'est surtout est-ce qu'il y a une équivalence sous zend pour faire ce type de requête sinon comment exécuter une requête classique à partir du zend framework sachant que quand je fais un mysql_query, il me dit qu'il ne connait pas cette fonction

  4. #4
    Membre actif

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    171
    Points
    218
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 171
    Points : 218
    Par défaut
    Bonjour,

    Zend framework utilise l'API PDO pour l'acces aux bases de données.

    doc vers Zend_Db

  5. #5
    Membre régulier

    Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2006
    Messages
    164
    Points
    75
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 164
    Points : 75
    Par défaut
    Merci, je vais aller jeter un oeil

    Est-ce qu'il existe une fonction type fetchAll() pour extraire le max ?

  6. #6
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Points
    29 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 986
    Par défaut
    Salut

    Je sais que l'approche ORM est alléchante, cependant elle n'est pas toujours adaptée. Parfois il vaut mieux envoyer une requête brute, et je pense que c'est le cas ici.

    Fais une requête normale et récupère le résultat avec fetchAll, cela devrait suffire

  7. #7
    Membre régulier

    Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2006
    Messages
    164
    Points
    75
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 164
    Points : 75
    Par défaut
    Je sais pas si c'est correct mais j'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    // Récupération des infos de la base stockées dans la registre
    $database = Zend_Registry::get("database");
     
    $select=$database->select();
     
    // Sélection du max dans la table t_site
    $select->from('t_site', 'max(pk_t_site)');
     
    // Récupération de la donnée sélectionnée
    $max = $database->fetchOne($select);
    et ça me retourne ce que je veux.

    Merci à tous pour tout

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

Discussions similaires

  1. Comment faire un Select FOR UPDATE
    Par jakcam dans le forum JDBC
    Réponses: 4
    Dernier message: 03/11/2008, 19h08
  2. comment faire un select imbriqué
    Par Wedge3D dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 05/02/2008, 12h47
  3. Comment faire un Select avec les formulaires sous Access?
    Par kesamba dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 21/11/2007, 11h57
  4. Réponses: 1
    Dernier message: 26/01/2007, 21h29
  5. Réponses: 2
    Dernier message: 26/10/2006, 18h52

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