$strSQL = "SELECT * FROM recorddaily WHERE Date BETWEEN '".($_POST['start'])."'
and '".($_POST['end'])."' AND UserID = ".($_GET['UserID'])." ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
// Create the first line
$p1 = new LinePlot($datay);
$p2 = new PlotLine(HORIZONTAL,$num,'orange',5);
$p3 = new PlotLine(HORIZONTAL,80,'blue',15);
$p4 = new PlotLine(HORIZONTAL,120,'green',15);
$p5 = new PlotLine(HORIZONTAL,200,'yellow',15);
$p6 = new PlotLine(HORIZONTAL,300,'pink',15);
$p7 = new PlotLine(HORIZONTAL,350,'red',15);
$p2->SetLegend("Average");
$p3->SetLegend("Low<80");
$p4->SetLegend("Good 80-120");
$p5->SetLegend("RiskDanger 121-200");
$p6->SetLegend("Danger 200-300");
$p7->SetLegend("VeryDanger >300");
$graph->Add($p1);
$graph->Add($p2);
$graph->Add($p3);
$graph->Add($p4);
$graph->Add($p5);
$graph->Add($p6);
$graph->Add($p7);
//$p1->SetColor("#6495ED");
//$p1->SetLegend('Line 1');
$p1->value->Show();
$p1->mark->SetType(MARK_FILLEDCIRCLE);
//$p1->SetLegend("Product 1");
$graph->legend->SetFrameWeight(1);
// Output line
$graph->Stroke();
}
catch (JpGraphException $e)
{
//JpGraphError::Raise($e->getMessage());
//throw new JpGraphException('Please enter at least two days to see the chart above.');
$e->Stroke();
}
?>
นี้อ่ะคับ โค้ด กราฟ
คือผมต้องการหาค่าเฉลี่ยด้วยเลย ใช้ พวก sum count ไป
// ถ้าจำนวนสมาชิกในตัวแปร $datay == 1
if(count($datay)==1){
// ให้โยน Exception ออกมา (error)
throw new JpGraphException('Please enter at least two days to see the chart above.');
}
$strSQL = "SELECT * FROM recorddaily WHERE Date BETWEEN '".($_POST['start'])."'
and '".($_POST['end'])."' AND UserID = ".($_GET['UserID'])." ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
// เช็คก่อนว่าหาข้อมูลเจอหรือไม่
if (!mysql_num_rows($objQuery)) {
// จบการทำงาน หรือแสดง error อะไรก็ว่าไป
exit;
}
$datay=array();
// เพราะถ้าไม่เจอข้อมูล ใน block ส่วน while จะไม่ทำงาน และจำนวนสมาชิก $datay จะเป็น 0
// เพราะไม่มีการเพิ่มสมาชิกให้กับ $datay
while($objResult = mysql_fetch_array($objQuery))
{
$datay[] = $objResult["Sugar"];
$date[] = $objResult["Date"];
}
// และตรงนี้ count จะให้ผลเป็น 0 เมื่อนำไปหารกับ array_sum($datay)
// มันจึงเป็นการหารด้วย 0 (Division by zero) ซึ่งเป็น error ในโปรแกรมคอมพิวเตอร์ทั่วไปครับ
$num = array_sum($datay)/count($datay);
if(count($datay)==1){
throw new JpGraphException('Please enter at least two days to see the chart above.');
}