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

HTML Discussion :

Changer l'orientation d'une colonne d'un tableau


Sujet :

HTML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté

    Profil pro
    En reconversion
    Inscrit en
    Novembre 2007
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Novembre 2007
    Messages : 180
    Par défaut Changer l'orientation d'une colonne d'un tableau
    Bonjour,
    Je cherche à savoir si je vais pouvoir aisément changer l'orientation d'une colonne d'un tableau pour le passer à plusieurs dimensions.

    Imaginez à l'origine un tableau avec les éléments suivants en colonne :
    "Type de produit", "Produit", "Année", "Semaine", "Chiffre d'affaires".

    Les années et les semaines apparaissent en ligne et je veux au contraire les faire apparaitre en colonne pour avoir au final un tableau avec la catégorie, le produit puis une colonne pour chaque couple année/semaine, sachant que je ne connais pas à l'avance le nombre de couple année/semaine. L'intersection indique le chiffre d'affaires.

    Je ne sais pas si c'est possible, j'imagine que oui, dans ce cas vers quoi dois je me diriger pour trouver la solution, javascript, php (et/ou le framework, ici cakephp), sql, si quelqu'un sait m'orienter cela me fera gagner du temps.
    Merci

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    167
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 167
    Par défaut
    Salut,

    Pour faire ton tableau, le plus simple sera du html. Pour le contenu, ça dépend comment tu comptes récupérer t'es données : tu les rentres à la main, tu effectues une requête sur une bdd, tu incrémentes un tableau en php, ...

    Selon la solution, la méthode sera différente (enfin entre html et php). je te déconseille le javascript pour gérer le contenu.

    Pour ton tableau, je pense que tu veux obtenir quelque chose comme ça :

    Code html : 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
     
    <table>
    	<tr>
    		<td>&nbsp;</td>
    		<td>Année</td>
    		<td>Semaine</td>
    	</tr>
    	<tr>
    		<td>Type de pproduit</td>
    <!-- t'es données sont insérées ici -->
    	</tr>
    	<tr>
    		<td>Produit</td>
    <!-- et ici -->
    	</tr>
    </table>

  3. #3
    Membre expérimenté

    Profil pro
    En reconversion
    Inscrit en
    Novembre 2007
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Novembre 2007
    Messages : 180
    Par défaut
    Bonjour,
    Je me suis mal expliqué désolé. En effet les données proviennent d'une requête, plus précisément via php (avec le framework cakephp) et celles-ci à l'origine ont un format classique qui correspondrait au tableau suivant :
    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
    <table>
                <tr>
                  <td>Type de Produit</td>
                  <td>Produit</td>
                  <td>Annee</td>
                  <td>Semaine</td>
                  <td>Chiffre d'affaires</td>
                </tr>
                <tr>
                  <td>sejour</td>
                  <td>Hotel x</td>
                  <td>2009</td>
                  <td>5</td>
                  <td>2589</td>
                </tr>
    </table>
    Je veux quant à moi obtenir un tableau différent qui va transposer les années et semaine en colonne, cela ferait qq chose comme cela :
    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
    <table>
        <tr>
          <td rowspan="2">  <p>Type de Produit</p> </td>
          <td rowspan="2">  <p>Produit</p> </td>
          <td>2009</td>
          <td>2009</td>
          <td>2009</td>
        </tr>
        <tr>
          <td>5</td>
          <td>6</td>
          <td>7</td>
        </tr>
        <tr>
          <td>sejour</td>
          <td>hotel x</td>
          <td>1568</td>
          <td>2589</td>
          <td>3456</td>
        </tr>
        <tr>
          <td>croisiere</td>
          <td>croisiere y</td>
          <td>4524</td>
          <td>1587</td>
          <td>5264</td>
        </tr>
    </table>
    Pour le moment mes recherches vont vers sql avec du sql dynamique, j'ai aussi trouvé un lien intéressant ici : http://moko.developpez.com/articles/...ise-php-mysql/
    Je me demande cependant s'il n'y a pas un moyen via javascript mais n'y connaissant rien ce ne sont que des hypothèses.

    Si quelqu'un à des idées, merci.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    167
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 167
    Par défaut
    En effet c'est un peu plus compliqué que ce que je pensais.

    Quand tu effectues ta requête, qu'est ce que tu récupères ?
    (année, semaine, produit, type de produit, etc)

    J'avais effectué un traitement qui créer un tableau automatiquement, un peu ce que tu veux faire (bon le mien était dans l'autre sens, mais ça revient au même). Pour ma part, je l'ai fait en php.

    Je peux essayer de te donner un coup de main mais ça risque d'être un peu long quand même.

    Doki.

  5. #5
    Membre expérimenté

    Profil pro
    En reconversion
    Inscrit en
    Novembre 2007
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Novembre 2007
    Messages : 180
    Par défaut
    Bonjour,
    La requête récupère effectivement les données en ligne, cad :
    "SELECT [type de produit ], [produit] , [année], [semaine], [Chiffre d'affaires] FROM ..."

    En fait pour le moment je ne suis pas encore face aux problèmes mais j'anticipe et je me pose les questions à venir.

    Pour le moment je ne vois que deux solutions :
    - soit créer dynamiquement la requête en php (en espérant que je puisse le faire dans cakephp)
    - soit créer cela sous mysql avec du sql dynamique (c'est surtout là que je creuse car je n'y connais rien en développement web, enfin pour le moment)

    Merci pour ton aide.

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    167
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 167
    Par défaut
    Avec cake, c'est tout a fait possible. Je l'ai déjà utiliser pour ce genre de requête.

    Pour l'affichage, effectivement tu peux utiliser du sql dynamique, mais là je ne pourrais pas être d'une grande aide. Je ne connais pas du tout.

    Si tu veux le faire en php (ce que j'avais fait), il faudra imbriquer plusieurs boucle pour générer automatiquement ton tableau.

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Février 2005
    Messages : 58
    Par défaut
    Citation Envoyé par patic Voir le message
    Bonjour,
    La requête récupère effectivement les données en ligne, cad :
    "SELECT [type de produit ], [produit] , [année], [semaine], [Chiffre d'affaires] FROM ..."

    En fait pour le moment je ne suis pas encore face aux problèmes mais j'anticipe et je me pose les questions à venir.

    Pour le moment je ne vois que deux solutions :
    - soit créer dynamiquement la requête en php (en espérant que je puisse le faire dans cakephp)
    - soit créer cela sous mysql avec du sql dynamique (c'est surtout là que je creuse car je n'y connais rien en développement web, enfin pour le moment)

    Merci pour ton aide.
    Bonjour,

    Je ne suis pas sûr d'avoir entièrement compris ce que tu veux faire mais je pense que le plus simple est de manipuler le tableau retourné par la méthode find() de ton modèle, afin qu'il ait la forme désirée.

    Tu peux faire ceci soit dans le modèle, le contrôleur voir même la vue ... mais là celà dépend du meilleur endroit (conceptuellement) où cette transformation doit avoir lieu, en fonction de la signification qu'elle a : si ce n'est que de l'affichage alors il faut le faire dans la vue (avec un Helper par exemple), autrement une méthode "getCustomFormat" du modèle serait plus appropriée.

    Pour effectuer la manipulation du tableau de résultat je t'invite à regarder du côté de la librairie Set du framework. Elle propose de nombreuses méthodes permettant de changer l'arborescence de tableaux de manière intuitive, voir l'exemple de Set::combine().

    Ceci n'est qu'un avis, mais je le répète je ne suis pas sûr d'avoir saisi ce que tu souhaites faire ...

    Pierre

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

Discussions similaires

  1. Changer le nom d'une colonne
    Par Poussy-Puce dans le forum Langage SQL
    Réponses: 4
    Dernier message: 16/07/2007, 11h57
  2. [sql 2005]: changer le nom d'une colonne dans un table
    Par TheLittle dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 12/06/2006, 15h29
  3. Changer le type d'une colonne
    Par Poisson59 dans le forum Oracle
    Réponses: 2
    Dernier message: 06/12/2005, 13h59
  4. [Débutant] Changer le type d'une colonne
    Par david71 dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 08/11/2005, 11h26
  5. changer le tablespace d'une colonne blob
    Par learn dans le forum Oracle
    Réponses: 4
    Dernier message: 15/08/2005, 18h44

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