Google Charts et base de données

Eléphanteau du PHP | 32 Messages

30 oct. 2012, 14:52

Merci encore

Eléphanteau du PHP | 32 Messages

30 oct. 2012, 16:30

Juste une dernière petite question :

J'ai afficher mes valeurs, ça c'est fait!
Merci encore two3d!

J'aimerai maintenant que pour la moyenne totale mes valeurs s'affichent en hh:mm:ss
Pour le moment mes valeurs s'affichent en seconde donc un nombre entier.

Merci d'avance pour vos réponses :)
	<body>
		
		<script type="text/javascript" src="https://www.google.com/jsapi"></script>
		<script type="text/javascript">
		google.load("visualization", "1", {packages:["corechart"]});
		google.setOnLoadCallback(<?php echo $name_chart; ?>);
		function <?php echo $name_chart; ?>() {

			var data = google.visualization.arrayToDataTable([
			['Campagne', ' Moyenne de durée d\'appel total (en seconde)'],
			<?php
			$nbr="";
			$echo = "";
			while ($Camp = $requete->fetch(PDO::FETCH_ASSOC)) {
			$nbr++;
			$echo .= "['".$Camp['NOM_CAMPAGNE']."', ".$Camp['MOYENNE_TOTALE']."],";
			}
			echo substr($echo,0,-1); // on enlve la virgule de la fin
			?>]);
			
			var options = {
				title: 'Moyenne de durée d\'appel par campagne',
				hAxis: {title: 'Campagne', titleTextStyle: {color: 'blue'}}
			};

			var chart = new google.visualization.ColumnChart(document.getElementById('<?php echo $name_chart; ?>'));
			chart.draw(data, options);
		}
		</script>
		
		<div id="<?php echo $name_chart ?>" style="width: 900px; height: 500px;"></div>	
	
	</body>

ViPHP
xTG
ViPHP | 7331 Messages

30 oct. 2012, 16:43

Cela doit être faisable avec la fonction date si le timestamp unix commence bien à minuit.
Essaies ceci pour être sûr :
echo date("H:m:i", 60); // 0:1:0 => 1 minute => 60 secondes

Eléphanteau du PHP | 32 Messages

30 oct. 2012, 16:51

Je n'ai pas compris ce que tu voulais dire :)

Avatar du membre
Mammouth du PHP | 1564 Messages

30 oct. 2012, 17:18

il disait de mettre ta valeur en seconde à la place de 60 dans son exemple:
echo date("H:m:i", valeur en seconde);
après tu à juste à faire
$total = date("H:m:i", valeur 1) + date("H:m:i", valeur 2) + date("H:m:i", valeur 3) + date("H:m:i", valeur 4);

Eléphanteau du PHP | 32 Messages

30 oct. 2012, 17:56

Donc si je reprend mon code,

Je dois rajouter la ligne suivante:

"echo date("H:m:i", 'variable de mes données?');"
function <?php echo $name_chart; ?>() {

                        var data = google.visualization.arrayToDataTable([
                        ['Campagne', ' Moyenne de durée d\'appel total (en seconde)'],
                        <?php
                        $nbr="";
                        $echo = "";
                        while ($Camp = $requete->fetch(PDO::FETCH_ASSOC)) {
                        $nbr++;
                        $echo .= "['".$Camp['NOM_CAMPAGNE']."', ".$Camp['MOYENNE_TOTALE']."],";
}
                        echo substr($echo,0,-1); // on enlve la virgule de la fin
                        echo date("H:m:i", Ma variable?);
                        ?>]);

Avatar du membre
Mammouth du PHP | 1564 Messages

30 oct. 2012, 18:19

tu veu faire un total de tout tes résultats ou de chaque d'entre elle ?

pour chacune d'entre elle:
function <?php echo $name_chart; ?>() {

                        var data = google.visualization.arrayToDataTable([
                        ['Campagne', ' Moyenne de durée d\'appel total (en seconde)'],
                        <?php
                        $nbr="";
                        $echo = "";
                        while ($Camp = $requete->fetch(PDO::FETCH_ASSOC)) {
                        $nbr++;
                        $echo .= "['".$Camp['NOM_CAMPAGNE']."', ".date("H:m:i", $Camp['MOYENNE_TOTALE'])."],";
}
                        echo substr($echo,0,-1); // on enlve la virgule de la fin
                        echo date("H:m:i", Ma variable?);
                        ?>]);
Pour le total il te faut initialiser une variable qui sera à 0, puis tu ajoute à se 0 chaque variable:
function <?php echo $name_chart; ?>() {

                        var data = google.visualization.arrayToDataTable([
                        ['Campagne', ' Moyenne de durée d\'appel total (en seconde)'],
                        <?php
                        $nbr="";
                        $echo = "";
                        $total = 0;
                        while ($Camp = $requete->fetch(PDO::FETCH_ASSOC)) {
                        $nbr++;
                        $total = $Camp['MOYENNE_TOTALE'] + $total;
                        $echo .= "['".$Camp['NOM_CAMPAGNE']."', ".$Camp['MOYENNE_TOTALE']."],";
}
                        echo substr($echo,0,-1); // on enlve la virgule de la fin
                        ?>]);
                        echo date("H:m:i",$total);

Eléphanteau du PHP | 32 Messages

31 oct. 2012, 12:09

C'est pour chacune valeur de chaque colonne

(1 colonne = 1 valeur d'une campagne)

J'ai essayé ce que tu m'as dit, mais le graphique ne s'affiche plus..

As-tu une idée de pourquoi?

Avatar du membre
Mammouth du PHP | 1564 Messages

31 oct. 2012, 12:28

b oui, ta tout mélangé

Eléphanteau du PHP | 32 Messages

31 oct. 2012, 12:29

c'est à dire ^^

Avatar du membre
Mammouth du PHP | 1564 Messages

31 oct. 2012, 12:35

la fin de ton while( } ) tu la mis après "echo $echo ..." alors que c'est à la fin, après qu'il faut le mettre
ta aussi modifier les valeurs de $camp['Nom'] et l'autre aussi, jvoi pas pourquoi....

Ensuite, je sais pas ce qu'est la valeau d'une durée d'appel, pourrai me dire la quelle c'est stp ?

PS: quand on commence avec PHP, je pense que le mieux c'est le simple et non PHP orienté objet (PDO).

Eléphanteau du PHP | 32 Messages

31 oct. 2012, 15:18

je passais par une bdd local mais maintenant je suis passé sur un serveur, d'ou des appellations différentes. (Une base de donnée commune pour une dizaine de personne).

Les noms n'ont donc pas d'importance, l'important est que les valeurs de la base de données ressortent bien sur mon graphique.

sauf que:

Mes valeurs qui sont par exemple: 00:02:00 ressortent du coup en seconde, donc 120 secondes pour l'exemple.

Et je veux que ces données puissent ressortir du même type horaire hh:mm:ss

Pour ce qui est du while, j'ai beau le mettre avant mon "echo substr" ou après, ça ne change rien..

Avatar du membre
Mammouth du PHP | 1564 Messages

31 oct. 2012, 15:36

donc, reprend le premier code que je t'avais passé puis essaye de mettre PDO::PARAM_STR pour les heures.

Eléphanteau du PHP | 32 Messages

31 oct. 2012, 16:41

Aucun effet...

Avatar du membre
Mammouth du PHP | 1564 Messages

31 oct. 2012, 16:56

met ce code:
                        var data = google.visualization.arrayToDataTable([
                        ['Campagne', ' Moyenne de durée d\'appel total (en seconde)'],
                        <?php
                        $nbr="";
                        $echo = "";
                        while ($Camp = $requete->fetch(PDO::FETCH_ASSOC)) {
                        $nbr++;
                        $echo .= "['".$Camp['NOM_CAMPAGNE']."', ".date("H:m:i", $Camp['MOYENNE_TOTALE'])."],";
}
                        echo substr($echo,0,-1); // on enlve la virgule de la fin
                        ?>]);
et à la place de $Camp['MOYENNE_TOTALE'], tu met ton heure (je sais pas comment elle s'appelle mais peut être pas MOYENNE_TOTAL))