Сложите SUM() двух столбцов с активной записью ExpressionEngine в CodeIgniter.Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Сложите SUM() двух столбцов с активной записью ExpressionEngine в CodeIgniter.

Сообщение Anonymous »

Я работаю над суммированием двух разных строк и значений их полей (forum_total_topics и forum_total_posts) из базы данных MySQL в ExpressionEngine, используя предоставленный класс Active Record. Я пробовал несколько версий кода для суммирования чисел. Я попытался, но не смог передать запрос MySQL в запрос, сказав.

Код: Выделить всё

$SQL = "SELECT forum_id, sum(forum_total_topics) + sum(forum_total_posts)
FROM exp_forums"

ee()->db->select($SQL);
$query = ee->db->get('exp_forums');
echo $query;
чтобы отобразить общую сумму и получить следующую ошибку:

Номер ошибки: 1064
У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, чтобы найти правильный синтаксис для использования рядом с '' в строке 2
SELECT (SELECT (SELECT SUM(forum_total_topics) + SUM(forum_total_posts) FROM (

Код: Выделить всё

exp_forums
)

Неряшливое решение
Поэтому я попытался разделить весь запрос, чтобы найти решение.
Наконец-то я получил следующий фрагмент кода, который работает, возвращая несколько массивов и суммируя их, но это выглядит довольно беспорядочно. Как я могу вернуть и суммировать две строки таблицы в одну строку или около того?

Код: Выделить всё

$topics = ee()->db->select_sum('forum_total_topics')->get('exp_forums');
foreach($topics->result_array() as $topicrow) {
$totalTopics = $topicrow['forum_total_topics'];
}

$posts = ee()->db->select_sum('forum_total_posts')->get('exp_forums');
foreach($posts->result_array() as $postrow) {
$totalPosts = $postrow['forum_total_posts'];
}

$total = $totalTopics + $totalPosts;
Будем очень признательны за любые предложения!
Проверенные предложения
Я пробовал такие предложения,

Код: Выделить всё

$SQL = "SELECT forum_id, SUM(forum_total_topics + forum_total_posts) AS total
FROM exp_forums
GROUP BY forum_id";

$query = ee()->db->select($SQL);
echo $query;
Вместо этого возникла эта ошибка.

Обнаружена ошибка PHP
Серьезность: 4096
Сообщение: объект класса CI_DB_mysql_driver не удалось преобразовать в строку
Имя файла: библиотеки/Функции.php(679): код eval()
Номер строки: 98


Подробнее здесь: https://stackoverflow.com/questions/195 ... ecord-with
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»