Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/11/2011, 20h36   #1
Invité de passage
 
Inscription : novembre 2008
Messages : 29
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 29
Points : 4
Points : 4
Par défaut Graphique JPGRAPH crée depuis une bdd MySQL

Bonjour à tous!
Je souhaite simplement récupérer les valeurs d'une base de donnée MySQL :
Code :
1
2
3
4
$host = "127.0.0.1";
$login = "root"; 
$password = "";
$base = "eco_data";
3 colonnes composent le tableau :
"id" est l'heure de saisie sous format HHMM
"Y" est une valeur variable
"Z" est une valeur variable

Voici le code exécuté régulièrement qui rempli la base de donnée :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$timestamp = date("Hi");
$hostname = "127.0.0.1";
$database = "eco_data";
$username = "root";
$password = "";
 
$ECO = mysql_pconnect($hostname, $username, $password) or trigger_error(mysql_error(),E_USER_ERROR);
 
$insertSQL = "INSERT INTO eco_data (id, Y, Z) VALUES (
                $timestamp,
                $Y,
                $Z)";
 
mysql_select_db($database, $ECO);
$invoer = mysql_query($insertSQL, $ECO) or die(mysql_error());

Voici donc le code PHP test actuel qui fonctionne :
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
<?php
include ("src/jpgraph.php");
include ("src/jpgraph_line.php");
 
 
$ydata = array(112,42,557,553);
$zdata = array(2778,2442,5444,4553);
$xdata = array('A','B','C','D');
 
 
$graph = new Graph(500,300,"auto");
$graph->SetScale("textlin");
$graph->img->SetMargin(40,40,40,50);
$graph->xaxis->SetFont(FF_FONT1,FS_BOLD);
$graph->xaxis->SetTickLabels($xdata);
$graph->title->Set("Phoebus1");
 
 
$lineplot=new LinePlot($ydata);
$lineplot->SetColor("green");
 
$lineplot2=new LinePlot($zdata);
$lineplot2->SetColor("red");
 
 
$lineplot->SetLegend("Trimestre");
$lineplot2->SetLegend("Trimestre2");
$graph->Add($lineplot2);
$graph->Add($lineplot);
 
 
$graph->Stroke();
?>
Je souhaite donc me connecter à ma base de donnée et y afficher un graphique avec JPGRAPH en prenant les valeurs telles quelles :
$ydata = "Y"
$zdata = "Z"
$xdata = "id"

Par ailleurs, afin de faire fonctionner ce graphique chaque jour, j'ai besoin d'effacer toute la base du jour passé afin de remplir pour le jour actuel. En quelque sorte, si le jour actuel JJ est différent du jour JJ qui compose le "id" dans la base de donnée, alors il faut tout effacer.

Grand merci pour votre aide et bonne soirée!!

Bye
josse34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2011, 14h20   #2
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 661
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 661
Points : 5 388
Points : 5 388
Pour construire tes tableaux, il faut juste récupérer chaque colonne dans un tableau différent :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
//$ydata = "Y" , $zdata = "Z",  $xdata = "id"
$requete = 'SELECT Y as ydata, X as zdata, id as xdata from eco_data';
$result = mysql_query($requete) or die('Error sur '.$requete.'<br/>'.mysql_error();
//initialisation des tableaux à vide
$xdata = array();
$ydata = array();
$zdata = array();
while ($ligne = mysql_fetch_assoc($result)) {
	$xdata[] = $ligne['xdata'];
	$ydata[] = $ligne['ydata'];
	$zdata[] = $ligne['zdata'];
}
En revanche, avoir à vider la table tous les jours ne me parait très optimisé... Tu vas avoir tellement de données que tu doives absolument faire de la place ? Ne serait-il pas plus simple de restreindre la requête de récupération au jour d'aujourd'hui et faire une purge de temps en temps ?
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2011, 20h34   #3
Invité de passage
 
Inscription : novembre 2008
Messages : 29
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 29
Points : 4
Points : 4
Bonsoir,
Navré de pas être venu plus tôt pour te remercier mais je ne fait du PHP que le Week-End!
Ca a effectivement débloqué ma situation et pour finaliser mon code j'ai simplement besoin de savoir comment créer la table si elle n'existe pas car je ne souhaite pas utiliser la page installation avant utilisation.

Voici comment je procède actuellement :
Ma page Installation.php continent ce code :
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
 
<?php
$host = "127.0.0.1"; /* L'adresse du serveur */
$login = "root"; /* Votre nom d'utilisateur */
$password = ""; /* Votre mot de passe */
$base = "eco_data"; /* Le nom de la base */
 
function connexion()
{
global $host, $login, $password, $base;
$db = mysql_connect($host, $login, $password);
mysql_select_db($base,$db);
}
 
connexion();
 
$sql= "CREATE TABLE IF NOT EXISTS `NOM1` (";
$sql .= "`id` int(11) NOT NULL ,";
$sql .= "`Day` text NOT NULL,";
$sql .= "`P1` text NOT NULL,";
$sql .= "`P2` text NOT NULL,";
$sql .= "`P3` text NOT NULL,";
$sql .= "`P4` text NOT NULL,";
$sql .= "`P5` text NOT NULL,";
$sql .= "`P6` text NOT NULL,";
$sql .= "`P7` text NOT NULL,";
$sql .= "`P8` text NOT NULL,";
$sql .= "`P9` text NOT NULL,"; 
$sql .= "`P10` text NOT NULL,";
$sql .= "`P11` text NOT NULL,";
$sql .= "`P12` text NOT NULL,";
$sql .= "KEY `id` (`id`)";
$sql .= ") ENGINE=MyISAM;";
 
 
mysql_query($sql) or die(mysql_error());
?>
Une fois la base crée, il me suffit d’exécuter ce bout de code pour remplir la table :

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
 
$Day0006 = date("md");
$timestamp0006 = date("Hi");
$hostname0006 = "127.0.0.1";
$database0006 = "eco_data";
$username0006 = "root";
$password0006 = "";
$ECO0006 = mysql_pconnect($hostname0006, $username0006, $password0006) or trigger_error(mysql_error(),E_USER_ERROR);
$insertSQL0006 = "INSERT INTO $PVname0006 (id, Day, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12) VALUES (
                $timestamp0006,
                $Day0006,
                $P1,
                $P2,
                $P3,
                $P4,
                $P5,
                $P6,
                $P7,
                $P8,
                $P9,
                $P10,
                $P11,
                $P12)";
mysql_select_db($database0006, $ECO0006);
$invoer0006 = mysql_query($insertSQL0006, $ECO0006) or die(mysql_error());

C'est ce dernier code que je souhaite modifier pour que soit créer la table ou une des variables si elles n'existent pas.
Grand merci pour votre aide!
Bonne soirée
josse34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h51.


 
 
 
 
Partenaires

Hébergement Web