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

Langage PHP Discussion :

tableau d'objet PHP


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2014
    Messages : 20
    Points : 14
    Points
    14
    Par défaut tableau d'objet PHP
    Bonjour a tous et toutes.

    je viens a vous avec un problème un peu particulier...

    voila le cas:

    j'ai une classe products :
    qui a seteur, geteur, constructeur etc etc...

    je dois récupérer une liste de produits dans ma base de donnée.

    je récupère ca, je stocke chacun de ces objet dans un tableau,
    je passe mon tableau dans une variable de session pour que ma vue puisse l'afficher...
    sauf que...
    si j'ai dans ma liste, plusieurs objet identique, style 3 boite de préservatifs, j'affiche les objet les un apres les autres.

    style 3 fois 1 boite de préservatif
    j'aurais préférer voir :
    une fois 3 boites de préservatifs....

    en gros faire un comptage de chaque produit de ma liste pour l'afficher une seule fois...

    voila j’espère avoir été le plus clair possible...

    si quelqu'un a un idée!!!

    merki a tous

  2. #2
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Sans code, ça va être difficile de t'aider mais déjà tu peux faire une sélection en comptant dans ta bdd en utilisant conjointement COUNt(*) et GROUP BY
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2014
    Messages : 20
    Points : 14
    Points
    14
    Par défaut
    merci pour la réponse...

    j'ai déjà essayer avec le order by et count mais le order by tri et le count compte

    je colle un bout de mon code (classe bdd)

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
     public function GetListeProduits($datede, $datea)
        {
            $sql = "SELECT id_order, id_lang, module, conversion_rate, total_shipping_tax_incl, date_add, invoice_date
            FROM ps_orders
            WHERE current_state = '4'
            AND invoice_date >= '".$datede."'
            AND invoice_date <= '".$datea."'";
            $bdd = $this->connectBDD();
            $reponse = $bdd->query($sql);
            $listeOrders = array();
            while ($donnes=$reponse->fetch())
            {
                $order = new order();
                $id = $donnes['id_order'];
                $order->SetId_order($id);
                $order->SetDate_add($donnes['invoice_date']);
                $order->SetPlace($donnes['module']);
                $order->SetConversion($donnes['conversion_rate']);
                $order->SetTotal_shipping($donnes['total_shipping_tax_incl']);
                $listeproduit = $this->GetProducts($id);
                $order->SetListe_products($listeproduit);
                $order->SetLang($donnes['id_lang']);
                $order->SetDatea($datea);
                $order->SetDatede($datede);
                array_push($listeOrders, $order);
            }
            return $listeOrders;
        }
     
        public function GetProducts($idOrder)
        {
            $sql = "SELECT product_id, product_name, product_quantity, total_price_tax_incl
            FROM ps_order_detail
            WHERE id_order = '".$idOrder."'
            ORDER BY id_order";
            $bdd1 = $this->connectBDD();
            $reponse = $bdd1->query($sql);
            $produits = array();
            while ($donnes=$reponse->fetch())
            {
                $produit = new products();
                $produit->SetNom($donnes['product_name']);
                $id = $donnes['product_id'];
                $produit->SetId_product($id);
                $produit->SetQte($donnes['product_quantity']);
                $produit->SetPrix($donnes['total_price_tax_incl']);
                $produit->SetEan13($this->GetEan($id));
                array_push($produits, $produit);
            }
            return $produits;
        }
     
        public function GetEan($id)
        {
            $sql = "SELECT ean13 FROM ps_product
                    WHERE id_product = '".$id."'";
            $bdd2 = $this->connectBDD();
            $reponse = $bdd2->query($sql);
            while ($donnes=$reponse->fetch())
            {
                $ean = $donnes['ean13'];
                return $ean;
            }
        }
    je récupère donc un objet order qui contient une liste de products.

    ca a change depuis hier.
    hier je récupérais tout avec une seule requête sql avec des inner join mais au final j'avais des produits en double.

    je sais toujours pas comment je vais faire pour compter les produits
    en gros le comptage serait combien de fois j'ai vendu l'objet x, a quel prix...
    combien de fois j'ai vendu l'objet y, a quel prix...

    etc, etc

    encore merci

  4. #4
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2014
    Messages : 20
    Points : 14
    Points
    14
    Par défaut
    apres j'ai eu une autre idée...
    c'est plus facile a trier dans un tableau (array)

    donc voila mon contrôleur...

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
     
    <?php
    /**
     * Created by PhpStorm.
     * User: jean
     * Date: 01/10/2014
     * Time: 13:52
     */
    session_start();
    include_once "../classes/products.php";
    include_once "../classes/bdd.php";
    ?>
        <link rel="stylesheet" type="text/css" href="../css/style.css"/>
        <script type="text/javascript" src="../js/scripts.js"></script>
        <script type="text/javascript" src="../js/jquery.js"></script>
    <?php
    if (isset($_GET['datede'])&&(isset($_GET['datea'])))
    {
        $datede = $_GET['datede'];
        $datea = $_GET['datea'];
        $datede = $datede." 00:00:01";
        $datea = $datea." 23:59:59";
        $bdd = new bdd();
        $listeproduit = array();
        $listeproduit = $bdd->GetListeProduits($datede, $datea);
        $liste2 = array('place', 'id', 'shipping', 'date', 'lang', 'idprod', 'nom', 'qte', 'prix', 'ean');
        foreach ($listeproduit as $order)
        {
            $place = $order->GetPlace();
            $idOrder = $order->GetId_order();
            $port = $order->GetTotal_shipping();
            $date = $order->GetDate_add();
            $date = date_create($date);
            $date = date_format($date, "d/m/y");
            $datede = $order->GetDatede();
            $datede = date_create($datede);
            $datede = date_format($datede, "d/m/y");
            $datea = $order->GetDatea();
            $datea = date_create($datea);
            $datea = date_format($datea, "d/m/y");
            $lang = $order->GetLang();
            $listeprod = array();
            $listeprod = $order->GetListeproducts();
            foreach ($listeprod as $prod)
            {
                $id = $prod->GetId_product();
                $nom = $prod->GetNom();
                $quant = $prod->GetQte();
                $prix = $prod->GetPrix();
                $ean = $prod->GetEan13();
                $liste2['place']=$place;
                $liste2['id']=$idOrder;
                $liste2['shipping']=$port;
                $liste2['date']=$date;
                $liste2['lang']=$lang;
                $liste2['idprod']=$id;
                $liste2['nom']=$nom;
                $liste2['qte']=$quant;
                $liste2['prix']=$prix;
                $liste2['ean']=$ean;
            }
        }
        $_SESSION['produits']=serialize($liste2);
    }
    else
    {
        echo "<h1>pas de valeurs</h1>";
    }
    mais j'arrive plus a lire mon tableau dans ma vue???

    merdouille de merdouille

Discussions similaires

  1. Réponses: 5
    Dernier message: 19/03/2014, 16h51
  2. Tableau d'objets
    Par moulefrite dans le forum MFC
    Réponses: 7
    Dernier message: 15/06/2004, 14h14
  3. Sauvegarde / Chargement d'un tableau d'objets
    Par Naruto dans le forum Langage
    Réponses: 3
    Dernier message: 18/05/2004, 14h34
  4. [VB6]Tableau d'objet withevents
    Par soazig dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 13/02/2004, 19h44
  5. [VB6] [Syntaxe] Fonction renvoyant un tableau d'objets
    Par Troopers dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 18/10/2002, 15h33

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