des graphiques en php c possible ? - PHP - Programmation
Marsh Posté le 27-12-2002 à 09:39:07
kayasax a écrit : |
Oui c 'est possible : ça fait longtemps que j'en ai pas fait mais ça existe. Par contre tu auras un pb si tu veux les faire en GIF (vecu)
Marsh Posté le 27-12-2002 à 09:43:26
Sans GD, c'est chaud, mais il semble me souvenir qu'un gars avait développé un librairie en PHP pour faire comme GD parque-que sont hébergeur ne proposait pas GD.
Quand à savoir où trouver çà, je n'en ai plus aucune idée !
Donc, pour conclure :
Oui, c'est possible !
Marsh Posté le 27-12-2002 à 09:43:38
kayasax a écrit : mais à part ca ? |
Je peux pas trop t'aider en fait, faut que tu demandes à Joce (MP) lui il aura certainement la solution
Marsh Posté le 27-12-2002 à 09:44:09
sans gd je dirais que c'est soit impossible soit très très chiant à faire des courbes..
c'est comme vouloir planter des clous (tes courbes) sans marteau (la GD)
Marsh Posté le 27-12-2002 à 09:45:33
bon...mais d'apres ce que je comprends il faut compiler la gd or mon serveur est sous win et moi y'en a pas de compilo ...
Marsh Posté le 27-12-2002 à 09:46:41
Ben si t'es sous win, t'as mis quoi comme PHP ?
Marsh Posté le 27-12-2002 à 09:46:45
bin tu peux en récupérer une compilée pour ta version de php, suffit de rechercher gd.dll + ta version de php
Marsh Posté le 27-12-2002 à 09:48:29
En fait, y'a même des chances que tu l'ai déjà !
Marsh Posté le 27-12-2002 à 09:49:51
Mara's dad a écrit : En fait, y'a même des chances que tu l'ai déjà ! |
dans la distrib ? j'ai meme pas regardé en fait ...
edit a ben t'as raison le phpinfo m'informe que la gd est enable
Marsh Posté le 27-12-2002 à 11:11:47
Tiens, ça serait pas possible de générer du svg?
Sinon pour gd, le gif est inutile vu qu'il y a le png.
Marsh Posté le 27-12-2002 à 11:15:12
merci à ceux qui m'ont aidé jusqu'a present.
j'ai deux question :
l'utilisation de GD fait elle perdre de la qualite aux images (png en l'occurence) ?? car j'ai une texture et si je fais un imagecreatefrompng() et un Imagestring() (insertion de texte dans l'image) la texture devient toute dégueu
sinon donc pour tracer mes graphs j'en suis la :
|
Ca marche pas mal mais l'axe des abscisse ne s'affiche pas je comprends pas pkoi .
sinon question + ou - liée comment on insere le resultat d'une requete dans un tableau ? (un enregistrement par ligne, un champs par colone)
encore
Marsh Posté le 27-12-2002 à 11:41:30
te casse pas trop la tête
http://www.aditus.nu/jpgraph/
une bibliothèque de classes php pour créer des graphiques facilement.
c très puissant
Marsh Posté le 27-12-2002 à 12:04:51
ok Ethernal ca a l'air pas mal en effet .
Sinon pour stocker le resu d'une requete dans un tabeau tu peux m'aider stp ?
while($nb=mysql_fetch_array($resu))
{
?? each ..???
}
Marsh Posté le 27-12-2002 à 12:24:08
while($nb=mysql_fetch_array($resu))
{
echo $nb['key1']. ' '.$nb['key2];
}
il est dans un tableau...
tu veux le mettre dans un autre ?
//la clé d'accès est l'id de l'enreg (en général c'est plus facile)
//si tu ne veux pas de clés d'accès, regarde sur php.net mysql_fetch_array($result, args) --> accès par clé ou numéro
while($nb=mysql_fetch_array($resu))
{
$tab[$nb['id']]= $nb;
}
//affichage
while(list($key,$row)=each($tab)){
echo $key. ' '. $row['key1'].' '.$row['key2'];
}
faut voir ce que tu veux réellement
Marsh Posté le 27-12-2002 à 12:37:13
heu en fait je me perd un peu, je crois que je vais laisser reposer tt ca et je reprendrai la semaine prochaine
en fait ce que je veux :
g une table qui contient le % d'espace dique libre sur mes serveurs avec des dates
et je veux avoir le graph de l'evolution de cet espace libre (1 graph par serv.)
-> select * from ma table order by nom,date
si nom du seveur != nom d'avant -> nouveau graph
sinon => inserer dans un tableau la date et le % d'espace libre
faire le graph avec valeurs du tableau
c'est sur la ligne en rouge que je scotche un peu a chaque fois je me prends la tete avec each foreach ...
Marsh Posté le 27-12-2002 à 12:55:17
Code :
|
ou bien, pas besoin de tableau intermédiaire
Code :
|
Marsh Posté le 27-12-2002 à 13:30:48
whaou quel service : je rentre de manger et tu m'as tout fé !!
je comprends pas trop le 2eme script, le 1er ok et il me manquait la 3eme dimension à mon tablo c pour ca que je galerai =)
un grand merci ! ++
edit euh non en fait je capte pas trop ce que tu fais...
peux tu detailler ces 2 instructions stp ? il sort d'ou le tab2 ?:
while(list($server,$tab2)= each($tab)){
//create image
while(list($date,$free)= each($tab2)){
//generate image
Marsh Posté le 27-12-2002 à 14:21:10
$tab2 n'existe pas, il est issus de la décomposition de $tab
comme qd tu as $tab[key]= "val";
tu fais list($key, $val)= each($tab);
si tu as un tableau comme valeur
$tab[key]= array('tt','yy';
tu fais list($key, $tab2)= each($tab);
$tab2 est la valeur du tableau $tab pour la clé "key" et est un tableau
Marsh Posté le 27-12-2002 à 14:21:32
si je te dis que
while(list($server,$tab2)= each($tab)){
équivaut à
foreach ($tab AS $server => $tab2) {
ça va mieux ?
Marsh Posté le 27-12-2002 à 14:23:45
voila Sh@rdar l'explique encore mieux
Marsh Posté le 27-12-2002 à 15:09:42
mouais ...bon je laisse tomber les dates et tableaux a mutli dimension pour le moment...
voila ou j'en suis suite a vos conseils :
|
Ca marche impec mais uniquement pour mon 1er serveur , je pense que je merdoie avec jpgraph mais ou ..??
Marsh Posté le 27-12-2002 à 15:16:25
tu dois encore sauver l'image après la boucle.
regarde mon algo précédent.
-> après ta boucle
while($row= ...){
}
$graph = new Graph(600,300); //on cree le graph du serv. precedent
$graph->SetScale("textlin" );
// On créé un tracé
$lineplot=new LinePlot($tab);
// On ajoutte ce tracé au graph
$graph->Add($lineplot);
// On affiche le graphique
$graph->Stroke();
Marsh Posté le 27-12-2002 à 15:24:20
désolé ethernal mais meme en rajoutant ce code apres le while je n'ai que le graph de mon 1er serveur ,
ce n'est pas parce que je crée des graphs de meme nom a chaque occurence de ma boucle while ?? ($graph = new Graph(600,300); )
-> faut pas donner un nom different a chaque graph ??
sinon g essaye ca :
|
echo "<img src=\"dessin.php?tab=$tab\">";
|
et dans dessin.php
|
=> La j'ai le bon nombre d'image mais les graphs ne sont pas crées (pb envoie du tableau en parametre ?)
Marsh Posté le 27-12-2002 à 15:47:26
tu as sans doute raison, je n'ai jamais utilisé jpgraph donc je ne sais pas trop comment ça fct.
graph->stroke() fait koi ? génère une image ? ou envoi un header d'affichage etc ? je vois pas trop
tu dois qd même faire un echo pour afficher non ?
donner un autre nom est sans doute une bonne idée
$graph[] = new Graph(600,300);
ou
$graph[$row['server']] = new Graph(600,300);
Marsh Posté le 27-12-2002 à 15:47:46
pour le passsage du tableau en parametre g trouve :
echo "<img src=\"dessin.php?";
while($i<sizeof($tab))
{echo"tab[$i]=$tab[$i]&";
$i++;}
echo "\">";
donc g le bon nombre de graphs les bonnes données mais chaque graph se cumule au précedent c lié a quoi ?? (meme en donant un nom different a chqe grqphe)
=> reset($tab) vide bien le tableau pourtant non ??
Marsh Posté le 27-12-2002 à 16:06:09
je sais pas trop à quoi c'est du (là je suis en plein préparatif pour partir au ski )
reset($tab) remet le curseur de lecture au début
$tab= array(); initialise à un tableau vide
sinon pour simplifier utilise serialize($tab) pour le faire passer dans l'url et unserialize($tab) pour le récupérer dans dessin.php
Marsh Posté le 27-12-2002 à 16:11:42
ethernal a écrit : je sais pas trop à quoi c'est du (là je suis en plein préparatif pour partir au ski ) |
, bon w-e et bon ski !! moi c la semaine prochaine j'espere que le temps va se refroidir !!!
Marsh Posté le 27-12-2002 à 16:15:26
Code :
|
Marsh Posté le 27-12-2002 à 16:16:23
kayasax a écrit : |
thx
on se croisera peut-être
je vais à La Plagne
a+
Marsh Posté le 27-12-2002 à 16:50:31
ethernal a écrit : te casse pas trop la tête |
/!\ JPGraph est sous licence QPL, ce qui signifie que si tu fais un site perso (sans revenu quelconque), ou un truc pour un projet opensource ca va, mais si c'est pour un projet commercial, un site web de société ou quoi que ce soit d'autre, tu dois payer une jolie licence.
Marsh Posté le 27-12-2002 à 16:52:08
Zion a écrit : |
bof... c'est pour l'intranet au boulotn, merci qd meme de la precision
Marsh Posté le 27-12-2002 à 09:35:31
bon pour faire des histogrammes y a pas de pb mais c'est possible de faire des "courbes" en php (ie : tracer une ligne entre 2 points) , sans installer GD si possible parceque ca m'a l'air assez complexe ...
Message édité par kayasax le 27-12-2002 à 09:36:54