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 :

Comment trier les données dans un tableau


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Août 2007
    Messages : 142
    Par défaut Comment trier les données dans un tableau
    Bonsoir à tous,

    Voila j'ai des données provenant de ma base de donnée sous cette forme:
    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
    array (size=3)
      0 => 
        object(Order_model)[27]
          public 'firstname' => string 'Deeptha' (length=7)
          public 'lastname' => string 'Wickrema' (length=8)
          public 'id_customer' => string '2' (length=1)
          public 'id_order' => string '3' (length=1)
          public 'date_add' => string '2013-12-08 05:10:26' (length=19)
          public 'product_name' => string 'iPod shuffle - Couleur : Vert' (length=29)
      1 => 
        object(Order_model)[26]
          public 'firstname' => string 'Deeptha' (length=7)
          public 'lastname' => string 'Wickrema' (length=8)
          public 'id_customer' => string '2' (length=1)
          public 'id_order' => string '2' (length=1)
          public 'date_add' => string '2013-12-08 05:09:39' (length=19)
          public 'product_name' => string 'iPod Nano - Capacité : 16Go, Couleur : Noir' (length=44)
      2 => 
        object(Order_model)[28]
          public 'firstname' => string 'Deeptha' (length=7)
          public 'lastname' => string 'Wickrema' (length=8)
          public 'id_customer' => string '2' (length=1)
          public 'id_order' => string '2' (length=1)
          public 'date_add' => string '2013-12-08 05:09:39' (length=19)
          public 'product_name' => string 'iPod touch - Capacité : 8Go' (length=28)
    Comme vous pouvez le constatez parfois il se peut que le client commande plusieurs produits appartenant a la même commande, c'est pour cela que le id_order = 2 apparaît deux fois de suite.

    Ce que je souhaiterai c'est recréer une représentation des données sous cette forme:
    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
    0 => 
        object(Order_model)[27]
          public 'firstname' => string 'Deeptha' (length=7)
          public 'lastname' => string 'Wickrema' (length=8)
          public 'id_customer' => string '2' (length=1)
          public 'id_order' => string '3' (length=1)
          public 'date_add' => string '2013-12-08 05:10:26' (length=19)
          public 'product_name' => string 'iPod shuffle - Couleur : Vert' (length=29)
    
    
      1 => 
        object(Order_model)[26]
          public 'firstname' => string 'Deeptha' (length=7)
          public 'lastname' => string 'Wickrema' (length=8)
          public 'id_customer' => string '2' (length=1)
          public 'id_order' => string '2' (length=1)
          public 'date_add' => string '2013-12-08 05:09:39' (length=19)
          public 'product_name' => string 'iPod Nano - Capacité : 16Go, Couleur : Noir' (length=44)
          public 'product_name' => string 'iPod touch - Capacité : 8Go' (length=28)
    Je voudrais simplement ajouter chaque nom de produit de nouveau produit portant le même id_order.

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    ce n'est pas possible en l'état.
    Dans ton code product_name étant de type string ne pourra compiler tous les articles commandés.
    Pour ce faire, tu devrais plutôt utiliser un tableau et factoriser les données : une même commande aura toujours les mêmes informations (id, client, date...) pas la peine de dupliquer tout ça en autant de fois que d'articles commandés.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Août 2007
    Messages : 142
    Par défaut
    Est ce que je dois changer le type de donnée, c'est a dire avoir un type tableau plutôt qu'objet?

  4. #4
    Membre expérimenté
    Profil pro
    Responsable de service informatique
    Inscrit en
    Août 2006
    Messages
    174
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 174
    Par défaut
    Bonjour,

    Quelle est la structure de tes tables ?

    J'ai tendance à penser qu'il n'y a pas de table lignes_commandes ?

    Natso

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Août 2007
    Messages : 142
    Par défaut
    Bonjour,

    Alors voici la représentation merise de mes 3 tables concernant la partie commande:



    Voici ma requête SQL:

    Code sql : 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
    SELECT 
        `o`.`id_order`,
        `c`.`firstname`,
        `c`.`lastname`,
        `o`.`id_customer`,
        `o`.`date_add`,
        `od`.`product_name`
    FROM
        (`pss_orders` o)
            LEFT JOIN
        `pss_order_detail` od ON `od`.`id_order` = `o`.`id_order`
            LEFT JOIN
        `pss_customer` c ON `c`.`id_customer` = `o`.`id_customer`
    WHERE
        `o`.`id_customer` = 2
            AND `o`.`id_lang` = 1

    Je fait 2 jointure sur deux tables pss_order_detail et pss_customer.

    Cette requête lorsque je l'exécute sur MySQLlWorkbench j'ai ces resultats:


  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Août 2007
    Messages : 142
    Par défaut
    Bonjour,

    Est ce que çà serait pas mieux si je faisait ma requête en deux étapes:

    1- je fait une requête pour avoir la liste des commandes

    2- une autre requête pour avoir la liste des produits associé aux commandes

    De ce fait je pourrais combiner le résultat de ma deuxième requête afin de créer mon tableau.

Discussions similaires

  1. [DisplayTag] Problème pour trier les dates dans un tableau
    Par Pascale38 dans le forum Taglibs
    Réponses: 13
    Dernier message: 01/09/2006, 09h58
  2. Réponses: 13
    Dernier message: 18/01/2006, 12h51
  3. Trier les données dans 1 tableau par ordre décroissant
    Par Blunet dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 23/11/2005, 09h56
  4. Réponses: 3
    Dernier message: 18/10/2005, 13h43
  5. trier les données dans le cache ??
    Par psyco2604 dans le forum XSL/XSLT/XPATH
    Réponses: 31
    Dernier message: 10/06/2003, 10h03

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