2016-11-27 3 views
-3

У меня есть имя таблицы «IpRelay» и «volt» - одно из имен столбца. Я извлекаю максимальное напряжение из вольт-колонны.Найти максимальное число из таблицы определенного столбца

вот мой код контроллера

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

и вот мой взгляд код

<?php echo $max_num; ?> 

Но это не работает. Это дает мне уведомление «Массив для преобразования строк».

+0

попробуйте Ima

+0

Я пробовал это. Он дает мне «Array ([0] => Array ([0] => Array ([MAX (volt)] => 562)))« этот тип значений. Но я не понимаю, как извлечь только значение «562». –

+0

Вы передаете массив целиком. Вам необходимо передать $ max_num [0] [0] ['MAX (volt)'] – 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. Надеюсь, вы получите максимальное значение.

Смежные вопросы