@chifth

Как сделать поиск по БД по нескольким элементам массива?

Пытаюсь сделать вывод файлов из БД, в котором есть слова из массива (формируется из имени выгружаемого файла через пробел).
Взгляните опытным глазом, что я делаю не так?

$arr = explode(' ', $name); // делаем масив слов
for ($i = 0; $i <= count($arr); $i++) {
if ($i = 0) {
$similar[] = $arr[$i];
	} else {
$similar[] = ' OR '.$arr[$i];
	}
}
$getsimilar = $db->query('SELECT `rus_name` FROM `download__files` WHERE `name` LIKE "%$similar%"')->fetchAll();
$error[] = '<div class="rmenu">Возможно выпытаетесь загрузить один из следующих файлов:<br>'; 
for ($i = 0; $i <= count($arr); $i++) {
$error[] = $getsimilar[$i]['rus_name'] .'<br>';
}
echo $error;


получаю ошибку:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 100663304 bytes) in /srv/disk2/2498365/www/oldfag.cf/downloads/includes/files_upload.php on line 124
  • Вопрос задан
  • 65 просмотров
Пригласить эксперта
Ответы на вопрос 2
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
У тебя бесконечный цикл
вместо
if ($i = 0) {
вероятно должен быть
if ($i == 0) {
Дальше не смотрел, возможно дальше еще есть ошибки, но эта точно тут.
Ответ написан
Комментировать
solotony
@solotony
покоряю пик Балмера
я так понимаю что ты хочешь сделать x LIKE 'a' OR 'b' OR 'c' ?

не, на до так (x LIKE 'a') OR (x LIKE 'b') OR (x LIKE 'c')
Ответ написан
Ваш ответ на вопрос

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

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