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

Symfony PHP Discussion :

Calculer le maximum d'une colonne [1.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2009
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 78
    Par défaut Calculer le maximum d'une colonne
    Bonjour à tous,

    J'utilise symfony 1.2 et Propel comme ORM. J'ai voulu calculer le max d'un colonne donnée et j'ai trouvé ce code. Cependant, j'ai pas bien compris son fonctionnement. Pourriez vous répondre à ces quelques questions.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $c1 = new Criteria ();
    $c1->addAsColumn('max_col', 'MAX ('.MtngRubriquePeer::RUBRIQUE_ID.')');
    $c1->add(MtngRubriquePeer::RUBRIQUE_ID, 0, Criteria::NOT_EQUAL);
    $results = MtngRubriquePeer::doSelectStmt( $c1 );
    foreach ($results as $result) echo $result['max_col'];
    1- Est ce que la fonction MAX est déja prédifini en propel.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $c1->addAsColumn('max_col', 'MAX ('.MtngRubriquePeer::RUBRIQUE_ID.')');
    2- Et qu'est ce que veut dire le "doSelectStmt".
    3- Et normalement on aura comme résultat un seul enregistrement, je ne comprends pas l'utilité de la boucle foreach?

    Merci à vous.

  2. #2
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Il manque beaucoup d'information pour donner une réponse fiable. Donc la réponse ici sera plus ou moins fiable.

    1) la fonction MAX est une fonction SQL.
    2)doSelectSmnt est une méthode statique de l'objet MtngRubriquePeer. Elle est en fait définie dans un des parents PHP5PeerBuilder. Elle permet de récupérer les données les données, un peu comme le doSelect, mais permet d'obtenir des données brute et de mettre en place sa propre hydratation. Le retour est toujours sous forme de tableau, même si l'enregistrement retourné est unique, ce qui explique
    3) le fait qu'il faut un foreach pour parcourir le tableau.


    Maintenant, il faudrait plus d'information sur le contexte d'utilisation du code si on veut pourvoir approfondir la chose.

    Accessoirement, je te recommande de passer en version 1.3 de symfony, si tu n'utilises pas le plugin permettant la compatibilité avec la 1.0, tu peux même essayer de passer en 1.4 et de vérifier que cela tourne (sur une version de développement bien sur... ! )

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2009
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 78
    Par défaut
    Bonjour,
    Merci pour votre réponse, maintenant c'est nettement plus clair pour moi.
    En fait j'ai essayé ce code et ca marche,c'est juste que j'avais pas compris le doSelectSmnt et son fonctionnement.

    Donc si j'ai bien compris ,on peut utiliser des fonctions de sql dans une requete propel.

    Je débute en symfony et propel alors

    Merci encore

  4. #4
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    La réponse est oui, heureusement.

    Même si, parfois, on risque de perdre l'indépendance avec la base de données.

    Par contre, si tu commences, je vais t'inciter fortement à passer en 1.4 et sous doctrine...

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2009
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 78
    Par défaut
    Ok trés bien, en fait je travaille avec une équipe et je suis nouvelle et on m'a directement affecté dans un projet sous symfony 1.2 et sous propel. J'ai pas vraiment le choix pour changer.

    Mais pour me former sur symfony, j'ai directement suivi le cours sur jobeet en 1.4 et sous doctrine alors j'essaye de m'adapter aux différentes situations

    Merci encore

  6. #6
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Il existe le même cours sous propel...

    Et tu peux, de ma part, recommander le passage en 1.3 qui ne devrait pas gêner l'application et corriger de nombreux bug et passer sur une version plus récente du moteur propel.

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

Discussions similaires

  1. Calculer la valeur maximum d'une colonne
    Par chip_2008 dans le forum Fortran
    Réponses: 2
    Dernier message: 19/12/2008, 11h10
  2. Calcul au niveau d'une colonne d'un DBGrid
    Par soror dans le forum Débuter
    Réponses: 6
    Dernier message: 21/08/2007, 07h51
  3. [Tableaux] calcul de lignes dans une colonne
    Par carmen256 dans le forum Langage
    Réponses: 6
    Dernier message: 24/07/2007, 19h31
  4. comment calculer la somme d'une colonne d'un dbgrid
    Par kirty dans le forum Bases de données
    Réponses: 4
    Dernier message: 24/07/2006, 20h55

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