2016-11-08 60 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分钟条件的值 –