Google Charts et base de données

Eléphanteau du PHP | 32 Messages

31 oct. 2012, 17:03

dans ma base de donnée, $Camp['MOYENNE_TOTALE'] est le temps d'appelle moyen total qui m'aie renvoyé

J'en ai donc besoin :)

Avatar du membre
Mammouth du PHP | 1564 Messages

31 oct. 2012, 18:19

et le code là ne fonctionne pas ?

Eléphanteau du PHP | 32 Messages

05 nov. 2012, 11:31

Non, ce code là ne fonctionne pas..

Eléphanteau du PHP | 32 Messages

05 nov. 2012, 17:44

Re-voici tout mon body
<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::PARAM_STR)) {
			$nbr++;
			$echo .= "['".$Camp['NOM_CAMPAGNE']."', ". $Camp['MOYENNE_TOTALE'] ."],";
			}
			echo substr($echo,0,-1);
			 ?>]);
			 			
			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>

Avatar du membre
Mammouth du PHP | 1564 Messages

05 nov. 2012, 22:07

ya quelque chose que je comprend pas, pourquoi les noms des variables ont changés ? "NOM_CAMPAGNE et MOYENNE_TOTAL

Est ce que MOYENNE_TOTAL existe réellement ?

Travail tu en local ? si non, tu devrait (c'est plus simple et plus rapide et terme de débogage)

Affiche tu les report d'erreur à l’écran ? si oui, est ce qu'il y en a une ?

Dernièrement, je suis désolé mais ayant arrêté PDO parce que je trouvais ça un peu complexe, je ne pourrais pas beaucoup t'aider.

Eléphanteau du PHP | 32 Messages

06 nov. 2012, 11:58

Je t'explique,

nous avons travailler chacun de notre côté sur un projet que nous venons de mettre en commun.
Nous avons utilisé une requête SQL qui est :

SELECT "blablabla" AS NOM_CAMPAGNE, "blablabla" AS MOYENNE_TOTAL

ceci est sur notre base commune, d'ou le changement de nom si soudain :)
onc avec ces noms tout marche parfaitement.

je travail donc en local, mais avec la base de donnée commune, juste que l'on a rassemblé nos fichiers pour que ce soit moins le bordel entre nous. :)

Comment afficher les reports d'erreur à l'écran?


Je t'excuse, tu m'aides déjà énormément :D

Avatar du membre
Mammouth du PHP | 1564 Messages

06 nov. 2012, 13:50

1. je te propose de mettre ce code (seulement ce code,avec la requête mysql bien sur) sur la page body:
<?php
                        $nbr="";
                        $echo = "";
                        while ($Camp = $requete->fetch(PDO::PARAM_STR)) {
                        $nbr++;
                        $echo .= "['".$Camp['NOM_CAMPAGNE']."', ". $Camp['MOYENNE_TOTALE'] ."],";
                        }
                        echo substr($echo,0,-1);
                         ?>
et de me dire ce qu'elle affiche.

2. Essaye d'enlever ceci:
while ($Camp = $requete->fetch(PDO::PARAM_STR)) {
et de le remplacer par:
while ($Camp = $requete->fetch()) {
3.
Pour afficher les erreur sous WAMPSERVER 2.0:

Ouvrez le php.ini:
Image

Recherchez le mot "display_errors" (faite Ctrl+F)

Cette variable doit être à On, comme ceci: display_errors = On

Eléphanteau du PHP | 32 Messages

08 nov. 2012, 15:54

Franchement, je n'ai pas compris ce que tu m'as dit. :p


Tu veux que je mette le code php que tu m'as filé avec ma requête et donc la connexion à ma base.

c'est tout?

parce que si c'est le cas, je vois pas l'interet...
ça ne va rien afficher...

ou alors on ne se comprend pas. :)

Et pour les erreurs, le display_errors est bien sur On. :)

Avatar du membre
Mammouth du PHP | 1564 Messages

08 nov. 2012, 16:42

Ok pour "On"

tu a essayé de remplacer:
while ($Camp = $requete->fetch(PDO::PARAM_STR)) {
par:
while ($Camp = $requete->fetch()) {
pour voir ce que ça donne ?

Eléphanteau du PHP | 32 Messages

12 nov. 2012, 10:59

ça marche aussi :)

je viens d'essayer :)

Avatar du membre
Mammouth du PHP | 1564 Messages

12 nov. 2012, 13:05

Ok, maintenant il faudrait que tu modifie ta requête:
<?php
                        //requête : Moyenne durée d'appel par campagne
                        $requete = $bdd->prepare("SELECT phonevent_commande.com_prixTotal as AVG, phonevent_campagne.cam_nom as Nom
                        FROM phonevent_commande, phonevent_campagne
                        WHERE phonevent_commande.cam_id=phonevent_campagne.cam_id");
                        $requete->bindValue(':dateDebut', $_POST['datepicker3'], PDO::PARAM_STR);
                        $requete->bindValue(':dateFin', $_POST['datepicker4'], PDO::PARAM_STR);
                        $requete->execute();

                        // Défini le nom de notre fonction JS et l'id du div HTML dans lequel se trouvera le graphique
                        $name_chart = "result";
?>
là où il y a:
                        $requete->bindValue(':dateDebut', $_POST['datepicker3'], PDO::PARAM_STR);
                        $requete->bindValue(':dateFin', $_POST['datepicker4'], PDO::PARAM_STR);
il faut mettre PDO::PARAM_INT pour la moyenne je pense

Eléphanteau du PHP | 32 Messages

12 nov. 2012, 15:12

ceci marche aussi :)

mais où veux-tu en venir pour que j'affiche mon résultat sous résultat hh:mm:ss? :)

Je t'avoue que je ne suis plus :)

Avatar du membre
Mammouth du PHP | 1564 Messages

12 nov. 2012, 15:48

moi non plus je suis plus, désolé.

en fait param int te sert à dire que la valeur est de type chiffre seulement, donc pour ta moyenne (si elle est stockée en chiffre, genre 188145415) ce serai une solution.

Je laisse d'autre personne te répondre car là je ne vois pas.

Eléphanteau du PHP | 32 Messages

13 nov. 2012, 15:00

Image

Voilà à quoi ressemble mon graphique, si ça peut aider..

et mes temps que je retourne avec ma requête, mais aussi que j'affiche dans un tableau, sont en format date hh:mm:ss

alors que dans le graphique, elle se retourne automatiquement en seconde sans que je le demande.
Si quelqu'un pouvait encore m'aider ce serait génial. :)


Merci en tout cas de ton aide, two3d. :)

Avatar du membre
Mammouth du PHP | 1564 Messages

13 nov. 2012, 15:59

si c'est en secondes genre 0 à 59, je sais pas mais si c'est du genre timstamp genre 4168414, il te suffit de faire:
echo date("d-m-Y H:i",$variable_temps); // affichera une date de type: JJ-MM-AAAA H:S (13-11-2012 14:59)
EDIT: je vois que tu dit "sont en variable "hh:mm:ss", essaye ceci alors:
$variable_temps = "14:30:18";
$variable_temps = strtotime($variable_temps);
$variable_temps = date("d-m-Y H:i",$variable_temps);
echo $variable_temps;