У меня есть простое api которое я делал по данному принципу
https://only-to-top.ru/blog/programming/2019-11-06...
Мне нужно считать данные которые относятся к одной из категорий, для этого я добавил в таблице строку с названием category_id, в которой указываю к какой категории относится товар.
Есть модель товара в которой идет функция считывания всех товаров
function read() {
// выбираем все записи
$query = "SELECT
c.name as category_name, f.id, f.name, f.url, f.status, f.category_id, f.created
FROM
" . $this->table_name . " f
LEFT JOIN
categories c
ON f.category_id = c.id
ORDER BY
f.created DESC";
// подготовка запроса
$stmt = $this->conn->prepare($query);
// выполняем запрос
$stmt->execute();
return $stmt;
}
И само считывание по адресу site.ru/api/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/faucet.php";
// получаем соединение с базой данных
$database = new Database();
$db = $database->getConnection();
// инициализируем объект
$faucet = new Faucet($db);
// запрашиваем товары
$stmt = $faucet->read();
$num = $stmt->rowCount();
// проверка, найдено ли больше 0 записей
if ($num>0) {
// массив товаров
$faucet_arr = array();
$faucet_arr["records"] = array();
// получаем содержимое нашей таблицы
// fetch() быстрее, чем fetchAll()
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
// извлекаем строку
extract($row);
$faucet_item = array(
"id" => $id,
"name" => $name,
"url" => $url,
"status" => $status,
"category_id" => $category_id,
"category_name" => $category_name
);
array_push($faucet_arr["records"], $faucet_item);
}
// устанавливаем код ответа - 200 OK
http_response_code(200);
// выводим данные о товаре в формате JSON
echo json_encode($faucet_arr);
} else {
// установим код ответа - 404 Не найдено
http_response_code(404);
// сообщаем пользователю, что товары не найдены
echo json_encode(array("message" => "Faucet list not found."), JSON_UNESCAPED_UNICODE);
}