2016-01-22 67 views
-3

是否有可能運行此代碼24次以查找每小時值而無需複製並粘貼代碼24次。PHP中的例程結果

<?php 
    $result = mysql_query('SELECT date,SUM(value) AS value_sum FROM me Where WEEKDAY(date) >="6" AND HOUR(date)="0" '); 
    $row = mysql_fetch_assoc($result); 
    $h0= $row['value_sum']; 
?> 

<?php 
    $result = mysql_query('SELECT date,SUM(value) AS value_sum FROM me Where WEEKDAY(date) >="6" AND HOUR(date)="1" '); 
    $row = mysql_fetch_assoc($result); 
    $h1= $row['value_sum']; 
?> 
+0

目前還不清楚你問什麼?你能澄清嗎? – mega6382

+0

我需要編寫這段代碼24次才能得到每小時值的總和($ h0,$ h1 ,, $ h2 ... $ h23)。是否有更簡單的方法來做到這一點? – Ian

+3

您是否嘗試過使用循環? – mega6382

回答

0

我建議你修改你的SQL語句,以獲得所有元組在一個訪問,然後遍歷所有的元組(內存)總結值項目

// Query the database 
$result = mysql_query('SELECT date, value FROM me Where WEEKDAY(date) >="6" AND HOUR(date) >= "0" AND HOUR(date) < "24"'); 

// Sum values up 
$h1 = 0; 
while($row = mysql_fetch_assoc($result)) { 
    $h1 += $row['value']; 
} 

執行SQL語句 - 出於多種原因 - 使用相當多的資源並花費更長的時間,而不是在數組的所有元素的循環中執行PHP代碼。

該解決方案僅執行一個SQL查詢而不是24個查詢。

(是:用mysql 或PDO爲mysql,這是不建議使用)

-1

嘗試使用for loop並將結果添加到數組中。

<?php 
    $resultArray = array(); 
    for($i = 0; $i < 24; $i++;) { 
    $result = mysql_query('SELECT date,SUM(value) AS value_sum FROM me Where WEEKDAY(date) >="6" AND HOUR(date)="' . $i . '" '); 
    $row = mysql_fetch_assoc($result); 
    resultArray[] = $row['value_sum']; 
    } 
?>