Intereting Posts
Как прагматически удалять коммерческий заказ woo? Связать пользовательский CPT с другой таксономией CPT и переписать постоянные ссылки проблема с завихрением или постоянная ссылка Я удалил плагин «Скрыть заголовок» и создал код на всех моих страницах. Сиднейская тема. Как исправить Перенос базы данных WordPress – Сериализованные данные Просмотр комментариев / оценок (в целом) на странице в виде сетки (кладки) Интегрировать API-интерфейс фидов продуктов в Woocommerce Могу ли я вставить изображение функции внутри контента после любого абзаца? WordPress 3 MU для сайта разработки / стадии / производства Автоматически замените ссылку на другую «новую ссылку», Ограничить количество пользователей, которые могут создавать роли Запросы базы данных, созданные с использованием фильтров WordPress, защищенных от SQL-инъекций? Список пользовательской таксономии, основанный на количестве сообщений и категории Плагин получает результаты даже после удаления Проверка учетных данных с помощью WP REST API

Функция great () возвращает неопределенное свойство

Я использую функцию mysql GREATEST () для сравнения двух полей таблицы и отображения в цикле либо с наивысшим целым значением. 2 поля состоят из оценок голосов для сообщений: UP или DOWN.

function vote_results($post_id) { global $wpdb; $table = $wpdb->prefix . "post_votes"; $results = $wpdb->get_row( "SELECT GREATEST (up, down) FROM $table WHERE voted_post_id = $post_id" ); echo $results->up; //echo if highest value echo $results->down; //echo if highest value } 

Затем в моем цикле я вызываю функцию, но получаю Notice: Undefined property: stdClass::$up for

 echo $results->up; 

и одно и то же уведомление о down . Я не уверен, что я делаю неправильно здесь.

Solutions Collecting From Web of "Функция great () возвращает неопределенное свойство"

Я думаю, вы хотите использовать get_var() , а не get_row() – глядя на документацию , MySQL GREATEST просто возвращает одно значение.

$results будет просто значением наибольшего (будь то up или down ).

Если вы хотите, чтобы величайший и наихудший, используйте;

 $wpdb->get_row("SELECT GREATEST(up) AS 'up', GREATEST(down) AS 'down' ...") 

Соглашаясь с TheDeadMedic … Если вы используете GREATEST (), сделайте себе одолжение, зная, что вы делаете. Он возвращает значение bigint при подаче ints, и ваш запрос не дает полученному столбцу никакого имени. Таким образом, $ wpdb, очевидно, будет жаловаться, когда вы попытаетесь получить доступ к столбцу, который недоступен. 🙂

Я считаю, что вы ищете это:

 SELECT up - down as total, up, down FROM $table WHERE voted_post_id = $post_id