Скажите, если у меня есть массив, и я хочу проверить, является ли элемент частью этого массива, я могу пойти дальше и использовать in_array (needle, haystack) для определения результатов. Я пытаюсь увидеть PHP-эквивалент этого для моих целей. Теперь у вас может быть мгновенный ответ для меня, и у вас может возникнуть соблазн сказать «Используйте IN». Да, я могу использовать IN, но это не приводит к желаемым результатам. Позвольте мне объяснить на примере:
У меня есть столбец с именем "домашние животные" в таблице БД. Для записи, он имеет значение: Кошка, собака, верблюд
(Да, данные столбца - это значения, разделенные запятыми). Учтите, что этот ряд имеет идентификатор 1.
Теперь у меня есть форма, в которой я могу ввести значение в форме ввода и использовать это значение для проверки значения в БД. Допустим, я ввел следующее значение через запятую в форме ввода: CAT, верблюд
(да, CAT является заглавной и преднамеренной, поскольку некоторые пользователи, как правило, вводят ее таким образом).
Теперь, когда я ввожу вышеуказанную информацию в форму ввода и отправляю, я могу собрать информацию POST и использовать следующий запрос:
$search = $_POST['pets'];
$sql = "SELECT id FROM table WHERE pets IN ('$search') ";
Приведенный выше запрос не возвращает мне строку, которая уже существует в БД (помните запись, в которой Кошка, собака, Верблюд в качестве значения для столбца домашних животных?). Я пытаюсь заставить записи выступать в качестве надмножества, а значения из формы ввода - как подмножества. Поэтому в этом случае я ожидаю, что значение id будет отображаться, поскольку значения существуют в столбце, но это не происходит.
Теперь скажите, если я введу просто CAT в качестве ввода формы и выполню поиск, он должен показать мне строку ID 1.
Теперь скажите, если я введу просто верблюд, cAT в качестве ввода формы и выполню поиск, он должен показать мне строку ID 1.
Как я могу достичь вышеуказанного?
Спасибо.