Как я могу взорвать значение в базе данных и использовать его в запросе выбора? - PullRequest
0 голосов
/ 22 мая 2018

Итак, у меня есть флажок в моем блоге для входной категории, где значение категории может быть кратным.Я вставляю их в базу данных с помощью функции выгрузки.Теперь я хочу, чтобы мой фильтр блога по категориям, если я использую запрос ниже, он получает только там, где идентификатор категории один.Как я могу получить данные, где идентификатор категории имеет несколько значений.И это должно быть видно в каждой категории, в которой оно было проверено.

public function getPublishedBlogInfoByCategory($id){
    $sql = "SELECT * FROM blogs WHERE category_id = '$id' ORDER BY id DESC";
    if(mysqli_query(Database::dbConnection(), $sql)){
        $queryResult = mysqli_query(Database::dbConnection(), $sql);
        return $queryResult;
    }else{
        die('Query problem'.mysqli_error(Database::dbConnection()));
    }
}

Вот я вызываю эту функцию

<?php
require_once 'vendor/autoload.php';
$blog = new App\classes\Blog;
$app = new App\classes\Application;

$queryResultCategory = $blog->getAllPublishedCategory();

$id = $_GET['id'];
$queryResult = $app->getPublishedBlogInfoByCategory($id);
$queryResultCategoryName = $app->getBlogCategoryName($id);
$categoryName = mysqli_fetch_assoc($queryResultCategoryName);

$queryResultEvent = $app->getLimitedPublishedEvent();

?>

1 Ответ

0 голосов
/ 22 мая 2018

Я согласен с aynber, что сводная таблица, вероятно, будет соответствовать вашим потребностям лучше, чем строковый столбец с несколькими идентификаторами категорий, объединенными вместе.Однако, чтобы ответить на ваш вопрос, вместо

= '$id'

, который совпадает только в том случае, если полное поле соответствует полному $ id, вам, вероятно, просто нужно использовать

LIKE '%$id%'

, которыйобрабатывает% как символы подстановки для соответствия любому количеству символов до или после $ id

EDIT:

CREATE TABLE `blog_category_pivot` (
    `blog_id` INT(11) UNSIGNED NOT NULL,
    `category_id` INT(11) UNSIGNED NOT NULL,
    PRIMARY KEY (`blog_id`, `category_id`),
    CONSTRAINT `blog_fk` FOREIGN KEY (`blog_id`) REFERENCES `blogs` (`id`),
    CONSTRAINT `category_fk` FOREIGN KEY (`category_id`) REFERENCES `categories` (`id`)
);

Затем, чтобы использовать данные, вы можете просто сделать выбор из блогов и присоединиться кТаблица blog_category_pivot для проверки наличия данной категории.Если вы хотите перечислить категории блога, у вас уже есть идентификатор, вы можете выбрать имя из категорий, присоединяющихся к таблице blog_category_pivot в blog_id = $ blog_id и category_id = Categories.id

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...