我有一个表名'IpRelay','伏'是列名之一。我从伏特列中提取最大电压。从特定列的表格中查找最大编号
这里是我的控制器代码
$this->set('max_num', $this->IpRelay->query("SELECT MAX(volt) FROM ip_relays"));
这里是我的视图代码
<?php echo $max_num; ?>
但它不工作。它给了我一个通知“数组到字符串转换”。
我有一个表名'IpRelay','伏'是列名之一。我从伏特列中提取最大电压。从特定列的表格中查找最大编号
这里是我的控制器代码
$this->set('max_num', $this->IpRelay->query("SELECT MAX(volt) FROM ip_relays"));
这里是我的视图代码
<?php echo $max_num; ?>
但它不工作。它给了我一个通知“数组到字符串转换”。
试试这个在控制器代码:
$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
。
它的工作原理。非常感谢你。 –
无论您试图获取多少个结果,它总是会返回一个数组,您需要获取第一个元素。尝试:
<?php echo $max_num[0] ?>
修改您的查询
$this->set('max_num', $this->IpRelay->query("SELECT MAX(volt) AS max_volt FROM ip_relays"));
,你可以重复这样的
echo $max_num[0]['max_volt'];
为什么运行一个自定义查询。尝试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。我希望你会得到最大的价值。
尝试<?php print_r($ max_num); ?> – Ima
我试过这个。它给了我“Array([0] => Array([0] => Array([MAX(volt)] => 562)))”这种类型的值。但我不明白我如何只提取价值“562”。 –
您正在传递一个数组。你需要通过$ max_num [0] [0] ['MAX(伏特)'] – Amir