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

HOME > PHP > PHP Forum > php ผมกำลังหาวิธีการคำนวณหาค่าๆโดยใช้ข้อมูลจากในฐานข้อมูลแล้วนำค่าที่คำนวณได้แล้วนั้นบันทึกลงในฐานข้อมูลด้วยครับ



 

php ผมกำลังหาวิธีการคำนวณหาค่าๆโดยใช้ข้อมูลจากในฐานข้อมูลแล้วนำค่าที่คำนวณได้แล้วนั้นบันทึกลงในฐานข้อมูลด้วยครับ

 



Topic : 135311



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



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



ผมกำลังติดปัญหาที่ไม่รู้วิธีการกำหนดเงื่อนไขโดยใช้ค่า timestamp เป็นเงื่อนไขหลักในการคำนวนค่าอื่นโดยใช้ภาษา php ครับ

ตัวอย่างเช่น ผมมีข้อมูลการวัดค่าๆหนึ่งเป็นเวลาติดต่อกัน 2 วันที่บันทึกไว้ในฐานข้อมูล
__________________________________________________________
l ID l........DATETIME (timestamp)....l........DATA(varchar)........l........x........l
-------------------------------------------------------------------------------------------------
l 1 l........2020-01-01 12:00:00........l...................1...................l................... l
l 2 l........2020-01-01 12:30:00........l...................5................... l...................l
l 3 l........2020-01-01 12:45:00........l...................7................... l................... l
l 4 l........2020-01-01 12:50:10........l...................13................... l...................l
l 5 l........2020-01-01 14:10:00........l ...................1................... l...................l
l 6 l........2020-01-01 17:05:30........l...................150................... l ...................l
l 7 l........2020-01-01 20:20:20........l...................56...................l................... l
l 8 l........2020-01-01 21:00:05........l...................34................... l...................l
l 9 l........2020-01-02 08:00:00........l...................78 ...................l...................l
l 10 l........2020-01-02 09:05:00........l...................123...................l................... l
l 11 l........2020-01-02 09:10:00........l ...................17...................l...................l
l 12 l........ 2020-01-02 11:12:50.......l...................178................... l...................l
l 13 l........2020-01-02 13:00:20........l...................90...................l ................... l
l 14 l........2020-01-02 18:40:50........l................... 33...................l...................l
l 15 l........2020-01-02 19:00:07........l...................1................... l................... l
l 16 l........2020-01-02 23:50:00........l...................10...................l...................l
-------------------------------------------------------------------------------------------------


จากตัวอย่างข้อมูลนี้จะเห็นว่าจะแบ่งออกเป็น 2 วัน และค่า x คือค่าที่ผมต้องการจากการคำนวน
โดยที่สูตรการคำนวณค่า X = [ SUM(DATA ในวันนั้นๆ) / 24 ] / max(DATA ในวันนั้นๆ)
ดังนั้นค่า X ที่คำนวนได้ในแต่ละวันนั้นจะไม่เท่ากัน

สิ่งที่ผมต้องการความช่วยเหลือคือ วิธีการใช้สูตรคำนวนดังกล่าวในภาษา php และการนำค่าที่คำนวณได้แล้วนั้นบันทึกลงในฐานข้อมูลครับ

หากมีผู้เชี่ยวชาญคนในสามารถแก้ไขได้ รบกวนช่วยผมด้วยนะครับ ขอบคุณครับ




Tag : PHP, MySQL, HTML, Google Chrome, Windows









ประวัติการแก้ไข
2020-06-19 01:34:35
2020-06-19 01:35:14
2020-06-19 01:35:38
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2020-06-19 01:29:56 By : deatinyfrank View : 1046 Reply : 6
 

 

No. 1



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



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

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
 


 

No. 2



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



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

ตอบความคิดเห็นที่ : 1 เขียนโดย : PhrayaDev เมื่อวันที่ 2020-06-21 15:23:23
รายละเอียดของการตอบ ::
พิมพ์ code ลงใน SQL ใช่มั้ยครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-06-21 19:52:03 By : deatinyfrank
 

 

No. 3



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



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

ตอบความคิดเห็นที่ : 1 เขียนโดย : PhrayaDev เมื่อวันที่ 2020-06-21 15:23:23
รายละเอียดของการตอบ ::
ไม่ต้องสร้างคอลลัม X ในฐานข้อมูลเหรอครับ???

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-06-21 20:13:43 By : deatinyfrank
 


 

No. 4



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



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

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
 


 

No. 5



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



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

ตอบความคิดเห็นที่ : 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
 


 

No. 6



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



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

https://www.thaicreate.com/php/forum/135324.html
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-06-24 02:47:29 By : PhrayaDev
 

   

ค้นหาข้อมูล


   
 

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