|
|
|
เรียนถามท่านผู้รู้ คือดิฉันต้องการสร้าง กราฟ 2เส้นโดยดึงข้อมูลมาจาก database |
|
|
|
|
|
|
|
เรียนถามท่านผู้รู้ คือดิฉันต้องการสร้างกราฟ 2เส้นโดยดึงข้อมูลมาจาก database
ดึงข้อมูล 5 ครั้ง
ครั้งที่1 ดึงมาเพื่อเอาข้อมูลเดื่อนเริ่มต้น
ครั้งที่2 ดึงมาเพื่อเอาข้อมูลที่เป็นplanningรับเงิน
ครั้งที่3 ดึงมาเพื่อเอาข้อมูลที่เป็นplanningจ่ายเงิน
แล้วเอาข้อมูล ครั้งที่2-ครั้งที่3
$a =ครั้งที่2-ครั้งที่3
ครั้งที่4 ดึงมาเพื่อเอาข้อมูลที่เป็นActualรับเงิน
ครั้งที่5 ดึงมาเพื่อเอาข้อมูลที่เป็นActualจ่ายเงิน
แล้วเอาข้อมูล ครั้งที่4-ครั้งที่5
$b =ครั้งที่4-ครั้งที่5
Code (PHP)
<?php
include("JpGraph/src/jpgraph.php");
include("JpGraph/src/jpgraph_line.php");
$project =$_REQUEST['DeptCode'];
include("db/connect.php");
include("function/funcdate.php");
$g = new Graph(900,400);
$g->SetScale("textlin");
$title=iconv('TIS-620','UTF-8',"ประมาณการกระแสเงินสดเทียบกับกระแสเงินสดของโครงการ");
$g->title->Set($title);
$g->title->SetFont(FF_JASMINE,FS_BOLD,16);
//ครั้งที่1
$sql="SELECT o.DeptCode,o.ProjectCode, o.Amount,o.Description ,d.DeptName,o.StartDate
FROM openproject AS o INNER JOIN department AS d ON o.DeptCode = d.DeptCode
where o.ProjectCode='$project'";
$tebleopenproject =mysql_query($sql) or die("Error : $sql".mysql_error());
while($data1 = mysql_fetch_array($tebleopenproject)) {
$deptcodeO = $data1["DeptCode"];
$projectO = $data1["1"];
$amountO = $data1["2"];
$descriptionO = $data1["3"];
$depnameO = $data1['4'];
$startdateO = $data1['5'];
list($oyear,$omonth,$oday) =explode("-",$startdateO,3);
$oyear1 = $oyear+543;
}
//**********************************************************************************************************
$firstmonth = $omonth;
$firstyear = $oyear1;
$tmonth = $firstmonth;
$tyear = $firstyear;
$jobtype = array();
for ($i=1; $i<=12; $i++) {
if ($tmonth == 13 ) {
$tmonth = 1;
$tyear = $tyear + 1;
}
$jobtype[$i][1] = $tmonth; //1 ==> month
$jobtype[$i][2] = $tyear; // 2 ==> Year
$jobtype[$i][3] = 0.00; // 3 ==> amountpi
$jobtype[$i][4] = 0.00; // 4 ==> amountpo
$jobtype[$i][5] = 0.00; // 5 ==> amountai
$jobtype[$i][6] = 0.00; // 6 ==> amountao
$tmonth = $tmonth + 1;
}
//ครั้งที่2
$sql ="SELECT ProjectCode, year(TransDate), month(TransDate), sum(AmountCash)
FROM cashflow
WHERE TypeCode ='P' AND TransType='I' AND ProjectCode ='$project'
GROUP BY ProjectCode, year(TransDate), month(TransDate)
Order by year(TransDate) ASC, month(TransDate) ASC ";
$teblecashpi =mysql_query($sql) or die("Error : $sql".mysql_error());
$countpi = mysql_num_rows($teblecashpi);
while($data2 = mysql_fetch_array($teblecashpi)){
$projectpi =$data2['ProjectCode'];
$tyear = $data2["1"];
$tmonth = $data2["2"];
$sumamountpi = $data2["3"];
if ($firstyear == $tyear) { $i = ($tmonth - $firstmonth) + 1;}
if ($firstyear < $tyear) { $i = (12 - $firstmonth)+1 + $tmonth;}
$jobtype[$i][3] = $data2["3"];
}
//ครั้งที่3
$sql ="SELECT ProjectCode, year(TransDate), month(TransDate), sum(AmountCash)
FROM cashflow
WHERE TypeCode ='P' AND TransType='O' AND ProjectCode ='$project'
GROUP BY ProjectCode, year(TransDate), month(TransDate)
Order by year(TransDate) ASC, month(TransDate) ASC ";
$teblecashpo =mysql_query($sql) or die("Error : $sql".mysql_error());
while($data3 = mysql_fetch_array($teblecashpo)){
$projectpo =$data3['ProjectCode'];
$tyear = $data3["1"];
$tmonth = $data3["2"];
$sumamountpo = $data3["3"];
if ($firstyear == $tyear) { $i = ($tmonth - $firstmonth) + 1;}
if ($firstyear < $tyear) { $i = (12 - $firstmonth)+1 + $tmonth;}
$jobtype[$i][4] = $data3["3"];
}
//ครั้งที่4
$sql ="SELECT ProjectCode,year(TransDate),month(TransDate),sum(AmountCash)
FROM cashflow
WHERE TypeCode ='A' AND TransType='I' AND ProjectCode ='$project' AND TaxInvoiceNo <>''
GROUP BY ProjectCode, year(TransDate), month(TransDate)
Order by year(TransDate) ASC, month(TransDate) ASC ";
$teblecash =mysql_query($sql) or die("Error : $sql".mysql_error());
while($data4 = mysql_fetch_array($teblecash)){
$projectai =$data4['ProjectCode'];
$tyear = $data4["1"];
$tmonth = $data4["2"];
$sumamountai = $data4["3"];
if ($firstyear == $tyear) { $i = ($tmonth - $firstmonth) + 1;}
if ($firstyear < $tyear) { $i = (12 - $firstmonth)+1 + $tmonth;}
$jobtype[$i][5] = $data4["3"];
}
//ครั้งที่5
$sql ="SELECT ProjectCode, year(TransDate), month(TransDate), sum(AmountCash)
FROM cashflow
WHERE TypeCode ='A' AND TransType='O' AND ProjectCode ='$project' AND TaxInvoiceNo <>''
GROUP BY ProjectCode, year(TransDate), month(TransDate)
Order by year(TransDate) ASC, month(TransDate) ASC ";
$teblecashao =mysql_query($sql) or die("Error : $sql".mysql_error());
while($data5 = mysql_fetch_array($teblecashao)){
$projectao =$data5['ProjectCode'];
$tyear = $data5["1"];
$tmonth = $data5["2"];
$sumamountao = $data5["3"];
if ($firstyear == $tyear) { $i = ($tmonth - $firstmonth) + 1;}
if ($firstyear < $tyear) { $i = (12 - $firstmonth)+1 + $tmonth;}
$jobtype[$i][6] = $data5["3"];
}
//เอาข้อมูลครั้งที่2 ลบ ครั้งที่3
//เอาข้อมูลครั้งที่4 ลบ ครั้งที่5
for ($i=0; $i<=$countpi;$i++;) {
$jobp = $jobtype[$i][3]-$jobtype[$i][4];
$joba = $jobtype[$i][5]-$jobtype[$i][6];
}
$labels = array($countpi);
for ($i =0; $i < count($labels); $i++) {
$labels[$i] = iconv('TIS-620','UTF-8',$labels[$i]);
}
$g->xaxis->SetTickLabels($labels);
$g->xaxis->SetFONT(FF_CORDIA,FS_NORMAL,14);
$g->xaxis->SetLabelAngle(45);
$data6 = array(300,250,425,300,175,250);
$line1 = new LinePlot($data6);
$data7 = array(150,200,175,300,250,275);
$line2 = new LinePlot($data7);
$line1->value->Show();
$line1->SetColor('red');
$line1->mark->SetType(MARK_STAR);
$line1->mark->SetColor('red');
$line1->SetLegend("Product 1");
$line2->value->Show();
$line2->mark->SetType(MARK_SQUARE);
$line2->SetLegend("Product 2");
$g->Add($line1);
$g->Add($line2);
$g->Stroke();
mysql_close($conn);
?>
Tag : PHP, MySQL, HTML/CSS, JavaScript, CakePHP
|
|
|
|
|
|
Date :
2011-03-15 11:28:23 |
By :
มือใหม่ |
View :
1177 |
Reply :
7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ช่วยแนะนำหน่อยนะค่ะต้องเขียนโค้ดยังไงค่ะ
|
|
|
|
|
Date :
2011-03-15 14:42:31 |
By :
มือใหม่ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อยากรู้ด้วยครับ ยังไม่เคยทำเหมือนกันครับ
|
|
|
|
|
Date :
2011-03-15 15:14:14 |
By :
tingtongkub |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ช่วยตอบด้วยนะค่ะท่านผู้รู้
|
|
|
|
|
Date :
2011-03-15 22:48:44 |
By :
มือใหม่ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอบด้วยนะค่ะท่านผู้รู้ทั้งหลาย
|
|
|
|
|
Date :
2011-03-16 12:58:00 |
By :
มือใหม่ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อ่านแล้วงงเลยไม่ตอบครับ
หลักๆ แก้แค่สร้าง array ให้มันสองตัว
$data6 = array(300,250,425,300,175,250);
$line1 = new LinePlot($data6);
$data7 = array(150,200,175,300,250,275);
$line2 = new LinePlot($data7);
ตรงเนี้ย
|
|
|
|
|
Date :
2011-03-16 13:51:12 |
By :
PlaKriM |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ดิฉันเพิ่มcode เข้ามาก่อนที่จะรันกราฟ
if ($countao > $countai) {$maxx = $countao;}
else {$maxx = $countai;}
if ($countpo > $maxx) {$maxx = $countpo;}
if ($countpi > $maxx) {$maxx = $countpi;}
$datay1 = array();
$datay2 = array();
$datax = array();
for ($i=1;$i<= $maxx;$i++) {
$datay1[$i] = $jobtype[$i][3] - $jobtype[$i][4];
$datay2[$i] = $jobtype[$i][5] - $jobtype[$i][6];
$datax[$i]= $jobtype[$i][1]." /".$jobtype[$i][2];
ค่าที่ได้มูลค่าไม่ออกและค่า$jobtype[$i][2]ก็ไม่ออกด้วย
แต่ถ้าเปลี่ยน
for ($i=1;$i<= 15;$i++)
มูลค่าออก
คือเหมือนกับว่ามีค่าตั้งแต่ 13 ขึ้นไป
รบกวนท่านผู้รู้ช่วยตอบด้วยนะค่ะติดมาเป็นอาทิตย์แล้ว
|
|
|
|
|
Date :
2011-03-20 13:37:20 |
By :
มือใหม่ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ช่วยตอบด้วยค่ะ
|
|
|
|
|
Date :
2011-03-21 08:10:51 |
By :
มือใหม่ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|