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

Flex Discussion :

PieChart à partir de données MySQL


Sujet :

Flex

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 91
    Par défaut PieChart à partir de données MySQL
    Bonjour,

    j'exécute la requête SQL suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    	/* A la séléction d'une date via le frontend, on extrait une image/photo (priorité, nombre(priorités), pourcentage)  du parc TOTAL => evolutionParc */
    	function getParcSelonDate($dateMaj)
    	{
    	return mysql_query("SELECT priorite_finale AS priorite_finale, COUNT(priorite_finale) AS totalChaquePrio, 
    						COUNT(*) / (SELECT COUNT(*) FROM `final".$dateMaj."`) * 100 AS pourcentage
    						FROM `final".$dateMaj."` 
    						GROUP BY priorite_finale");
    Cette requête retourne un résultat du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    INSERT INTO `final` (`priorite_finale`, `priorite_finale`, `pourcentage`) VALUES
    ('P1', 1581, '6.5188'),
    ('P1-2', 1341, '5.5292'),
    ('P2', 14818, '61.0976'),
    ('P3', 3971, '16.3732'),
    ('P4', 2542, '10.4812');
    Dan un PieChart je veux récupérer les valeurs de "pourcentage"
    Voilà mon code MXML:
    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
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" showEffect="{IrisEffectId}" initialize="initialisation()" height="100%" width="100%">
    	<mx:RemoteObject id="ROService"	showBusyCursor="true" source="classif_amfphp.traitement" destination="amfphp">	
    		<mx:method name="getParcSelonDate" result="getParcSelonDateResult(event)"/>
    	</mx:RemoteObject>		
     
    	<!-- On fait appel au fichier ActionScript contenant toutes les fonctions et les packages Actionscript utilisés -->
    	<mx:Script source="../actionscript/amfphp/recapitulatif.as"/>
     
    	<!-- Appel du fichier CSS pour les styles -->
    	<mx:Style source="../css/styles.css"/>
     
    	<mx:TitleWindow title="Historique des différentes actions menées" horizontalCenter="0" horizontalAlign="center" 
    		y="230" width="900" height="520" alpha="0.82">
    		<mx:PieChart id="piechart1" dataProvider="{getParcSelonDateAC}" showDataTips="true" >
    			<mx:series>
    				<mx:PieSeries displayName="Pourcentage" nameField="pourcentage" field="pourcentage" labelPosition="callout"/>
    			</mx:series>
    		</mx:PieChart>
    		<mx:Legend dataProvider="{piechart1}"/>
     
    		<mx:ComboBox id="datesMaj" dataProvider="{getDatesMajPonctAC}" prompt="Selectionnez une date"
    						labelField="dateMaj" close="dateSelectionnee()" toolTip="Veuillez selectionner une date" 
    						themeColor="0xf37021"/>
     
    		<mx:VBox >
    			<mx:HBox>
    				<mx:VBox horizontalAlign="center">
    				<mx:Label text="EvolutionParc" styleName="titre3"/>
    				<mx:DataGrid dataProvider="{getParcSelonDateAC}" id="datagrid_parcSelonDate" verticalCenter="20" 
    					alternatingItemColors="[#ffffff, #00A5B9]" backgroundAlpha="0.6" height="156" width="229" left="148" 
    					themeColor="#F37021" selectionColor="0xf37021" rollOverColor="0xf37021">
    					<mx:columns>
    						<!--dataField correspond au champ de la table qu'on souhaite afficher-->
    						<mx:DataGridColumn headerText="Priorité" dataField="priorite_finale" width="100"/> 
    						<mx:DataGridColumn headerText="Total en région" dataField="totalChaquePrio" width="70"/>
    						<mx:DataGridColumn headerText="Pourcentage" dataField="pourcentage" width="110"/>
    					</mx:columns>
    				</mx:DataGrid>	
    			</mx:VBox>		
    			</mx:HBox>
    		</mx:VBox>
    	</mx:TitleWindow>
    </mx:Canvas>
    Et mon code Actionscript:
    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
    import mx.collections.ArrayCollection;
    import mx.rpc.events.ResultEvent;
     
    [Bindable] private var getDatesMajPonctAC: ArrayCollection;
    [Bindable] private var getParcSelonDateAC: ArrayCollection;
     
    private var dateMaj:String = null; 
     
    private function getParcSelonDateResult(evt:ResultEvent):void
    {
    	getParcSelonDateAC = ArrayCollection(evt.result);
    }
     
    private function getDatesMajPonctResult(evt:ResultEvent):void
    {
    	getDatesMajPonctAC = ArrayCollection(evt.result);
    }
     
    private function initialisation():void
    {
    	ROService.getDatesMajPonct();
    }
     
    private function dateSelectionnee():void
    {
    	dateMaj = datesMaj.selectedLabel.toString();
    	if(dateMaj != null)
    	{
    		ROService.getParcSelonDate(dateMaj);
    	}
    }
    Mon code marche presque, j'ai bien un PieChart mais moi je veux qu'il m'affiche en légende "priorite_finale", dans mon cas ce serait:
    P1 -> 6.5188
    P1-2 -> 5.5292
    P2 -> 61.0976
    P3 -> 16.3732
    P4 -> 10.4812

    Ce qui n'est pas le cas!

    P.S: Lorsque j'exporte le résultat de ma requête sous PhpMyAdmin je remarque que "priorite_finale" est répété pour les 2 premiers champs alors que ça devrait être "priorite_finale" et "totalChaquePrio".

    Merci de votre aide.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Par défaut
    Je ne suis pas certain de bien comprendre.

    1- Une légende dans un chart permet d'indiquer la signification de chaque série. Tu sembles n'avoir qu'une seule série. Donc qu'est-ce que tu veux mettre dans ta légende ?? Les valeurs de chaque point ??

    2- qu'est ce que tu veux dire dans ton le P.S. ? Tu demandes de l'assistance pour phpMyAdmin qui semble avoir un bug ou bien tu corriges l'anomalie de ta deuxième fenêtre de code ? Dans le premier cas c'est du HS, dans le second il aurait été plus simple que tu corriges le code, ça facilite le travail des lecteurs

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 91
    Par défaut
    Tu peux oublier l'histoire du P.S.

    Ce que j'aimerais afficher sous forme de PieChart c'est "pourcentage" de chaque "priorite_finale".

    En gros, P1, P1-2, P2, P3, P4 répartis sur le camenbert, avec bien sûr le pourcentage de chacun. Les données sont extraites de la BDD grâce à la requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	return mysql_query("SELECT priorite_finale AS priorite_finale, COUNT(priorite_finale) AS totalChaquePrio, 
    						COUNT(*) / (SELECT COUNT(*) FROM `final".$dateMaj."`) * 100 AS pourcentage
    						FROM `final".$dateMaj."` 
    						GROUP BY priorite_finale");
    J'espère que je me suis bien fait comprendre.
    Merci!

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Par défaut
    Désolé mais je ne comprends pas bien ce que tu veux obtenir.

    Normalement pour un piechart tu n'as pas besoin de fournir le pourcentage de chaque valeur puisque le travail du piechart c'est justement de répartir l'ensemble des valeurs fournis en pourcentage.
    Donc les deux premiers champs de ton select sont suffisants.

    Après tu as toutes les propriétés voulues pour adapter l'affichage (labelFunction, dataTips, etc.)

    Par ex:
    Dans Series tu mets field="totalChaquePrio" nameField="priorite_finale" labelField="priorite_finale " tu auras P1...P4 en label des parts du camembert et en dataTips tu auras P1..P4 avec le pourcentage et le nombre.
    Si tu veux à la fois P1..P4 et le pourcentage en label il faut utiliser une labelFunction.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 91
    Par défaut
    Citation Envoyé par jylaxx Voir le message
    Désolé mais je ne comprends pas bien ce que tu veux obtenir.
    Si je pense que t'as compris,
    Citation Envoyé par jylaxx Voir le message
    Normalement pour un piechart tu n'as pas besoin de fournir le pourcentage de chaque valeur puisque le travail du piechart c'est justement de répartir l'ensemble des valeurs fournis en pourcentage.
    C'est ce que je me disais au bout d'un moment.
    Citation Envoyé par jylaxx Voir le message
    Dans Series tu mets field="totalChaquePrio" nameField="priorite_finale" labelField="priorite_finale " tu auras P1...P4 en label des parts du camembert et en dataTips tu auras P1..P4 avec le pourcentage et le nombre.
    Merci de m'avoir éclairé le fonctionnement de la classe PieChart.
    Ce que tu m'as dit marche nickel. En fait moi je mettais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <mx:PieSeries displayName="totalChaquePrio" nameField="totalChaquePrio" field="totalChaquePrio" labelPosition="callout"/>
    Du coup mes labels c'était à chaque fois "totalChaquePrio".

    Merci encore une fois de ton aide

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

Discussions similaires

  1. [MySQL] graphique php a partir des données mysql
    Par Invité dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 24/03/2010, 11h19
  2. Dessiner des graphiques à partir des données d'une BD MySQL
    Par condor_01 dans le forum Général Java
    Réponses: 6
    Dernier message: 24/04/2008, 09h35
  3. Réponses: 3
    Dernier message: 13/02/2007, 11h51
  4. Afficher des données dans un datagrid à partir d'une base de données MySQL
    Par General_Garrisson dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 13/07/2006, 15h14
  5. Menu deroulant creer a partir d'une base de donnée mysql
    Par schwinny dans le forum Requêtes
    Réponses: 9
    Dernier message: 28/06/2006, 15h48

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