PieChart à partir de données MySQL
Bonjour,
j'exécute la requête SQL suivante:
Code:
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:
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:
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:
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.