peterzubkoff
@peterzubkoff

Как избежать совпадений в БД и добавлять новые данные?

Есть таблица posts с постами. У постов есть теги, которые реализованы таблицами tags и posts_tags. Посты добаляются с помощью парсера.

Процесс выглядит так:
1. парсер выдаёт данные в json >
2. скрипт php превращает эти данные сначала в массив, а потом в готовые команды на sql >
3. контролцэ-контолвэ sql кода в phpmyadmin

Важный момент, теги могут быть новые, которых нет в бд. Вопрос: как в таком случае проверять, есть ли тэг или нет? И какие есть варианты?

Дополнение: была мысль проверять tag_name с помощью LIKE, но вдруг есть какие-то более удобные способы

Структура таблиц posts:
------------------
             posts
------------------
post_id
------------------
post_body
------------------


posts_tags:

------------------
        posts_tags
------------------
post_id
------------------
tag_id
------------------


и tags:
------------------
              tags
------------------
tag_id
------------------
tag_name
------------------
  • Вопрос задан
  • 329 просмотров
Решения вопроса 2
@c5c5
Вы тег по id хотите проверить или прям по слову, например "здоровье"?
Ответ написан
Hatsune-Miku
@Hatsune-Miku
Няшк :3
Что то типа этого:

$tag = $db->query('SELECT * FROM `теги`WHERE `имя_тега` = '.$json['имя_тега']);

if (!$tag->num_rows())
{
    // Создаём тег
    $new_tag = $db->query('INSERT INTO `теги` SET `имя_тега` = '.$json['имя_тега']);
    if (!$new_tag)
    {
        throw new Exception('Тега нет в бд и создать не получилось');
    }
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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