Как прочитать данные из двух таблиц одновременно?
Как прочитать данные из двух таблиц одновременно в одно методе по условию?
Для примера есть модель материала и метод чтения всех записей и вывод в json формате.
<?php
class Freeroll {
// подключение к базе данных и таблице "freeroll"
private $conn;
private $table_name = "freeroll";
// свойства объекта
public $category_name;
public $id;
public $name_turnament;
public $prize;
public $password;
public $data;
public $time;
public $category_id;
public $buyin;
public $buyin_symbol;
public $prize_symbol;
// конструктор для соединения с базой данных
public function __construct($db){
$this->conn = $db;
}
// метод read() - получение товаров
function read() {
// выбираем все записи
$query = "SELECT * FROM " . $this->table_name . " ORDER BY id";
// подготовка запроса
$stmt = $this->conn->prepare($query);
// выполняем запрос
$stmt->execute();
return $stmt;
}
}
Сам метод read.php
<?php
// необходимые HTTP-заголовки
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");
header("Access-Control-Allow-Methods: GET");
// подключение базы данных и файл, содержащий объекты
include_once "../config/database.php";
include_once "../models/freeroll.php";
// получаем соединение с базой данных
$database = new Database();
$db = $database->getConnection();
// инициализируем объект
$freeroll = new Freeroll($db);
// установим свойство ID записи для чтения
// запрашиваем товары
$stmt = $freeroll->read();
$num = $stmt->rowCount();
// проверка, найдено ли больше 0 записей
if ($num>0) {
// массив товаров
$freeroll_arr = array();
$freeroll_arr['status'] = 'ok';
$freeroll_arr['totalResults'] = $num;
$freeroll_arr["freeroll"] = array();
// получаем содержимое нашей таблицы
// fetch() быстрее, чем fetchAll()
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
// извлекаем строку
extract($row);
$freeroll_item = array(
"id" => $id,
"name_turnament" => $name_turnament,
"prize" => $prize,
"password" => $password,
"data" => $data,
"time" => $time,
"category_id" => $category_id,
"buyin" => $buyin,
"buyin_symbol" => html_entity_decode($buyin_symbol),
"prize_symbol" => html_entity_decode($prize_symbol)
);
array_push($freeroll_arr["freeroll"], $freeroll_item);
}
// устанавливаем код ответа - 200 OK
http_response_code(200);
// выводим данные о товаре в формате JSON
echo json_encode($freeroll_arr);
} else {
// установим код ответа - 404 Не найдено
http_response_code(404);
// сообщаем пользователю, что товары не найдены
echo json_encode(array("message" => "Freeroll list not found."), JSON_UNESCAPED_UNICODE);
}
В нем мы получаем public $category_id; это id категории. Как мне получить запись из таблицы категорий по полученному id и вставить её в массив $freeroll_item в месте с записью материала? так же непосредственно есть модель категории category.php и её метод read.php