Со связыванием таблиц не могу никак разобраться, сложно все для меня пока что. В общем делаю форум. Нужно банально вытащить из базы количество ответов в каждой теме. У меня выводится в каждой теме по 1 ответу. Но ведь в одной нет ответов. А все равно показывает единицу. Подскажите, что не так? Вот таблица с ответами
Вот таблица с темами
$query = "SELECT * FROM themes LEFT JOIN users ON themes.add_name = users.id LEFT JOIN section ON themes.section_id = section.id_section WHERE themes.section_id = '$_GET[item]'";
$result = mysqli_query($link, $query) or die (mysqli_error($link));
for ($data = []; $row = mysqli_fetch_assoc($result); $data[] = $row);
$content = '';
foreach ($data as $elem) {
$id_theme = $elem['id_theme'];
$query1 = "SELECT COUNT(*) as count FROM answers LEFT JOIN themes ON answers.id_themes = themes.id_theme WHERE answers.id_themes = themes.id_theme GROUP BY id_themes";
$result1 = mysqli_query($link, $query1) or die (mysqli_error($link));
for ($data1 = []; $row = mysqli_fetch_assoc($result1); $data1[] = $row);
foreach ($data1 as $elem1) {
$count = $elem1['count'];
}
var_dump($data1);
$content .= "<li class=\"rows_item\">";
$content .= "<div class=\"rows_main_item_wrap\">";
$content .= "<div class=\"rows_main_item_left\">
<a href=\"?theme=$id_theme\">$elem[head]</a>
<p>$elem[name]</p>
</div>";
$content .= "<div class=\"rows_main_item_top\">
<p><span>Ответов: $count</span></p>
</div>";
$content .= "<div class=\"rows_main_item_right\">
<p> <a class=\"message\" href=\"\"> $elem[message]</a> </p>
<p> от $elem[name] </p>
</div>";
$content .= "</div>";
$content .= "</li>";
}
ВЫ формируете вот такой запрос:
SELECT COUNT(*) as count
FROM answers
LEFT JOIN themes ON answers.id_themes = themes.id_theme
WHERE answers.id_themes = themes.id_theme
GROUP BY id_themes
Однако этот запрос считает количество тем для каждого ответа. Весьма странная хотелка. Надо-то наоборот... кроме того, условие во WHERE (полностью дублирующее условие связывания) превращает LEFT JOIN в INNER, что вряд ли нужно.
Правильный запрос должен быть таким:
SELECT themes.id_theme, COUNT(answers.id_themes) as count
FROM themes
LEFT JOIN answers ON answers.id_themes = themes.id_theme
GROUP BY themes.id_theme
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как мне пропарсить элемент с ID=BETS и достать все числа из data-worth со всех элементов и если моё число больше добавить выше этого элемента мой элементесли...
Код подключания var index_category_owl = $("#index-category-owl");