2016-11-08 64 views
-1

我被困在模型端,我必須編寫一個從mysql中選擇一些特定值的循環。該表是這樣的:使用php codeigniter循環獲取mysql值

0  2016-11-06 08:36:19 
 
7300 2016-11-06 08:43:11 
 
19200 2016-11-06 08:43:12 
 
35980 2016-11-06 08:43:17 
 
45600 2016-11-06 08:43:21 
 
45820 2016-11-06 08:43:27 
 
45840 2016-11-06 08:43:28 
 
45860 2016-11-06 08:43:29 
 
26940 2016-11-06 08:44:34 
 
19760 2016-11-06 08:44:36 
 
3440 2016-11-06 08:44:38 
 
0  2016-11-06 08:44:44 
 
1400 2016-11-06 08:46:00 
 
7120 2016-11-06 08:46:04 
 
11240 2016-11-06 08:46:06 
 
11220 2016-11-06 08:46:10 
 
11240 2016-11-06 08:46:11 
 
11220 2016-11-06 08:46:12 
 
3940 2016-11-06 08:46:51 
 
0  2016-11-06 08:46:56

基本上,這是從權重機產生的,在我的數據庫插入條目是這樣的:

當事情是稱重機上時,條目將開始從0更新到重量機器上物體的實際重量,但直到它們達到真正的重量時,我纔會獲得所有值。當3-4的參賽者的差距小於50公斤時,我們處於真正的體重。然後重量會再次下降到0,並且當有東西在上面時,重量會開始變化。從上面的例子,這些條目我感興趣的是:

45840 2016-11-06 08:43:28 
 
11220 2016-11-06 08:46:10

我當時就想,用下面的每個條目進行比較,當差值小於50公斤3條目,獲得其中一個條目,並繼續像這樣的其他條目,但我不知道如何在PHP中完成此操作。

$sql = "SELECT weight, added_date FROM balance_events WHERE added_date BETWEEN '".$from_date."' AND '".$to_date."'"; 
 
      $query = $this->db->query($sql); 
 
      $result = $query->result(); 
 
      for weight in result: 
 
      // TO DO the loop 
 
      return $result;

如何讓我的for循環,以獲得所需的輸出?還有一種方法可以檢查added_date上的時間戳,以便將重量事件(0到0)的時間限制在5分鐘以上,並忽略持續時間在5分鐘以下的時間戳?

回答

0

通過假設您的查詢是正確

$sql = "SELECT weight, added_date FROM balance_events WHERE added_date BETWEEN '".$from_date."' AND '".$to_date."'"; 
$query = $this->db->query($sql); 
$result = $query->result(); 

$max = 0; 

foreach($result as $one) 
{ 
    if($one > $max) 
    { 
     $max = $one; 
    } 
    else 
    { 
     continue; 
    } 
} 
return $max; 
+0

這將只得到1點的值,對於任何日期間隔,但像在我需要的例子/每間隔0比0拿到了1倍的值,如果我用我的例子嘗試這樣只會輸出45860 2016-11 -06 08:43:29,我認爲每次獲得價值並做出某種列表時都必須重置。 – Rommel

0

這裏查詢通過for循環和條件得到5分鐘以上,以獲得值。

 $sql = "SELECT weight, added_date, MINUTE(added_date) As minute FROM balance_events WHERE added_date BETWEEN '".$from_date."' AND '".$to_date."'"; 
        $query = $this->db->query($sql); 
        foreach($query->result() as $row){ 
         if($row->minute > 5){ 
          echo $weight=$row->weight; 
          echo $added_date=$row->added_date; 
         } 
        } 
+0

我應該從中返回什麼? – Rommel

+0

查詢將返回大於5分鐘條件的值 –