Francis_molodec
@Francis_molodec
Я могучий

Как искать несколько значений сразу в столбце базы данных и отображать оба результата?

Добрый день. Есть ajax фильтр который ищет совпадения в определенном столбце базы, но отображает он только по определенному значению.
Структура базы такова:
Есть столбец со значениями:
Книга| Есенин, Пушкин, Сталин
Книга| Есенин

Т.е на выходе получается что 1 пост, имеет значение "Книга: Есенин, Пушкин, Сталин" А второй пост только "Есенин"
Ниже показанный код, отбирает только определенное значение, к примеру когда я выбираю сортировку постов по значению "Пушкин" он отображает только 1 пост, но если я добавляю в сортировку значение "Есенин" он не отображает второй пост, потому что второй пост не имеет значения "Пушкин". Но нужно чтобы он просто отображал все посты независимо от точности значений.

elseif(substr_count( $key, 'k-' ) > 0)
  {
	$key = str_replace('k-', '', $key);
	$key = $db->safesql($key);
	$value = $db->safesql($value);
	$where_from[] = "SUBSTRING_INDEX( SUBSTRING_INDEX( xfields,  '{$key}|', -1 ) ,  '||', 1 ) NOT LIKE '%{$value}%'";
  }

$key - это имя поля по которому сортируем посты. (Т.е в верстке name="k-book").
$value - это то самое значение(Пушкин или Есенин или Сталин).
xfields - это столбец в базе данных в котором хранится Поле "Книга|" и значения через запятую.

Сейчас этот код показывает посты с точным вхождением. А нужно чтобы он оставлял одно значение выбранное и добавлял остальные посты по дополнительно выбранным в select multiple значениям.
Спасибо всем за внимние!
  • Вопрос задан
  • 50 просмотров
Пригласить эксперта
Ответы на вопрос 1
@FanatPHP
Чебуратор тега PHP
А можно поинтересоваться, кто такую гениальную структуру базы придумал?
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы