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,027

HOME > PHP > PHP Forum > จะเปลี่ยน Code PHP ให้อ่านข้อมูลจาก Mysql งานแสดงกราฟที่โหลดมา ได้อย่างไรค่ะ



 

จะเปลี่ยน Code PHP ให้อ่านข้อมูลจาก Mysql งานแสดงกราฟที่โหลดมา ได้อย่างไรค่ะ

 



Topic : 136906



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



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




ได้ code มาจาก canvasjs เห็นว่าตรงกับความต้องการ และเป็นกราฟมองเห็นภาพการทำงาน กับความผิดพลาด
แต่ต้องดัดแปลงให้อ่านข้อมูลที่เก็บไว้ในฐานข้อมูล mysql ได้ทำอย่างไรค่ะ
Code (PHP)
<?php
 
$dataPoints1 = array(
	array("label"=> "สมใจ", "y"=> 6),
	array("label"=> "สุรชัย", "y"=> 10),
	array("label"=> "วิชัย", "y"=> 15)
);
$dataPoints2 = array(
	array("label"=> "สมใจ", "y"=> 140),
	array("label"=> "สุรชัย", "y"=> 120),
	array("label"=> "วิชัย", "y"=> 140)
);
	
?>
<!DOCTYPE HTML>
<html>
<head>  
<script>
window.onload = function () {
 
var chart = new CanvasJS.Chart("chartContainer", {
	animationEnabled: true,
	theme: "light2",
	title:{
		text: "จำนวนงานและข้อผิดพลาด"
	},
	axisY:{
		includeZero: true
	},
	legend:{
		cursor: "pointer",
		verticalAlign: "center",
		horizontalAlign: "right",
		itemclick: toggleDataSeries
	},
	data: [{
		type: "column",
		name: "ข้อผิดพลาด",
		indexLabel: "{y}",
		yValueFormatString: "#0.##",
		showInLegend: true,
		dataPoints: <?php echo json_encode($dataPoints1, JSON_NUMERIC_CHECK); ?>
	},{
		type: "column",
		name: "จำนวนงาน",
		indexLabel: "{y}",
		yValueFormatString: "#0.##",
		showInLegend: true,
		dataPoints: <?php echo json_encode($dataPoints2, JSON_NUMERIC_CHECK); ?>
	}]
});
chart.render();
 
function toggleDataSeries(e){
	if (typeof(e.dataSeries.visible) === "undefined" || e.dataSeries.visible) {
		e.dataSeries.visible = false;
	}
	else{
		e.dataSeries.visible = true;
	}
	chart.render();
}
 
}
</script>
</head>
<body>
<div id="chartContainer" style="height: 370px; width: 100%;"></div>
<script src="https://canvasjs.com/assets/script/canvasjs.min.js"></script>
</body>
</html> 


konwges

Code (PHP)
Employees:
- id (primary key)
- name
- position

Tasks:
- id (primary key)
- employee_id (foreign key to Employees.id)
- description
- deadline

Mistakes:
- id (primary key)
- employee_id (foreign key to Employees.id)
- task_id (foreign key to Tasks.id)
- description




Tag : PHP, MySQL







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2022-12-19 09:33:10 By : Vipada147 View : 506 Reply : 9
 

 
SA->DB ให้สอดล้อง สำหรับสรุป
จำนวนงาน, จำนวนข้อผิดพลาด

เท่าที่ดู Table ของคุณยังไม่มีสิ่งนี้
มีแค่ DeadLine
แล้ว Result หรือ Status ของ Task ล่ะ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-12-19 10:17:32 By : Guest
 


 
ยากตรงไหน query 2 ครั้ง ให้ได้ข้อมูล 2 ตาราง คือ
จำนวนงาน และ ข้อผิดพลาด แต่ละตารางมีแค่สองคอลัมน์

DB Results Structure
Employees.name | COUNT(Tasks/Mistakes)


แต่มี join ตารางเพื่อให้ได้ผลลัพธ์นี้ เพราะ table ไม่ได้ทำสรุปไว้ตาม คห.แรก

ดังนั้น ถ้าไม่มีพื้นฐาน SQL ก็ทำโจทย์ข้อนี้ไม่ได้
อย่าไปคิดมากใช้ LEFT JOIN ก็ได้จำนวนงาน และ ข้อผิดพลาด ออกมาแล้ว

ถ้าจะถามต่อว่า query อย่างไร ลองแปะตัวอย่าง DB แบบ text เช่น DDL/DML หรือ CSV มาดู
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-12-19 10:59:55 By : 009
 

 

No. 3



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



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


ขออภัยค่ะ ออกแบบฐานข้อมูลใหม่ เป็นงาน 4 งานค่ะ (ตัด เจาะ เย็บ ประกอบ) เสร็จสิ้นวัน หัวหน้าจะมาคลิกเลือกว่าใครทำงานอะไรไปบ้าง จะบวกไปเรื่อยๆ สิ้นปีจะรู้ว่าใครทำงานจำนวนเท่าไร และผิดพลาดจำนวนเท่าไรค่ะ
Code (PHP)
Tasks:
- id (primary key)
- employee_id (foreign key to Employees.id)
- cutting
- drill
- sew
- assemble



จะทำอย่างไรให้ code ที่ได้มา อ่านจากฐานข้อมูลได้ค่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-12-19 11:12:44 By : Vipada147
 


 
ตอบความคิดเห็นที่ : 3 เขียนโดย : Vipada147 เมื่อวันที่ 2022-12-19 11:12:44
รายละเอียดของการตอบ ::
ตามที่บอกไปแล้ว query แบบ LEFT JOIN ตามความสัมพันธ์ของตาราง

ถ้า query ไม่เป็น นำ ตัวอย่าง DB ของตารางที่เกี่ยวข้อง มาแปะ
(ตารางละ 5-10 records ตามความเหมาะสมที่ทำให้ครอบคลุมผลลัพธ์)

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-12-19 11:47:13 By : 009
 


 

No. 5



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



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

SQL จะประมาณนี้ ส่วนจะเอาอะไรแสดง ก็ต้องดูว่าจะ SELECT COUNT/SUM แล้วจะ GROUP อะไรดี

Code (SQL)
SELECT * FROM Employees
LEFT JOIN Tasks ON Tasks.employee_id = Employees.id
LEFT JOIN Mistakes ON Mistakes.task_id = Tasks.id
WHERE date_xxxx BETWEEN 'xxxx-xx-xxx' AND 'xxxx-xx-xx'

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-12-19 14:49:05 By : {Cyberman}
 


 

No. 6



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



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


ขอบคุณทุกท่านค่ะ ได้แล้วค่ะ นำของ google มาใช้ ไม่ยุ่งยาก
Code (PHP)
<!doctype html public "-//w3c//dtd html 3.2//en">
<html>
<head>
<title></title>
</head>
<body >
<?Php
$host_name = "localhost";
$database = "chart";         // Change your database name
$username = "root";          // Your database user id 
$password = "";              // Your password

//error_reporting(0);// With this no error reporting will be there
//////// Do not Edit below /////////

$connection = mysqli_connect($host_name, $username, $password, $database);

if($stmt = $connection->query("SELECT class,girl,boy FROM chart_data_column ")){
$php_data_array = Array(); // create PHP array
while ($row = $stmt->fetch_row()) {
     $php_data_array[] = $row; // Adding to array
   }
}else{
echo $connection->error;
}
echo "<script>
        var my_2d = ".json_encode($php_data_array)."
</script>";
?>

<h1>จำนวนงาน และความผิดพลาด</h1>
<div id="chart_div"></div>


<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript">

      // Load the Visualization API and the corechart package.
      google.charts.load('current', {packages: ['corechart', 'bar']});
      google.charts.setOnLoadCallback(drawChart);
	  
      function drawChart() {

        // Create the data table.
        var data = new google.visualization.DataTable();
        data.addColumn('string', 'พนักงานโรงงาน');
        data.addColumn('number', 'จำนวนงานรวม');
		  data.addColumn('number', 'ความผิดพลาด');
        for(i = 0; i < my_2d.length; i++)
		data.addRow([my_2d[i][0], parseInt(my_2d[i][1]),parseInt(my_2d[i][2])]);
       var options = {
          title: 'Student Details',
          hAxis: {title: 'Month',  titleTextStyle: {color: '#333'}},
          vAxis: {minValue: 0}
        };

        var chart = new google.charts.Bar(document.getElementById('chart_div'));
        chart.draw(data, options);
       }
	///////////////////////////////
////////////////////////////////////	
</script>
</body></html>

Code (PHP)
CREATE TABLE `chart_data_column` (
  `id` int(11) NOT NULL,
  `class` varchar(70) CHARACTER SET utf8 NOT NULL,
  `girl` int(11) NOT NULL,
  `boy` int(11) NOT NULL,
  `timestamp` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-12-20 15:29:56 By : Vipada147
 


 

No. 8



โพสกระทู้ ( 9,554 )
บทความ ( 2 )



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


Code (PHP)
echo "<script>
var my_2d = ".json_encode($php_data_array)."
</script>";

ลองเปลี่ยนเป็น

Code (PHP)
?>
<script>
var my_2d = <?=json_encode($php_data_array)?>;
</script>
<?php



ประวัติการแก้ไข
2022-12-22 11:14:14
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-12-22 11:13:12 By : Chaidhanan
 


 

No. 9



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



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


ลองเปลี่ยนตามที่ อาจารย์ Chaidhanan แนะนำ ไม่ขึ้นค่่ะ หรือทำไม่ถูกก็ไม่รู้ค่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-12-24 18:42:19 By : Vipada147
 


 

No. 10



โพสกระทู้ ( 9,554 )
บทความ ( 2 )



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


ตอบความคิดเห็นที่ : 9 เขียนโดย : Vipada147 เมื่อวันที่ 2022-12-24 18:42:19
รายละเอียดของการตอบ ::
ถ้าไม่ถนัดก็ไม่เป็นไรครับ ที่ทำได้เป็นใช้ได้ ไม่มีอะไรตายตัว ขอใหัถูกตามต้องการ


มันเป็นแค่อีกวิธี ที่ช่วยให้เราเขียนได้สั้นขึ้น เห็นภาพได้ง่ายขึ้นเท่านั้น ถ้าชินกับของเดิมก็ใช้ของเดิมครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-12-24 20:29:26 By : Chaidhanan
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : จะเปลี่ยน Code PHP ให้อ่านข้อมูลจาก Mysql งานแสดงกราฟที่โหลดมา ได้อย่างไรค่ะ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 05
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 อัตราราคา คลิกที่นี่