 |
มีท่านใดเคยใช้ jpgraph ในการออกกราฟ แล้วเจอปัญหากราฟไม่วาดมั้ยครับ |
|
 |
|
|
 |
 |
|
ผมมีปัญหาการออกรายงานกราฟด้วย jpgraph ครับ
ผมจะออกรายงานกราฟด้วย jpgraph ครับ เขียน Query ให้ jpgraph พล๊อตกราฟให้ แต่มันไม่วาดกราฟให้อ่ะครับ เป็นดังรูปเลยครับ มันเกิดจากอะไร แล้วมีวิธีแก้ไขมั้ยครับ ขอบคุณครับ

โค้ด PHP ครับ
Code (PHP)
<?php
include("config.php");
define('TTF_DIR',dirname(__FILE__).'/fonts/');
include_once("libraries/jpgraph/src/jpgraph.php");
include_once("libraries/jpgraph/src/jpgraph_bar.php");
include_once("libraries/jpgraph/src/jpgraph_line.php");
include_once("libraries/jpgraph/src/jpgraph_flags.php");
$rpt_sql="select A50 from (Select A50, Case When A50=0 Then 0 Else A1512/A50 End As A51,
MinA15 As A52, MaxA15 As A53, A54, A55,
Case When A50=0 Then 0 Else A55/A50 End As A56,
A57, A58, A59,
Case When A50=0 Then 0 Else A59/A50 End As A60
From (
Select Sum(A12) As A50,
Sum(A15*A12) As A1512,
Min(A15) As MinA15,
Max(A15) As MaxA15,
Sum((A12*A15)/100) As A54,
Sum(A13) As A55,
Min(A13/A12) As A57,
Max(A12/A12) As A58,
Sum(A14) As A59
From acq Where A17>='".$start_date."' and A17<='".$end_date."') As A) as B
";
mysql_query('set names utf8');
$rpt_query=mysql_query($rpt_sql) or die('Error query ['.$rpt_sql.']');
while($rpt_rows= mysql_fetch_array($rpt_query)){
$ydata[]=$rpt_rows["A50"];
$xdata[]=iconv('TIS-620', 'UTF-8', 'ระบบ');
}
$graph=new Graph(1000,900);
$graph->SetScale("textlin");
$graph->SetMarginColor('white');
$graph->SetBackgroundGradient("white","whitesmoke",GRAD_HOR, BGRAD_MARGIN);
$graph->SetShadow();
$graph->SetMargin(200,100,100,300);
$graph->title->Set("กราฟแสดงรายงาน");
$graph->title->SetFont(FF_ANGSA,FS_BOLD,25);
$graph->subtitle->Set("แบบ EXTRA-LOAD");
$graph->subtitle->SetFont(FF_ANGSA,FS_BOLD,25);
$graph->xaxis->title->SetFont(FF_ANGSA,FS_BOLD,18);
$graph->yaxis->title->SetFont(FF_ANGSA,FS_BOLD,18);
$graph->xaxis->SetTickLabels($xdata);
$graph->xaxis->SetLabelAngle(45);
$graph->xaxis->SetFont(FF_ANGSA,FS_NORMAL,15);
$graph->SetMarginColor('white');
$graph->SetBackgroundGradient("white","whitesmoke",GRAD_HOR, BGRAD_MARGIN);
$bplot = new BarPlot($ydata);
$bplot->SetFillGradient('white','orchid',GRAD_VERT);
$bplot->SetColor('gainsboro');
$bplot->SetWeight(1);
$bplot->value->Show();
$bplot->value->SetFont(FF_ANGSA,FS_BOLD,15);
$bplot->value->SetAngle(45);
$graph->Add($bplot);
$graph->Stroke();
?>
Tag : PHP, MySQL, HTML/CSS, Report Others
|
|
 |
 |
 |
 |
Date :
2014-10-06 09:49:02 |
By :
itsara.ra |
View :
1786 |
Reply :
10 |
|
 |
 |
 |
 |
|
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ลองคลิกที่รูป ปกติมันจะเป็น URL เพื่อแสดงรูปภาพ ลอง Copy แล้วเอามารันมาดู มันน่าจะมี Error ครับ
|
 |
 |
 |
 |
Date :
2014-10-06 11:19:03 |
By :
mr.win |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ฟังก์ชัน gd ในไฟล์ php.ini ผมก็ Enabled แล้ว แต่ jpgraph ก็ยังไม่วาดกราฟให้ มันเป็นเพราะอะไรได้บ้างครับ ?

โค้ด PHP (images.php)
<?php
include("config.php");
define('TTF_DIR',dirname(__FILE__).'/fonts/');
include_once("libraries/jpgraph/src/jpgraph.php");
include_once("libraries/jpgraph/src/jpgraph_bar.php");
include_once("libraries/jpgraph/src/jpgraph_line.php");
include_once("libraries/jpgraph/src/jpgraph_flags.php");
$rpt_sql="select A50 from (Select A50, Case When A50=0 Then 0 Else A1512/A50 End As A51,
MinA15 As A52, MaxA15 As A53, A54, A55,
Case When A50=0 Then 0 Else A55/A50 End As A56,
A57, A58, A59,
Case When A50=0 Then 0 Else A59/A50 End As A60
From (
Select Sum(A12) As A50,
Sum(A15*A12) As A1512,
Min(A15) As MinA15,
Max(A15) As MaxA15,
Sum((A12*A15)/100) As A54,
Sum(A13) As A55,
Min(A13/A12) As A57,
Max(A12/A12) As A58,
Sum(A14) As A59
From acq Where A17>='2014-01-01' and A17<='2014-10-01') As A) as B
";
mysql_query('set names utf8');
$rpt_query=mysql_query($rpt_sql) or die('Error query ['.$rpt_sql.']');
while($rpt_rows= mysql_fetch_array($rpt_query)){
$ydata[]=$rpt_rows["A50"];
//$xdata[]=iconv('TIS-620', 'UTF-8', $rpt_rows["major_name"]);
$xdata[]=iconv('TIS-620', 'UTF-8', 'aa');
}
$graph=new Graph(1000,900);
$graph->SetScale("textlin");
$graph->SetMarginColor('white');
$graph->SetBackgroundGradient("white","whitesmoke",GRAD_HOR, BGRAD_MARGIN);
$graph->SetShadow();
$graph->SetMargin(200,100,100,300);
$graph->title->Set("กราฟแสดงรายงานยอดเงินค่าสอนพิเศษ");
$graph->title->SetFont(FF_ANGSA,FS_BOLD,25);
$graph->subtitle->Set("แบบ EXTRA-LOAD");
$graph->subtitle->SetFont(FF_ANGSA,FS_BOLD,25);
//$graph->xaxis->title->Set("สาขา");
$graph->xaxis->title->SetFont(FF_ANGSA,FS_BOLD,18);
//$graph->yaxis->title->Set("บาท");
$graph->yaxis->title->SetFont(FF_ANGSA,FS_BOLD,18);
$graph->xaxis->SetTickLabels($xdata);
$graph->xaxis->SetLabelAngle(45); // ตรงนี้ทำให้ข้อมูลเป็นแนวเฉียงนะคะ
$graph->xaxis->SetFont(FF_ANGSA,FS_NORMAL,15);
$graph->SetMarginColor('white');
$graph->SetBackgroundGradient("white","whitesmoke",GRAD_HOR, BGRAD_MARGIN);
$bplot = new BarPlot($ydata);
$bplot->SetFillGradient('white','orchid',GRAD_VERT);
$bplot->SetColor('gainsboro');
$bplot->SetWeight(1);
$bplot->value->Show();
$bplot->value->SetFont(FF_ANGSA,FS_BOLD,15);
$bplot->value->SetAngle(45);
$graph->Add($bplot);
$graph->Stroke();
?>
|
ประวัติการแก้ไข 2014-10-06 17:20:52
 |
 |
 |
 |
Date :
2014-10-06 17:20:20 |
By :
itsara.ra |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
คุณตอบคำถามของแอดมินหรือยังครับ....
"ลองคลิกที่รูป ปกติมันจะเป็น URL เพื่อแสดงรูปภาพ ลอง Copy แล้วเอามารันมาดู มันน่าจะมี Error ครับ"
ได้ผลรับอย่างไร
ถ้าถูกต้อง มันต้องขึ้นเป็น url ของรูป
ถ้าผิดมันคงมีอะไรฝากมาเยอะแยะ
คำตอบคือ??
|
 |
 |
 |
 |
Date :
2014-10-06 18:43:53 |
By :
apisitp |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
คลิกขวาที่รูปดู URL ของรูปมันเป็นดังภาพครับ

|
ประวัติการแก้ไข 2014-10-06 21:16:59 2014-10-06 21:17:35
 |
 |
 |
 |
Date :
2014-10-06 21:16:10 |
By :
itsara.ra |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เรียกไฟล์ http://localhost/starch/image.php เลยครับ
|
 |
 |
 |
 |
Date :
2014-10-07 09:14:03 |
By :
mr.win |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ลองแก้ Path เป็น http://localhost/starch/images.php แล้วครับ แต่กราฟก็ยังไม่แสดงเหมือนเดิมครับ

ผมลองเข้าไปดู Example ของ jpgraph แล้วมันก็เป็นปัญหาไม่แสดงกราฟแบบเดียวกันเลยครับ

มันเกิดจากอะไรได้บ้างครับ
|
 |
 |
 |
 |
Date :
2014-10-07 09:32:57 |
By :
itsara.ra |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
คุณไม่ต้องแก้ path แต่เอา path นี่ http://localhost/starch/image.php ไปวางในเบราเซอร์แล้วลองรันดู...
ไม่ได้ให้เปลี่ยนพาธ เอาไปวางแล้วผลมันว่าไง มันขึ้น Error ไหม
|
 |
 |
 |
 |
Date :
2014-10-07 09:37:47 |
By :
apisitp |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ลองเอา Path ไปรันแล้วก็เป็นเหมือนเดิมครับผม

|
 |
 |
 |
 |
Date :
2014-10-07 09:59:20 |
By :
itsara.ra |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เรียก กราฟมาแสดง
<iframe width='550px' height='250px' src='TTspc.php' ></iframe>
file ข้อมูลของกราฟ
<?php
include ('jpgraph/src/jpgraph.php');
include ("jpgraph/src/jpgraph_bar.php");
include ("jpgraph/src/jpgraph_line.php");
$objConnect = mysql_connect("localhost","root","1234") or die("Error Connect to Database");
$objDB = mysql_select_db("Tod");
$strSQL = "SELECT * FROM Tspc";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
$datay=array();
while($objResult = mysql_fetch_array($objQuery))
{
$datay[] = $objResult["ASYMMETRY"];
}
// Create the graph.
$graph = new Graph(350,300);
$graph->SetScale("textlin");
$graph->SetMarginColor('navy:1.9');
$graph->SetBox();
$graph->title->Set('Bar Pattern');
$graph->title->SetFont(FF_ARIAL,FS_BOLD,20);
$graph->SetTitleBackground('lightblue:1.3',TITLEBKG_STYLE2,TITLEBKG_FRAME_BEVEL);
$graph->SetTitleBackgroundFillStyle(TITLEBKG_FILLSTYLE_HSTRIPED,'lightblue','blue');
// Create a bar pot
$bplot = new BarPlot($datay);
$bplot->SetFillColor('darkorange');
$bplot->SetWidth(0.6);
$bplot->SetPattern(PATTERN_CROSS1,'navy');
$graph->Add($bplot);
$graph->Stroke();
?>
|
 |
 |
 |
 |
Date :
2014-10-07 11:17:05 |
By :
<_> |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|