Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
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 16/09/2011, 14h42   #1
Invité de passage
 
Femme
Inscription : septembre 2011
Messages : 13
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : septembre 2011
Messages : 13
Points : 2
Points : 2
Par défaut Créer une courbe à partir d'une base de données

Revoilà la noob en prog qui veut faire des truc qu'elle sait pas faire XD

Alors voilà l'idée, j'aimerai faire une courbe de poids sur mon site à partir de ma base de données.

Ma base de donnée a donc une table intitulée "courbespoids"
Dedans il y a pour le moment 4 Champs :
-ID
-age
-acidofilo
-adie

Donc Id, bah ID quoi XD, age c'est l'age de chacun des individus (1 mois, 2mois, etc...), et acidofilo et adie ce sont 2 individus parmis les nombreux autres qui seront répertoriés et les données qui leur sont attribuées ce sont leur poids respectifs en fonction de leur age.

Alors voilà l'idée, pour chacun individu, le fait une page sur mon site, et j'aimerai faire une courbe de poids pour chacun, et que tous les mois quand je les pèse, j'ai juste a entrer les nouvelles données dans ma base de donnée pour que toutes mes courbes se mettent à jours toute seule.

Si je prend l'exemple d'acidofilo, je voudrais donc faire une courbe avec en ordonnée son age, et en abscisse son poids.

J'ai donc regardé pas mal d'exemples sur le net, j'ai résussi a faire un graphique avec jpgraph comme librairie, voilà ce que ca donne :
http://www.piwyangel.fr/lespiwrats/l...cidofilo4.html

Maintenant je voudrais que les données du graph soit prise de ma base de données comme je l'ai expliqué, alors j'ai lu tout un truc sur jpgraph pour faire des graphiques avec une base de donnée, mais les codes sont mis pour faire des calcul à partir de la base de données, et moi je veux juste afficher telles quelles les données qui sont dedans.

Du coup je suis un peu pomme ^^

Si quelqu'un pouvait m'aider svp.

Merci d'avance
piwyangel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2011, 14h06   #2
Invité de passage
 
Femme
Inscription : septembre 2011
Messages : 13
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : septembre 2011
Messages : 13
Points : 2
Points : 2
Voilà le code que j'ai tenté après avoir épluché différent codes :

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
45
46
47
48
49
50
51
52
<?php
require_once("include_path_inc.php");
 
require_once("jpgraph.php");
require_once("jpgraph_line.php");
 
// Constantes (connexion mysql)
$myServer = "*****";
$myUser = "piwyangejoomla";
$myPass = "*****";
$myDB = "courbespoids";
 
// Connexion à la BDD
$s = @mysql_connect($myServer, $myUser, $myPass) or die ("Problème de connexion Mysql");
 
// Selection de la base de données
$d = @mysql_select_db($myDB) or die ("Problème de selection de la base de donnée");
 
//requete sql
$query = "select Age, Acidofilo from courbespoids order by Age";
// EXECUTION DE LA REQUETE QUERY
$result = mysql_query($query); 
 
//data pour le graphe
if ($myrow=mysql_fetch_array($result)) {
do {
$data[] = $myrow["Acidofilo"]; //contient les poids
$data_names[] = $myrow["Age"]; //contient les ages
}while ($myrow=mysql_fetch_array($result));
}
 
 
$largeur = 800;
$hauteur = 400;
 
// Initialisation du graphique
$graphe = new Graph($largeur, $hauteur);
// Echelle lineaire ('lin') en ordonnee et pas de valeur en abscisse ('text')
// Valeurs min et max seront determinees automatiquement
$graphe->setScale("textlin");
 
// Creation de la courbe
$courbe = new LinePlot($data);
// Ajout de la courbe au graphique
$graphe->add($courbe);
 
// Ajout du titre du graphique
$graphe->title->set("Courbe");
 
// Affichage du graphique
$graphe->stroke();
?>
Mais ca en marche pas Quelqu'un peut-il m'aider ?
piwyangel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2011, 18h40   #3
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
Va falloir détailler un peu le "ça ne marche pas" : tu obtiens une page blanche ? un message d'erreur ? une explosion de l'écran ?

Au passage :
Code :
1
2
3
4
5
6
7
//data pour le graphe
if ($myrow=mysql_fetch_array($result)) {
do {
$data[] = $myrow["Acidofilo"]; //contient les poids
$data_names[] = $myrow["Age"]; //contient les ages
}while ($myrow=mysql_fetch_array($result));
}
peut s'écrire aussi :
Code :
1
2
3
4
5
//data pour le graphe
while ($myrow=mysql_fetch_array($result)) {
$data[] = $myrow["Acidofilo"]; //contient les poids
$data_names[] = $myrow["Age"]; //contient les ages
}
(personnellement les do/while me donnent mal à la tête, mais après c'est toi qui voit)
__________________
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 21/09/2011, 15h06   #4
Invité de passage
 
Femme
Inscription : septembre 2011
Messages : 13
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : septembre 2011
Messages : 13
Points : 2
Points : 2
Et bien en fait j’appelle mon graphique sur ma page par le biais d'une image.

Et en fait au lieu d'avoir l'image du graphique sur ma page j’obtiens le nom de mon image que j'ai mis en "ALT" quoi.

Je vais essayer avec ton code
piwyangel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/09/2011, 13h38   #5
Invité de passage
 
Femme
Inscription : septembre 2011
Messages : 13
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : septembre 2011
Messages : 13
Points : 2
Points : 2
Ca marche toujours pas :'(
piwyangel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/09/2011, 21h42   #6
Nouveau Membre du Club
 
Inscription : juin 2009
Messages : 121
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 121
Points : 36
Points : 36
tu as aucun message d'erreur ?
tu as vérifier les valeurs de retour des méthodes que tu utilise ?
misakilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2011, 17h29   #7
Invité de passage
 
Femme
Inscription : septembre 2011
Messages : 13
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : septembre 2011
Messages : 13
Points : 2
Points : 2
Voilà ce que ça donne à l'écran : http://www.piwyangel.fr/lespiwrats/l...cidofilo4.html

Voilà le code de cette page qui insère la courbe :
Code :
1
2
 
<img alt="Courbe de poids" src="./../courbespoids/poidsacidofilo.php" />
Et le code de ma apge "poidsacidofilo.php" :
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
45
46
47
48
49
50
<?php
require_once("include_path_inc.php");
 
require_once("jpgraph.php");
require_once("jpgraph_line.php");
 
// Constantes (connexion mysql)
$myServer = "mysql5-28.perso";
$myUser = "piwyangejoomla";
$myPass = "*****";
$myDB = "courbespoids";
 
// Connexion à la BDD
$s = @mysql_connect($myServer, $myUser, $myPass) or die ("Problème de connexion Mysql");
 
// Selection de la base de données
$d = @mysql_select_db($myDB) or die ("Problème de selection de la base de donnée");
 
//requete sql
$query = "select Age, Acidofilo from courbespoids order by Age";
// EXECUTION DE LA REQUETE QUERY
$result = mysql_query($query); 
 
//data pour le graphe
while ($myrow=mysql_fetch_array($result)) {
$data[] = $myrow["Acidofilo"]; //contient les poids
$data_names[] = $myrow["Age"]; //contient les ages
}
 
 
$largeur = 800;
$hauteur = 400;
 
// Initialisation du graphique
$graphe = new Graph($largeur, $hauteur);
// Echelle lineaire ('lin') en ordonnee et pas de valeur en abscisse ('text')
// Valeurs min et max seront determinees automatiquement
$graphe->setScale("textlin");
 
// Creation de la courbe
$courbe = new LinePlot($data);
// Ajout de la courbe au graphique
$graphe->add($courbe);
 
// Ajout du titre du graphique
$graphe->title->set("Courbe");
 
// Affichage du graphique
$graphe->stroke();
?>
Comment savoir s'il y a un message d'erreur ?
piwyangel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2011, 17h31   #8
Invité de passage
 
Femme
Inscription : septembre 2011
Messages : 13
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : septembre 2011
Messages : 13
Points : 2
Points : 2
Ah si voilà ce qu'il me dit "Problème de selection de la base de donnée"
piwyangel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2011, 17h52   #9
Invité de passage
 
Femme
Inscription : septembre 2011
Messages : 13
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : septembre 2011
Messages : 13
Points : 2
Points : 2
Ouais j'ai trouvé mon erreur, j'ai mis le nom de ma table au lieu du nom de ma BDD. Du coup ça marche.

Maintenant j'aimerais savoir s'il serait possible de ne pas tenir compte d'une valeur si elle est nulle ?

J'explique, en fait y a des mois ou j'oublie de les peser, ce qui fait qu'il y a des fois ou les valeur sont nulles, c'est pas pour autant qu'il pesaient 0g a ce moment là. Alors j'aimerai que quand la valeur vaut 0, il en tienne pas compte et que la courbe rejoigne le point suivant.
Estce que c'est possible ou non ?
piwyangel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2011, 20h50   #10
Invité de passage
 
Femme
Inscription : septembre 2011
Messages : 13
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : septembre 2011
Messages : 13
Points : 2
Points : 2
Me voici avec un nouveau probleme...

Je n'arrive pas à mettre des titres à mes axes.

Mon 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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<?php
include("include_path_inc.php");
 
include("jpgraph.php");
include("jpgraph_line.php");
 
// Constantes (connexion mysql)
$myServer = "mysql5-28.perso";
$myUser = "piwyangejoomla";
$myPass = "********";
$myDB = "piwyangejoomla";
 
 
// Connexion à la BDD
$s = @mysql_connect($myServer, $myUser, $myPass) or die ("Problème de connexion Mysql");
 
// Selection de la base de données
$d = @mysql_select_db($myDB) or die ("Problème de selection de la base de donnée");
 
//requete sql
$query = "select Age, Adie from courbespoids order by Age";
// EXECUTION DE LA REQUETE QUERY
$result = mysql_query($query); 
 
//data pour le graphe
while ($myrow=mysql_fetch_array($result)) {
$data[] = $myrow["Adie"]; //contient les poids
$data_names[] = $myrow["Age"]; //contient les ages
}
 
 
$largeur = 800;
$hauteur = 400;
 
// Initialisation du graphique
$graphe = new Graph($largeur, $hauteur);
 
// Echelle lineaire ('lin') en ordonnee et pas de valeur en abscisse ('text')
// Valeurs min et max seront determinees automatiquement
$graphe->setScale("textlin");
 
// Creation de la courbe
$courbe = new LinePlot($data);
 
// Afficher les valeurs pour chaque point
$courbe->value->Show();
 
// Valeurs: Apparence de la police
$courbe->value->SetFormat('%d');
$courbe->value->SetColor("#320606");
 
// Chaque point de la courbe ****
// Type de point
$courbe->mark->SetType(MARK_CROSS);
// Couleur de remplissage
$courbe->mark->SetFillColor("#320606");
// Taille
$courbe->mark->SetWidth(5);
 
// Couleur de la courbe
$courbe->SetColor("#320606");
$courbe->SetCenter();
 
// Paramétrage des axes
     $graph->xaxis->title->Set("Age en mois");
     $graph->yaxis->title->Set("Poids en grammes");
 
 
// Ajout de la courbe au graphique
$graphe->add($courbe);
 
// Affichage du graphique
$graphe->stroke();
?>
Et le message d'erreur :
Fatal error: Call to a member function Set() on a non-object in /homez.420/piwyange/www/lespiwrats/l-equipage/courbespoids/poidsadie.php on line 65

Je ne comprend pas j'ai passé l'aprem à regarder des site et c'est bien ce code là pour mettre des titres, et ça ne marche pas

Quelqu'un a une idée ?
piwyangel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2011, 10h32   #11
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 ignore les valeurs nulles, personnellement je modifierais la requête qui récupère les données pour ne pas les prendre en compte.
Code sql :
1
2
3
4
SELECT Age, Adie 
FROM courbespoids 
WHERE Adie IS NOT NULL
ORDER BY Age
et pour tes titres, tu peux essayer cette syntaxe :
Code :
$graph->xaxis->SetTitle("Age en mois");
__________________
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
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h56.


 
 
 
 
Partenaires

Hébergement Web