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

ORM PHP Discussion :

requête pour calculer une somme [Doctrine]


Sujet :

ORM PHP

  1. #1
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    334
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 334
    Points : 73
    Points
    73
    Par défaut requête pour calculer une somme
    Bonjour,

    Je suis débutante en Doctrine et symfony et je ne sais pas comment écrire une requête en DQL pour récupérer la somme de quantités à partir de la table suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    livraisonArticle:
    PackageId
    ArticleId
    Nbr_pieces
    quantite_par_piece
    un package contient plusieurs articles (sur cette table on peut avoir plusieurs lignes avec un même PackageId mais avec des ArticleId différents), sachant qu'un article est un produit liquide, je voudrais calculer pour chaque package la quantité totale de tous les produits qu'il contient (pour un produit quantité = Nbr_pieces*quantite_par_piece)

    Autre question, à quel niveau du module "livraisonArticle" je peux intégrer cette requête: au niveau du controller (action "executeIndex" par ex)?

    Merci pour votre aide!!!

  2. #2
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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
    Points : 8 486
    Points
    8 486
    Par défaut
    La documentation pour les requêtes DQL et l'agrégation de résultat (somme, moyenne,...) ce trouve ici.

    Si tu n'y arrives pas (les premières ne sont pas simple), met ton shema.yml (ce que tu as posté n'est pas un shema valide) et la requête DQL que tu as créée.

    Autre question, à quel niveau du module "livraisonArticle" je peux intégrer cette requête: au niveau du controller (action "executeIndex" par ex)?
    C'est une bonne question qui est capable de faire débattre des spécialistes sur plusieurs pages de messages !

    Donc je te donne ma réponse pour ce qu'elle vaut.

    La théorie veux que tous ce qui a trait aux données soit dans le modèle (les objets dans lib/model/...). Donc créer là une méthode qui, avec les éventuelles paramètres donnés en entrée va retourner les données à ton contrôleur (qui lui va les envoyer au template)(jamais de communication directe entre le modèle et le vue (template).

    La pratique veux que, dans certains cas, pour des raisons pratiques ou d'allègement du code dans le modèle, ce type d'action (la requête) soit déléguée au contrôleur, après tous, il ne fait qu'utiliser un objet du modèle paramétrable...

    En conclusion, si la requête est utilisée deux fois ou plus, elle doit être dans le modèle, si non, a toi de voir...

  3. #3
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    334
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 334
    Points : 73
    Points
    73
    Par défaut
    Citation Envoyé par Michel Rotta Voir le message
    La documentation pour les requêtes DQL et l'agrégation de résultat (somme, moyenne,...) ce trouve ici.

    Si tu n'y arrives pas (les premières ne sont pas simple), met ton shema.yml (ce que tu as posté n'est pas un shema valide) et la requête DQL que tu as créée.

    C'est une bonne question qui est capable de faire débattre des spécialistes sur plusieurs pages de messages !

    Donc je te donne ma réponse pour ce qu'elle vaut.

    La théorie veux que tous ce qui a trait aux données soit dans le modèle (les objets dans lib/model/...). Donc créer là une méthode qui, avec les éventuelles paramètres donnés en entrée va retourner les données à ton contrôleur (qui lui va les envoyer au template)(jamais de communication directe entre le modèle et le vue (template).

    La pratique veux que, dans certains cas, pour des raisons pratiques ou d'allègement du code dans le modèle, ce type d'action (la requête) soit déléguée au contrôleur, après tous, il ne fait qu'utiliser un objet du modèle paramétrable...

    En conclusion, si la requête est utilisée deux fois ou plus, elle doit être dans le modèle, si non, a toi de voir...
    Merci pour ta réponse et pour le lien.
    j'ai galéré aujourd'hui pour essayer d'avancer pour DQL en cherchant sur le net.
    j'ai dû finalement insérer la requête au niveau du contrôleur, j'ai réussi à calculer la somme mais en fait là je bloque sur un point
    je voudrais calculer cette somme selon l'unité (g ou ml) de l'article.
    voilà ce que j'ai mis:

    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
     
     public function executeIndex(sfWebRequest $request)
      {
     
    $tab = array(1 => "g", 2 => "ml");
      	foreach ($tab as $cle=>$valeur)
      	{
      	$this->article_package = Doctrine_Core::getTable('ArticleIntegrePackage')
       ->createQuery('a')
      ->addSelect('package_id, nbr_pieces, quantite_par_piece, unite, SUM(nbr_pieces*quantite_par_piece) as somme') 
      ->where('a.unite = ?', $valeur)
     	->andWhere('a.Package_id = ?', 1)
    	  ->execute();
     
    	  }
    En fait, le problème c'est que j'ai pas le résultat de cette somme (quantité totale) en fonction des valeurs du tableau (g ou ml), ça m'affiche uniquement pour "ml"

  4. #4
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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
    Points : 8 486
    Points
    8 486
    Par défaut
    Le addSelect est select() en fait.

    Utilises les nom objet pour les objets dans le select précédés de a.
    (ex a.packageId)

    La valeur a récupérer se trouve dans somme.

    Essayes avec execute() de faire une hydratation en tableau ce qui devrait être plus simple.

  5. #5
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    334
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 334
    Points : 73
    Points
    73
    Par défaut
    Citation Envoyé par Michel Rotta Voir le message
    Le addSelect est select() en fait.

    Utilises les nom objet pour les objets dans le select précédés de a.
    (ex a.packageId)

    La valeur a récupérer se trouve dans somme.

    Essayes avec execute() de faire une hydratation en tableau ce qui devrait être plus simple.
    Merci
    je viens de changer le select et j'ai rajouté les a.
    Mais pour execute(), je sais pas du tout comment faire l'hydratation en tableau
    j'essaie de chercher sur le net, mais si tu peux me donner une piste, j'en serai reconnaissante

  6. #6
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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
    Points : 8 486
    Points
    8 486
    Par défaut
    La documentation est ici.

    la commande pour execute en tableau est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ->execute(array(), Doctrine_Core::HYDRATE_ARRAY);
    elle est un peu perdue dans la page.

    Les données sont plus simple à afficher, mais elle ne seront pas modifiable.

    Un var_dump sur ce résultat devrait donner une bonne idée de ce que doctrine à récupéré.

  7. #7
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    334
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 334
    Points : 73
    Points
    73
    Par défaut
    Je viens d'essayer ton code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ->execute(array(), Doctrine_Core::HYDRATE_ARRAY);
    mais ça marche pas
    En fait quand j'ai fait var_dump du résultat, je n'ai pas tout, ça m'affiche un seul résultat de l'unité "g".

    et sans le var_dump, j'ai une erreur au niveau de "indexSuccess.php" liée à la récupération de "articleId", je comprends pas pourquoi

  8. #8
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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
    Points : 8 486
    Points
    8 486
    Par défaut
    Regardes ton code, tu ne peux pas avoir un autre résultat...

    Tu as deux requêtes qui sont générées...

    Soit tu modifies le code pour faire une requête d'union, ce que je gère pas doctrine et beaucoup de SGBD.

    Soit tu crées deux tableaux de résultats que tu fusionnes.


    ...sans le var_dump, j'ai une erreur au niveau de "indexSuccess.php" liée à la récupération de "articleId"...
    Tu veux dire quoi par là ? Qu'avec un far_dump le code passe et sans il ne passe pas ?

  9. #9
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    334
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 334
    Points : 73
    Points
    73
    Par défaut
    Merci Michel pour ta réponse
    Par cette remarque, tu veux dire que doctrine gère ou pas les requêtes d'union?
    Soit tu modifies le code pour faire une requête d'union, ce que je gère pas doctrine et beaucoup de SGBD.
    Pour cette proposition, je vois pas comment..les 2 tableaux je les crée au niveau de "executeIndex" et je les fusionne où ?
    Soit tu crées deux tableaux de résultats que tu fusionnes.
    Pour le var_dump, là je viens de retester, finalement j'ai les 2 résultats qui s'affichent mais y a une erreur.

    voici le résultat:
    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
    19
    20
     
    array
      0 => 
        array
          'article_id' => string '15' (length=2)
          'package_id' => string '1' (length=1)
          'nbr_pieces' => string '10' (length=2)
          'quantite_par_piece' => string '3' (length=1)
          'unite' => string 'g' (length=1)
          'somme' => string '30' (length=2)
     
    array
      0 => 
        array
          'article_id' => string '1' (length=1)
          'package_id' => string '1' (length=1)
          'nbr_pieces' => string '4' (length=1)
          'quantite_par_piece' => string '20' (length=2)
          'unite' => string 'ml' (length=2)
          'somme' => string '320' (length=3)
    et voilà l'erreur affichée:

    Fatal error: Call to undefined method sfOutputEscaperArrayDecorator::getArticleId() in ....IndexSuccess.php

    voici le code de "IndexSuccess.php":

    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
     
     
    <?php foreach ($article_integre_packages as $article_integre_package): ?>
     
        <tr>
          <td><a href="<?php echo url_for('livraisonpackage/show?article_id='.$article_integre_package->getArticleId().'&article_id='.$article_integre_package->getPackageId()) ?>"><?php echo $article_integre_package->getId() ?></a></td>
          <td><?php echo $article_integre_package->getPackage()->getNom_package() ?></td> 
          <td><a href="<?php echo url_for('livraisonpackage/show?article_id='.$article_integre_package->getArticleId().'&article_id='.$article_integre_package->getPackageId()) ?>"><?php echo $article_integre_package->getArticleId() ?></a></td>
          <td><?php echo $article_integre_package->getArticle()->getNom_article() ?></td> 
          <td><?php echo $article_integre_package->getNbrPieces() ?></td>
          <td><?php echo $article_integre_package->getQuantiteParPiece() ?></td>
          <td><?php echo $article_integre_package->getUnite() ?></td>
          <td><?php echo 'qte totale: '.$article_integre_package->getSomme().$article_integre_package->getUnite() ?></td>
     
    	  </tr>
        <?php endforeach; ?>

  10. #10
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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
    Points : 8 486
    Points
    8 486
    Par défaut
    Doctrine ne gère pas les requêtes d'union.

    Tu as une boucle qui passe deux fois et génère deux tableaux. Il convient donc d'éventuellement les fusionner avant de les passer au template, quoi que, ici, il semblerait plus intéressant de les conserver indépendants.

    Tu as des tableaux qui sont envoyé au template, plus des collections d'objet. Il n'est donc plus possible d'utiliser un geter mais il faut utiliser la syntaxe array.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo $article_integre_package->getNbrPieces() ?>
    va devenir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo $article_integre_package['NbrPieces'] ?>
    A noter que cette syntaxe est compatible avec le code objet, donc, si tu reviens en objet, elle n'est plus à modifier.

    Dernière chose, a priori tes requêtes ne retournes qu'un enregistrement, il peut être plus intéressant et simple de ne récupérer qu'un enregistrement et non pas un tableau d'enregistrements ne comportant qu'une entrée. Il conviendra, alors, de remplacer "execute()" par "fechtOne()".

  11. #11
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    334
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 334
    Points : 73
    Points
    73
    Par défaut
    T'as bien raison, c'était les getter qui fonctionnaient pas parce qu'il ne s'agit plus d'objets.
    j'ai modifié mon code en remettant dans le template:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo $article_integre_package['nbr_pieces']....
    et là mon template m'affiche un seul résultat

    Quand je fais un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var_dump($article_integre_packages)
    je n'ai qu'un seul enregistrement. Mais dans le controller, après l'exécution de la requête le var_dump m'affiche bien les deux

    Tu as une boucle qui passe deux fois et génère deux tableaux. Il convient donc d'éventuellement les fusionner avant de les passer au template, quoi que, ici, il semblerait plus intéressant de les conserver indépendants.
    Je vois pas vraiment comment je peux récupérer les 2 tableaux dans le template

  12. #12
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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
    Points : 8 486
    Points
    8 486
    Par défaut
    Le plus simple serait

    dans ta boucle dans le contrôleur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $this->tab = array(...);
     
    foreach ($this->tab as $cle=>$valeur)
    {
        //création du querry
        $this->article_package[$cle] = $q->execute(...);
    }
    et dans le template
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php foreach ( $tab as $cle=>$valeur ) : ?>
        ...
        <?php echo $article_package[$cle]['NbrPieces'] ?>
        ...
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        <?php echo $article_package[1]['NbrPieces'] ?>
    Il y a de nombreuses variantes possibles. Avec ce code tu peux factoriser ton template aussi.

    Tu peux aussi utiliser les possibilités de PHP de faire dépendre un nom de variable d'une autre variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $varName = "article_package . '_' .$valeur;
    $this->$varName = $q->execute(...);
    et dans le template
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo $article_package_g['NbrPieces'] ?>
    Je ne sais pas ce qui est le mieux pour toi, fais ton choix...

  13. #13
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    334
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 334
    Points : 73
    Points
    73
    Par défaut
    Merci Michel!!
    Je suis entrain d'appliquer tes propositions, mais en fait j'ai pas de $q dans ma requête, voilà ce que j'ai:

    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
     
    $this->tab = array(1 => "g", 2 => "ml");
      	foreach ($this->tab as $cle=>$valeur)
      	{ 
    	//My query  
      $this->article_packages = Doctrine_Core::getTable('ArticleIntegrePackage')
      	->createQuery('a')
      ->select('a.package_id, a.nbr_pieces, a.quantite_par_piece, a.unite, SUM(nbr_pieces*quantite_par_piece) as somme') 
      ->where('a.unite = ?', $valeur)
     	->andWhere('a.Package_id = ?', 1)
     	->execute(array(), Doctrine_Core::HYDRATE_ARRAY);
     
      	//$this->article_package[$cle] = $q->execute(...);
     
      	$this->article_package[$cle] = $this->article_packages->execute(array(), Doctrine_Core::HYDRATE_ARRAY);
      	}
    Evidemment j'ai une erreur avec ça, par quoi dois-je remplacer le $q?

  14. #14
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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
    Points : 8 486
    Points
    8 486
    Par défaut


    $q est, par convention dans symfony/doctrine la requête en court.

    Donc tu remplaces par la requête.

  15. #15
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    334
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 334
    Points : 73
    Points
    73
    Par défaut
    Citation Envoyé par Michel Rotta Voir le message


    $q est, par convention dans symfony/doctrine la requête en court.

    Donc tu remplaces par la requête.
    oui ma question était un peu bebête
    en fait, j'arrive plus à réfléchir et je sais toujours pas par quoi remplacer le $q, dans ma requête j'ai "$this->article_packages" et ça marche pas avec ça

  16. #16
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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
    Points : 8 486
    Points
    8 486
    Par défaut
    La requête, pas la variable résultat !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $this->tab = array(1 => "g", 2 => "ml");
    foreach ($this->tab as $cle=>$valeur)
    { 
        $this->article_packages[$cle] = Doctrine_Core::getTable('ArticleIntegrePackage')
                  ->createQuery('a')
                  ->select('a.package_id, a.nbr_pieces, a.quantite_par_piece, a.unite, SUM(nbr_pieces*quantite_par_piece) as somme') 
                  ->where('a.unite = ?', $valeur)
                  ->andWhere('a.Package_id = ?', 1)
                  ->execute(array(), Doctrine_Core::HYDRATE_ARRAY);
    }

  17. #17
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    334
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 334
    Points : 73
    Points
    73
    Par défaut
    Merci encore!!
    j'ai modifié comme tu m'as dit ma requête au niveau du controller:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $this->tab = array(1 => "g", 2 => "ml");
    foreach ($this->tab as $cle=>$valeur)
    { 
        $this->article_packages[$cle] = Doctrine_Core::getTable('ArticleIntegrePackage')
    ...}
    mais il y a une erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Indirect modification of overloaded property livraisonpackageActions::$article_packages has no effect in ......line ( "$this->article_packages[$cle] = Doctrine_Core::getTable('ArticleIntegrePackage')"

  18. #18
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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
    Points : 8 486
    Points
    8 486
    Par défaut
    Essaye de remplacer cette nouvelle variable pour vérifier si c'est son allocation qui génère l'erreur.

  19. #19
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    334
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 334
    Points : 73
    Points
    73
    Par défaut
    Citation Envoyé par Michel Rotta Voir le message
    Essaye de remplacer cette nouvelle variable pour vérifier si c'est son allocation qui génère l'erreur.
    Je la remplace par quoi, par n'importe quelle autre variable?

  20. #20
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    334
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 334
    Points : 73
    Points
    73
    Par défaut
    J'essaie toujours de comprendre pourquoi je récupère pas les sommes selon les 2 unités.
    Quand je fais un var_dump de "article_packages" au niveau de la requête du controller "executeIndex" j'ai ça:

    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
    19
    20
     
    array
      0 => 
        array
          'article_id' => string '1' (length=1)
          'package_id' => string '1' (length=1)
          'nbr_pieces' => string '4' (length=1)
          'quantite_par_piece' => string '20' (length=2)
          'unite' => string 'ml' (length=2)
          'somme' => string '320' (length=3)
     
    array
      0 => 
        array
          'article_id' => string '15' (length=2)
          'package_id' => string '1' (length=1)
          'nbr_pieces' => string '10' (length=2)
          'quantite_par_piece' => string '3' (length=1)
          'unite' => string 'g' (length=1)
          'somme' => string '30' (length=2)
    là je vois que pour l'array l'index est le même c'est "0". est-ce que ça veut dire qu'à l'exécution de la requête, le 1er résultat est écrasé?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 13
    Dernier message: 18/06/2011, 14h01
  2. [MySQL] Calculer une somme pour chaque ligne et colonne d'un tableau
    Par baggie dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 21/05/2010, 09h55
  3. Requête sql pour afficher une somme
    Par nora2311 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 12/06/2009, 16h47
  4. Réponses: 5
    Dernier message: 26/11/2008, 20h05

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