Я просто не могу заставить это работать.У меня есть таблица под названием категории, подобная этой:
table name: categories
id
name
, и таблица сообщений, подобная этой:
table name: posts
id
category_id
title
body
Я пишу контроллер / модель / представление для вывода списка category.name иколичество постов, относящихся к категории.Я рушаюсь и жгу, как это сделать.Это частичная попытка.
<code>$this->db->select('
posts.*,
categories.*,
COUNT(posts.category_id) as num_posts
');
$this->db->from('posts');
$this->db->join('categories', 'categories.id = posts.category_id');
$xx = $this->db->get();
echo '<pre>';
print_r($xx);
echo '
';выход();
Любая помощь очень ценится.Вы искали мой стековый поток, но не видите решения CI3.
новое обновление.Этот sql работает:
SELECT
categories.id,
categories.name,
Count(posts.id) as cnt
FROM
categories
LEFT JOIN
posts
ON
categories.id=posts.category_id
GROUP BY
categories.name
Когда я запускаю его, я получаю ниже, что я и ожидал:
id name cnt
---------------------------------------------
80 | 24354234234 | 2
76 | Associations and Organizations | 9
Но когда я перехожу на активную запись, как это:
$this->db->select('categories.id, categories.name, COUNT(posts.id) as num_posts');
$this->db->from('categories');
$this->db->join('posts', 'categories.id = posts.category_id');
$this->db->group_by('categories.name');
$xx = $this->db->get();
Я печатаю_r ($ xx) и не вижу никаких моих данных.Вот что я получаю:
CI_DB_mysqli_result Object
(
[conn_id] => mysqli Object
(
[affected_rows] => 2
[client_info] => 5.5.59
[client_version] => 50559
[connect_errno] => 0
[connect_error] =>
[errno] => 0
[error] =>
[error_list] => Array
(
)
[field_count] => 3
[host_info] => Localhost via UNIX socket
[info] =>
[insert_id] => 0
[server_info] => 5.5.58-0ubuntu0.14.04.1
[server_version] => 50558
[stat] => Uptime: 7546485 Threads: 2 Questions: 523149 Slow queries: 0 Opens: 257 Flush tables: 1 Open tables: 200 Queries per second avg: 0.069
[sqlstate] => 00000
[protocol_version] => 10
[thread_id] => 42310
[warning_count] => 0
)
[result_id] => mysqli_result Object
(
[current_field] => 0
[field_count] => 3
[lengths] =>
[num_rows] => 2
[type] => 0
)
[result_array] => Array
(
)
[result_object] => Array
(
)
[custom_result_object] => Array
(
)
[current_row] => 0
[num_rows] =>
[row_data] =>
)
Все еще не знаю, как получить массив.Любая помощь приветствуется.