 |
php ผมกำลังหาวิธีการคำนวณหาค่าๆโดยใช้ข้อมูลจากในฐานข้อมูลแล้วนำค่าที่คำนวณได้แล้วนั้นบันทึกลงในฐานข้อมูลด้วยครับ |
|
 |
|
|
 |
 |
|
Code (SQL)
SELECT tb.datetime, tb.data, ((t1.sumd/24)/t1.maxd) x FROM tb
LEFT JOIN (
SELECT DAY(datetime) days, SUM(data) sumd, MAX(data) maxd
FROM tb
GROUP BY days) t1
ON DAY(tb.datetime) = t1.days
http://sqlfiddle.com/#!9/e19f31b/11
|
 |
 |
 |
 |
Date :
2020-06-21 15:23:23 |
By :
PhrayaDev |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
X มันถูกสร้างขึ้นตอนคิวรี ด้วยคำสั่ง JOIN
คำสั่ง SQL ด้านบนสำหรับ MySQL
PHP support MySQL database
เพราะฉะนั้น วาง SQL ใน query ของ PHP ได้ครับ
Code (PHP)
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* check connection */
if ($mysqli->connect_errno) {
printf("Connect failed: %s\n", $mysqli->connect_error);
exit();
}
$sql = "วางคำสั่ง sql ตรงนี้";
/* Select queries return a resultset */
if ($result = $mysqli->query($sql)) {
// จะทำอะไรกับ result จัดการส่วนนี้
printf("Select returned %d rows.\n", $result->num_rows);
/* free result set */
$result->close();
}
$mysqli->close();
https://www.php.net/manual/en/mysqli.query.php
|
 |
 |
 |
 |
Date :
2020-06-21 21:16:24 |
By :
PhrayaDev |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ตอบความคิดเห็นที่ : 4 เขียนโดย : PhrayaDev เมื่อวันที่ 2020-06-21 21:16:24
รายละเอียดของการตอบ ::
พอดี php code อันเก่ามันหายผมเลยเขียน code ใหม่ที่มีการทำงานคล้ายตัวอย่างแรกครับ แต่มันกลับขึ้น error แบบนี้ครับ อยากทราบว่าต้องแก้ไขยังไงเหรอครับ
Notice: Trying to get property 'num_rows' of non-object in /storage/ssd5/912/11562912/public_html/test1/loadcurve.php on line 20
Fatal error: Uncaught Error: Call to a member function fetch_array() on boolean in /storage/ssd5/912/11562912/public_html/test1/loadcurve.php:22 Stack trace: #0 /storage/ssd5/912/11562912/public_html/test1/index.php(27): include() #1 {main} thrown in /storage/ssd5/912/11562912/public_html/test1/loadcurve.php on line 22
Code (PHP)
<html>
<head><title></title>
</head>
<?php
$mysqli = new mysqli("localhost", "0000", "0000", "0000");
$i=1;
$q="
SELECT a.*,
(SELECT COUNT(b.DATE) FROM meter b WHERE b.DATE=a.DATE GROUP BY b.DATE) as num,
(SELECT SUM(b.M_A_KWH) FROM meter b WHERE b.DATE=a.DATE GROUP BY b.DATE) as TOTAL_A,
(SELECT MAX(b.M_A_WATT) FROM meter b WHERE b.DATE=a.DATE GROUP BY b.DATE) as MAX_A,
(SELECT SUM(b.M_B_KWH) FROM meter b WHERE b.DATE=a.DATE GROUP BY b.DATE) as TOTAL_B,
(SELECT MAX(b.M_B_WATT) FROM meter b WHERE b.DATE=a.DATE GROUP BY b.DATE) as MAX_B,
(SELECT SUM(b.M_C_KWH) FROM meter b WHERE b.DATE=a.DATE GROUP BY b.DATE) as TOTAL_C,
(SELECT MAX(b.M_C_WATT) FROM meter b WHERE b.DATE=a.DATE GROUP BY b.DATE) as MAX_C
FROM meter a ORDER BY a.DATE ASC
";
$result = $mysqli->query($q); // ทำการ query คำสั่ง sql
$total=$result->num_rows; // นับจำนวนถวที่แสดง ทั้งหมด
$aggr_arr=array();
while($row=$result->fetch_array()){ // วนลูปแสดงข้อมูล
$dateKey=date("dmY",strtotime($row['DATE']));
$row_span=0;
if(!isset($aggr_arr[$dateKey])){
$aggr_arr[$dateKey]=array();
$row_span=1;
}
?>
<body>
<table width="1300" border="1" cellpadding="10" cellspacing="0" align="center">
<tr>
<td rowspan="2" align="center" bgcolor="black" width="16%"><h7><font size="6" color="white">DATE DAY</td>
<td colspan="3" align="center" bgcolor="FFB4B9" width="28%"><h7>Phase : A</td>
<td colspan="3" align="center" bgcolor="5AD2FF" width="28%"><h7>Phase : B</td>
<td colspan="3" align="center" bgcolor="FFEB46" width="28%"><h7>Phase : C</td>
</tr>
<tr>
<td align="center" bgcolor="FFE6E6" width="9%">Total Energy per day [kWh]</td>
<td align="center" bgcolor="FFE6E6" width="9%">Maximum Load per day [W]</td>
<td align="center" bgcolor="FFE6E6">Load Factor per day</td>
<td align="center" bgcolor="C8FFFF" width="9%">Total Energy per day [kWh]</td>
<td align="center" bgcolor="C8FFFF" width="9%">Maximum Load per day [W]</td>
<td align="center" bgcolor="C8FFFF">Load Factor per day</td>
<td align="center" bgcolor="FAFAD2" width="9%">Total Energy per day [kWh]</td>
<td align="center" bgcolor="FAFAD2" width="9%">Maximum Load per day [W]</td>
<td align="center" bgcolor="FAFAD2">Load Factor per day</td>
</tr>
<tr>
<td align="center"><?=$row['DATE']?></td>
<?php if($row_span==1){?>
<td align="center" rowspan="<?=$row['num']?>"><?=$row['TOTAL_A']?></td>
<?php } ?>
<?php if($row_span==1){?>
<td align="center" rowspan="<?=$row['num']?>"><?=$row['MAX_A']?></td>
<?php } ?>
<td align="center">_________</td>
<?php if($row_span==1){?>
<td align="center" rowspan="<?=$row['num']?>"><?=$row['TOTAL_B']?></td>
<?php } ?>
<?php if($row_span==1){?>
<td align="center" rowspan="<?=$row['num']?>"><?=$row['MAX_B']?></td>
<?php } ?>
<td align="center">_________</td>
<?php if($row_span==1){?>
<td align="center" rowspan="<?=$row['num']?>"><?=$row['TOTAL_C']?></td>
<?php } ?>
<?php if($row_span==1){?>
<td align="center" rowspan="<?=$row['num']?>"><?=$row['MAX_C']?></td>
<?php } ?>
<td align="center">_________</td>
</tr>
<?php $i++; } ?>
</table>
</body>
<html>
|
 |
 |
 |
 |
Date :
2020-06-24 01:04:18 |
By :
deatinyfrank |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|