2016-11-27 71 views
-3

我有一个表名'IpRelay','伏'是列名之一。我从伏特列中提取最大电压。从特定列的表格中查找最大编号

这里是我的控制器代码

$this->set('max_num', $this->IpRelay->query("SELECT MAX(volt) FROM ip_relays")); 

这里是我的视图代码

<?php echo $max_num; ?> 

但它不工作。它给了我一个通知“数组到字符串转换”。

+0

尝试<?php print_r($ max_num); ?> – Ima

+0

我试过这个。它给了我“Array([0] => Array([0] => Array([MAX(volt)] => 562)))”这种类型的值。但我不明白我如何只提取价值“562”。 –

+0

您正在传递一个数组。你需要通过$ max_num [0] [0] ['MAX(伏特)'] – Amir

回答

1

试试这个在控制器代码:

$this->set('max_num', $this->IpRelay->query("SELECT MAX(volt) AS max_num FROM ip_relays")); 

,并查看代码:

<?php echo $max_num[0][0]['max_num']; ?> 

您需要使用数组中的视图代码,因为query方法的结果是array

+0

它的工作原理。非常感谢你。 –

0

无论您试图获取多少个结果,它总是会返回一个数组,您需要获取第一个元素。尝试:

<?php echo $max_num[0] ?> 
0

修改您的查询

$this->set('max_num', $this->IpRelay->query("SELECT MAX(volt) AS max_volt FROM ip_relays")); 

,你可以重复这样的

echo $max_num[0]['max_volt']; 
0

为什么运行一个自定义查询。尝试cakephp orm

$max = $this->IpRelay->find('all', 
     array(
      'fields' => array(
       'MAX(IpRelay.volt) AS max_value' 
      )) 
     ); 
    debug($max[0][0]['max_value']); 

    $this->set('max_num', $max[0][0]['max_value']); 

echo max_num in view。我希望你会得到最大的价值。