Задать вопрос
@Chesterfield25

Как считать данные которые относятся к одной категории?

У меня есть простое 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);
}
  • Вопрос задан
  • 55 просмотров
Подписаться 1 Сложный 3 комментария
Пригласить эксперта
Ваш ответ на вопрос

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

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