|
|
|
ขอความช่วยเหลือ เกี่ยวกับ +++++ Jpgraph +++++ ค่ะ |
|
|
|
|
|
|
|
รบกวนผู้รู้ทุกท่านค่ะ ขอความช่วยเหลือ เนื่องจาก กราฟไม่แสดงค่ะ ขึ้น error
The image ?http://localhost/graph2.php? cannot be displayed, because it contains errors.
ซึ่งไม่ทราบค่ะ ว่า error ตรงไหน
ไฟล์กราฟค่ะ
<?php
require_once("jpgraph/jpgraph.php");
require_once("jpgraph/jpgraph_line.php");
require_once("test03.php");
/*for ($i = 0; $i < count($equipment_object); $i++)
{
for ($j = 0; $j < 8; $j++)
echo $equipment_object[$i]->time_frame[$j] . "<br />";
}
*/
$ydata = array($equipment_object[0]->time_frame[0], $equipment_object[0]->time_frame[1], $equipment_object[0]->time_frame[2], $equipment_object[0]->time_frame[3], $equipment_object[0]->time_frame[4], $equipment_object[0]->time_frame[5], $equipment_object[0]->time_frame[6], $equipment_object[0]->time_frame[7]);
//$ydata = array(18,30,44,28,60,38,90,67);
$xdata = array("06 am. - 09 am.","09 am. - 12 pm.","12 pm. - 03 pm.","03 pm. - 06 pm.","06 pm. - 09 pm.","09 pm. - 00 am.","00 am. - 03 am.","03 am. - 06 am.");
$mygraph = new Graph(380,260);
$mygraph->SetScale("textlin");
$mygraph->title->Set("Light 1");
$mygraph->xaxis->title->Set("Time");
$mygraph->yaxis->title->Set("Frequency");
$mygraph->xaxis->SetTickLabels($xdata);
$mygraph->SetShadow();
$mygraph->SetMargin(85,50,40,70);
$mygraph->SetMarginColor("palegreen2");
//$mygraph->xaxis->SetColor('blue');
//$mygraph->yaxis->SetColor('blue','red');
/*Set Weight*/
$mygraph->yaxis->SetWeight(2);
$mygraph->xaxis->SetWeight(2);
$mygraph->title->SetMargin(15);
/*Set title font*/
//$mygraph->title->SetFont(FF_FONT2,FS_BLOD);
/*Set Title Color*/
//$mygraph->title->SetColor("maroon1");
$mygraph->xaxis->SetFont(FF_ARIAL,FS_NORMAL,8);
$mygraph->yaxis->SetFont(FF_ARIAL,FS_NORMAL,9);
$mygraph->xaxis->SetLabelMargin(15);
$mygraph->xaxis->SetTitleMargin(0);
$mygraph->yaxis->SetTitleMargin(30);
/*45 degree angle x label*/
$mygraph->xaxis->SetLabelAngle(20);
$mygraph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
$mygraph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
$line1 = new LinePlot($ydata);
$line1->SetColor("gray");
$line1->SetWeight(2);
$line1->value->Show();
$line1->value->SetColor("black");
$line1->value->SetFont(FF_FONT1);
$line1->mark->SetType(MARK_IMG_SBALL,'orange',0.5);
$mygraph->Add($line1);
$mygraph->Stroke();
?>
ไฟล์กราฟได้เรียกใช้ข้อมูล ydata จาก ไฟล์ test03.php ค่ะ
ไฟล์ที่ใช้คำนวณ ydata ค่ะ
<?php
require_once 'DB.php';
$search_datetime = "2009-02-11 00:00:00";
$search_time = strtotime($search_datetime);
class Equipment
{
var $name = "";
var $is_active = false;
var $time_start = "";
var $time_end = "";
var $time_frame = array(0, 0, 0, 0, 0, 0, 0, 0);
function Equipment($name)
{
$this->name = $name;
}
}
$equipment_object = array(
$light01 = new Equipment("Light01"),
$light02 = new Equipment("Light02"),
$light03 = new Equipment("Light03"));
//print_r($equipment_object);
function EnableEquipment($equipment, $date_time)
{
if (!$equipment->is_active)
{
//echo 'Open : ' . $equipment->name . '<br />';
$equipment->is_active = true;
$equipment->time_start = strtotime($date_time);
}
}
function DisableEquipment($equipment, $date_time, $search_time)
{
if ($equipment->is_active)
{
//echo 'Close : ' . $equipment->name . '<br />';
$equipment->is_active = false;
$equipment->time_end = strtotime($date_time);
$result = SecondToMinute($equipment->time_end - $equipment->time_start);
//echo "<b>" . $equipment->name ." : " . $result . " minute</b><br />";
$index_start = floor(SecondToMinute($equipment->time_start - $search_time) / 180);
$index_end = floor(SecondToMinute($equipment->time_end - $search_time) / 180);
//echo $index_start . " - " . $index_end . "<br />";
$temp_seek = SecondToMinute($equipment->time_start - $search_time);
for ($i = $index_start; $i < $index_end; $i++)
{
$time_seek = (180 * ($i + 1)) - $temp_seek;
$equipment->time_frame[$i] += $time_seek;
$result -= $time_seek;
$temp_seek = (180 * ($i + 1));
}
$equipment->time_frame[$index_end] += $result;
}
}
function SecondToMinute($time_second)
{
return floor($time_second / 60);
}
@$db = DB::connect('mssql://admin-e15aebbb5/msn_database');
if (DB::isError($db))
{
echo 'Cannot connect to database: ' . $db->getMessage();
}
else {
//print "Connected<br>\n";
$sql="select * from log_file";
$resdb =& $db->query($sql);
$tableinfo = $db->tableInfo($resdb);
$resdb=$db->getAll($sql);
if (PEAR::isError($resdb)) {
print "Error [$sql], ".$resdb->getMessage(). "<br>\n";
exit;
}
else {
for ($i = 0; $i < count($resdb); ++$i) {
$eng_com = $resdb[$i][1];
$date_time = $resdb[$i][4];
if ((strtotime($date_time) - $search_time) >= (3600 * 24))
{
break;
}
else if ((strtotime($date_time) - $search_time) < 0)
{
continue;
}
//echo $eng_com . ' | ' . $date_time . '<br />';
switch ($eng_com)
{
case "OpenAll" :
foreach ($equipment_object as $equipment)
{
EnableEquipment($equipment, $date_time);
}
break;
case "CloseAll" :
foreach ($equipment_object as $equipment)
{
DisableEquipment($equipment, $date_time, $search_time);
}
break;
case "OpenLight1" :
EnableEquipment($equipment_object[0], $date_time);
break;
case "CloseLight1" :
DisableEquipment($equipment_object[0], $date_time, $search_time);
break;
case "OpenLight2" :
EnableEquipment($equipment_object[1], $date_time);
break;
case "CloseLight2" :
DisableEquipment($equipment_object[1], $date_time, $search_time);
break;
case "OpenLight3" :
EnableEquipment($equipment_object[2], $date_time);
break;
case "CloseLight3" :
DisableEquipment($equipment_object[2], $date_time, $search_time);
break;
case "ChangeStatusAll" :
foreach ($equipment_object as $equipment)
{
if ($equipment->is_active)
{
DisableEquipment($equipment, $date_time, $search_time);
}
else
{
EnableEquipment($equipment, $date_time);
}
}
break;
case "ChangeStatusLight1" :
if ($equipment_object[0]->is_active)
{
DisableEquipment($equipment_object[0], $date_time, $search_time);
}
else
{
EnableEquipment($equipment_object[0], $date_time);
}
break;
$ydata = array($equipment_object[0][0], $equipment_object[0][1], $equipment_object[0][2], $equipment_object[0][3], $equipment_object[0][4], $equipment_object[0][5], $equipment_object[0][6], $equipment_object[0][7]);
}
}
}
}
$db->disconnect();
// Output
//echo "<br />";
//echo "<h1>Report : </h1>";
/*foreach ($equipment_object as $equipments)
{
echo '<b>' . $equipments->name . '</b><br />';
foreach ($equipments->time_frame as $key => $value)
{
echo "(" . ($key * 3) . ".00 - " . ($key * 3 + 2.59) . ") => " . $value . ' minute<br />';
}
}*/
?>
ซึ่งในตอนแรกดิฉันได้ลอง set ค่า ydata เป็นค่าตัวเลขธรรมดา ก็ปรากฎว่า กราฟได้แสดงปกติ แต่พอเรียกใช้ ydata จากไฟล์อื่นเท่านั้น กราฟก็ error ค่ะ
ดิฉันจึงลอง สร้างไฟล์ใหม่แล้วเรียก ปริ๊น ydata จาก ไฟล์ test03.php ดู ก็ปรากฏว่า แสดงข้อมูลได้ปกติไม่มี error ใดๆเกิดขึ้น ซึ่งข้อมูลของ ydata ที่ปริ๊นออกมาดูได้ดังนี้ 0 147 180 180 180 180 180 156 ซึ่งเป็นข้อมูลที่ถูกต้อง แต่พอไฟล์สองไฟล์คือไฟล์ graph และไฟล์ที่ใช้คำนวนสูตร มาทำงานร่วมกันเท่านั้นก็เกิด error ขึ้น ซึ่งหาไม่พบว่าต้นเหตุมาจากอะไร จึงรบกวนขอคำแนะนำและความช่วยเหลือจากผู้รู้ทุกๆท่านด้วยค่ะ
ขอขอบคุณทุกท่านมา ณ ที่นี้ค่ะ
Tag : - - - -
|
|
|
|
|
|
Date :
2009-05-20 19:37:40 |
By :
Eniac |
View :
1466 |
Reply :
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่ทราบว่า gd2 กับ iconv ทำงานหรือป่าวครับ
|
|
|
|
|
Date :
2009-05-21 14:44:55 |
By :
versaa |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<?php
require_once("test03.php");
print_r($equipment_object[0]->time_frame);
?>
ลองดูครับ ว่ามันมีข้อมูลเป้นยังงัย
|
|
|
|
|
Date :
2009-05-22 18:20:07 |
By :
lozomac |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณมากค่ะ ทุกท่าน
ตอนนี้กราฟโชว์แล้วค่ะ
ขอบคุณทุกๆท่านมากน่ะค่ะ ที่เข้ามาช่วยเหลือ
|
|
|
|
|
Date :
2009-05-23 23:07:40 |
By :
Eniac |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
โชว์แล้วหรอ ยินดีด้วยนะ
|
|
|
|
|
Date :
2009-05-24 01:55:31 |
By :
plakrim |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|