Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,028

HOME > PHP > PHP Forum > เรียนถามท่านผู้รู้ คือดิฉันต้องการสร้าง กราฟ 2เส้นโดยดึงข้อมูลมาจาก database



 

เรียนถามท่านผู้รู้ คือดิฉันต้องการสร้าง กราฟ 2เส้นโดยดึงข้อมูลมาจาก database

 



Topic : 057273

Guest




เรียนถามท่านผู้รู้ คือดิฉันต้องการสร้างกราฟ 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







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2011-03-15 11:28:23 By : มือใหม่ View : 1146 Reply : 7
 

 

No. 1

Guest


ช่วยแนะนำหน่อยนะค่ะต้องเขียนโค้ดยังไงค่ะ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-15 14:42:31 By : มือใหม่
 


 

No. 2



โพสกระทู้ ( 532 )
บทความ ( 1 )



สถานะออฟไลน์


อยากรู้ด้วยครับ ยังไม่เคยทำเหมือนกันครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-15 15:14:14 By : tingtongkub
 

 

No. 3

Guest


ช่วยตอบด้วยนะค่ะท่านผู้รู้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-15 22:48:44 By : มือใหม่
 


 

No. 4

Guest


ตอบด้วยนะค่ะท่านผู้รู้ทั้งหลาย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-16 12:58:00 By : มือใหม่
 


 

No. 5



โพสกระทู้ ( 11,835 )
บทความ ( 10 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


อ่านแล้วงงเลยไม่ตอบครับ
หลักๆ แก้แค่สร้าง 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
 


 

No. 6

Guest


ดิฉันเพิ่ม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 : มือใหม่
 


 

No. 7

Guest


ช่วยตอบด้วยค่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-21 08:10:51 By : มือใหม่
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : เรียนถามท่านผู้รู้ คือดิฉันต้องการสร้าง กราฟ 2เส้นโดยดึงข้อมูลมาจาก database
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 00
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่