@vovkka

Как правильно выстроить структуру запросов для выборки из нескольких таблиц?

Доброго дня. Суть вопроса такова: есть таблица со статьями, есть таблица с категориями. Хочу объединить две таблицы единым запросом, пока делаю так(скриншот). Я на верном пути? + Будет еще таблица с пользователями, которые тоже привязаны к статьям ключами. Как в таком случае делать запрос к бд? Я предполагаю соединить все в одном запросе inner joinами. Подскажите как правильно это реализуется. Спасибо.

//функция выборки одной статьи по id
function out_article_id($id){
	global $con;
	$query = "SELECT c.name AS cat, a.* FROM category c INNER JOIN articles a ON c.id = a.category WHERE a.id = $id;";
	$query_result = mysqli_query($con, $query);
	$query_result_top = mysqli_fetch_all($query_result, MYSQLI_ASSOC);
	if ($query_result_top) {
		return $query_result_top;
	}else {
		return false;
	}
}

//функция выборки всех статей 
function out_category(){
	global $con;
	$query = "SELECT c.name AS cat, a.* FROM category c INNER JOIN articles a ON c.id = a.category;";
	$query_result = mysqli_query($con, $query);
	$query_result_top = mysqli_fetch_all($query_result, MYSQLI_ASSOC);
	if ($query_result_top) {
		return $query_result_top;
	}else {
		return false;
	}
}


<?php foreach ($article as $value): ?>
		<div class="article-item">
			<div class="article-item-title"><?=$value['title'];?></div>
			<div class="article-item-text"><?=$value['text'];?></div>
			<div class="article-property-holder">
				<div class="article-item-date">Дата публикации: <?=$value['date'];?></div>
				<div class="article-item-aythor">Автор: <?=$value['author'];?></div>
				<div class="article-item-category">Категория: <?=$value['cat'];?></div>
			</div>
		</div>
		<?php endforeach; ?>


a8b6aea2e8374669838875d3ab61cde8.jpg
  • Вопрос задан
  • 399 просмотров
Пригласить эксперта
Ответы на вопрос 1
eqcodes
@eqcodes
Можете привести нормальный листинг кода и уточнить задачу?
Вы выводите сразу все новости из указанной категории без ограничения?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы