Graphe php mysql

achraf1996 Messages postés 29 Date d'inscription   Statut Membre Dernière intervention   -  
miramaze Messages postés 1429 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

je veux crée un graphe dans une application web(php mysql) le problème c'est que je n'est pas un nombre précis de partions je veux que le graphe se divise selon le nombre de ligne de ma table (contient les donne de ma base de donne mysql)
je ne sait pas s'il est faisable avec une boucle sur le code javascript du graphe
par exemple dans le code si dessous j'ai définie 9 partition mais il se peut que la table contient plus au moins

<?php
//conction to database
include('mysql_db_connect.php') ;
// Execute the query (the recordset $rs contains the result)
$req="SELECT Count(`Numéro`) AS CompteDeNuméro, `Affectation`,AVG(`duree`)AS 'Durrée Avant cloture' FROM `table 1`WHERE ((`État` Like 'closed') AND (`Brève description` Like '%opm%' Or `Brève description` Like '%saisi%' Or `Brève description` Like '%firewal%' Or `Brève description` Like '%instrumen%' Or `Brève description` Like '%tonnage%')) OR (((État) Like 'closed') AND (`Brève description` Like '%formule%' Or `Brève description` Like '%bascule%' Or `Brève description` Like '%opm%')) OR ((`État` Like 'closed') AND (`Brève description` Like '%étalonnage%' Or `Brève description` Like '%compteur%' Or `Brève description` Like '%remontée%')) OR ((`État` Like 'closed') AND (`Brève description` Like '%débimètre%' Or `Brève description` Like '%automate%' Or `Brève description` Like '% tag %')) OR ((`État` Like 'closed') AND (`Brève description` Like '%capteur%' Or `Brève description` Like '%forçage%')) OR ((`État` Like 'closed') AND (`Brève description` Like '%écart%' Or `Brève description` Like '%coefficient%')) OR ((`État` Like 'closed') AND (`Brève description` Like 'formation%' Or `Brève description` Like '%instrument%' Or `Brève description` Like '%rapport%')) OR ((`État` Like 'closed') AND (`Brève description` Like '%opc%' Or `Brève description` Like '%NACHA%' Or `Brève description` Like '%NAEPI%' Or `Brève description` Like '%NALAV%' Or `Brève description` Like '%NACA%' Or `Brève description` Like 'NAC%' Or `Brève description` Like 'NASE%' Or `Brève description` Like '%NAGEF%' Or `Brève description` Like '%NAGEFL%' Or `Brève description` Like '% PB-GA%')) OR ((`État` Like 'closed') AND (`Brève description` Like '%export%' And `Brève description` Like '%pdf%')) GROUP BY `Affectation` ORDER BY Count(`Numéro`)";
$result=mysql_query($req)or die(mysql_error());

$Affectation[]=array();
$CompteDeNuméro[]=array();
$i=0;
while($row=mysql_fetch_assoc($result)){

$Affectation[$i]=$row['Affectation'];
$CompteDeNuméro[$i]=$row['CompteDeNuméro'];
$i=$i+1;
}


?>


<html>
<head>
<title>Doughnut Chart</title>
<script src="../src/Chart.Core.js"></script>
<script src="../src/Chart.Doughnut.js"></script>
<style>
body{
padding: 0;
margin: 0;
}
#canvas-holder{
width:30%;
}
</style>
</head>
<body>
<div id="canvas-holder">
<canvas id="chart-area" width="500" height="500"/>
</div>


<script>
var tab1 = <?php echo json_encode($Affectation); ?>;
var tab2 = <?php echo json_encode($CompteDeNuméro); ?>;
var x = <?php echo json_encode($i); ?>;

var doughnutData = [
{
value: tab2[0],
label: tab1[0],
},
{
value: tab2[1],
label: tab1[1],
},
{
value: tab2[2],
label: tab1[2],
},
{
value: tab2[3],
label: tab1[3],
},
{
value: tab2[4],
label: tab1[4],
},
{
value: tab2[5],
label: tab1[5],
},
{
value: tab2[6],
label: tab1[6],
},
{
value: tab2[7],
label: tab1[7],
},
{
value: tab2[8],
label: tab1[8],
}

];

window.onload = function(){
var ctx = document.getElementById("chart-area").getContext("2d");
window.myDoughnut = new Chart(ctx).Doughnut(doughnutData, {responsive : true});
};



</script>
</body>
</html>


merci
A voir également:

4 réponses

miramaze Messages postés 1429 Date d'inscription   Statut Contributeur Dernière intervention   92
 
Hello, c'est ça que tu cherches ? tab1 et tab2 doivent avoir la même taille.

var doughnutData = [];

for (var i = 0; i < tab1.length; i++) {
  doughnutData.push({
    value: tab2[i],
    label: tab1[i]
  });
}
1
achraf1996 Messages postés 29 Date d'inscription   Statut Membre Dernière intervention  
 
oui c'est exactement ce que je veut
mais j'ai un probleme
le graphe s'affiche sur google chrome mais sur mozilla firefox non
0
ElementW Messages postés 4814 Date d'inscription   Statut Contributeur Dernière intervention   1 223
 
'lut, au passage:
L'extension MySQL est obsolète et dangereuse.
0
achraf1996 Messages postés 29 Date d'inscription   Statut Membre Dernière intervention  
 
bonjour s'il vous plait je veux cree une boucle comme celle en haut pour le code d'un autre type de graphe j'ai pas pu arrivais


<?php
//conction to database
include('mysql_db_connect.php') ;
// Execute the query (the recordset $rs contains the result)
$req="SELECT Count(`Numéro`) AS CompteDeNuméro, `Affectation`,AVG(`duree`)AS 'Durrée Avant cloture' FROM `table 1`WHERE ((`État` Like 'closed') AND (`Brève description` Like '%opm%' Or `Brève description` Like '%saisi%' Or `Brève description` Like '%firewal%' Or `Brève description` Like '%instrumen%' Or `Brève description` Like '%tonnage%')) OR (((État) Like 'closed') AND (`Brève description` Like '%formule%' Or `Brève description` Like '%bascule%' Or `Brève description` Like '%opm%')) OR ((`État` Like 'closed') AND (`Brève description` Like '%étalonnage%' Or `Brève description` Like '%compteur%' Or `Brève description` Like '%remontée%')) OR ((`État` Like 'closed') AND (`Brève description` Like '%débimètre%' Or `Brève description` Like '%automate%' Or `Brève description` Like '% tag %')) OR ((`État` Like 'closed') AND (`Brève description` Like '%capteur%' Or `Brève description` Like '%forçage%')) OR ((`État` Like 'closed') AND (`Brève description` Like '%écart%' Or `Brève description` Like '%coefficient%')) OR ((`État` Like 'closed') AND (`Brève description` Like 'formation%' Or `Brève description` Like '%instrument%' Or `Brève description` Like '%rapport%')) OR ((`État` Like 'closed') AND (`Brève description` Like '%opc%' Or `Brève description` Like '%NACHA%' Or `Brève description` Like '%NAEPI%' Or `Brève description` Like '%NALAV%' Or `Brève description` Like '%NACA%' Or `Brève description` Like 'NAC%' Or `Brève description` Like 'NASE%' Or `Brève description` Like '%NAGEF%' Or `Brève description` Like '%NAGEFL%' Or `Brève description` Like '% PB-GA%')) OR ((`État` Like 'closed') AND (`Brève description` Like '%export%' And `Brève description` Like '%pdf%')) GROUP BY `Affectation` ORDER BY Count(`Numéro`)";
$result=mysql_query($req)or die(mysql_error());

$Affectation[]=array();
$CompteDeNuméro[]=array();
$duree[]=array();
$i=0;
while($row=mysql_fetch_assoc($result)){

$Affectation[$i]=$row['Affectation'];
$CompteDeNuméro[$i]=$row['CompteDeNuméro'];
$duree[$i]=$row['Durrée Avant cloture'];
$i=$i+1;
}

?>

<!doctype html>
<html>
<head>
<title>Bar Chart</title>
<script src="../Chart.js"></script>
</head>
<body>
<div style="width: 50%">
<canvas id="canvas" height="450" width="600"></canvas>
</div>


<script>
var tab1 = <?php echo json_encode($Affectation); ?>;
var tab2 = <?php echo json_encode($CompteDeNuméro); ?>;
var tab3 = <?php echo json_encode($duree); ?>;

var randomScalingFactor = function(){ return Math.round(Math.random()*100)};

var barChartData = {
labels : [tab1[0],tab1[1],tab1[2],tab1[3],tab1[4],tab1[5],tab1[6],tab1[7],tab1[8]],
datasets : [
{
fillColor : "rgba(220,220,220,0.5)",
strokeColor : "rgba(220,220,220,0.8)",
highlightFill: "rgba(220,220,220,0.75)",
highlightStroke: "rgba(220,220,220,1)",
data : [tab3[0],tab3[1],tab3[2],tab3[3],tab3[4],tab3[5],tab3[6],tab3[7],tab3[8]]
}

]

}

window.onload = function(){
var ctx = document.getElementById("canvas").getContext("2d");
window.myBar = new Chart(ctx).Bar(barChartData, {
responsive : true
});
}


</script>
</body>
</html>


merci de m'aide
0
miramaze Messages postés 1429 Date d'inscription   Statut Contributeur Dernière intervention   92
 
Qu'est ce qu'on obtient dans tab1, tab2, tab3 ?
0
achraf1996 Messages postés 29 Date d'inscription   Statut Membre Dernière intervention  
 
ils contient les de donne que j'extrait de la base de donne c'est exactement la mémé question que vous venez de répandre en haut
j'vais utiliser seulement tab 1 et 3
0
miramaze Messages postés 1429 Date d'inscription   Statut Contributeur Dernière intervention   92
 
Oui mais il y'a quoi dedans, tu peux nous montrer les données ?
0
achraf1996 Messages postés 29 Date d'inscription   Statut Membre Dernière intervention  
 
tab 1 contient des chaine de caractaire
tab 3 contient des float
0
miramaze Messages postés 1429 Date d'inscription   Statut Contributeur Dernière intervention   92
 
Ce que je voulais c'est les données dedans mais je crois que j'ai pas compris la question. Tu n'arrives pas à refaire une boucle avec ce script là ou tu ne peux pas faire fonctionner une boucle avec ce script là ?
0