MySQL дает неправильные результаты

У меня есть небольшая проблема с командой MySQL, которая, кажется, не работает правильно. Я строю простую функцию поиска PHP и мне нужно проверить два столбца (одну и ту же таблицу), если что-то в любом столбце нравится, то мне нужно его вывести. Кажется, это работает, если я просто смотрю в один столбец, но если я вставляю оператор OR, он все равно работает, просто кажется, что не каждый раз извлекает правильные данные. Это немного сложно объяснить, поэтому я буду использовать пример ниже.

     <?php
$in=$_GET['txt'];
$msg="";
if(strlen($in)>0 and strlen($in) <20 ){
$t=mysql_query("SELECT * FROM es_sermons WHERE searchTags like '$in%' OR serviceName like '$in%'");
while($nt=mysql_fetch_array($t)){
$msg.=$nt[name]."$nt[serviceName]<br>";
}
}
echo $msg
?>
id  |  serviceName                  |   searchTags
1   |  Prayer Positions             |   Prayer, Fasting, Morning, Pastor, Donnie
2   |  Ephesians Part 9             |   Ephesians, Pastor, Donnie, Wednesday
3   |  Gaining a Clear Vision       |   Missions, Ministry, Donnie, Pastor, Morning
4   |  Downpour Part 7              |   downpour, Tim, 3, Evening, Sunday
5   |  God is For Me Part 4         |   Pastor, Donnie, Morning, God is For Me

Поиск: «Пастор» -> Результаты были: 2, 5 -> Должны были быть 2, 3, 5 -> Почему не было 3?

Поиск: «Донни» -> Результаты были: 5 -> Должен был 1,5 -> Почему был пропущен 1?

Поиск: «Среда» -> Результаты были: НЕТ -> Должен был 2 -> Почему не было 2?

Результаты очень противоречивы. Если бы кто-нибудь мог помочь, я был бы очень признателен. Спасибо!

0

Решение

Попробуйте ниже: —

$t=mysql_query("SELECT * FROM es_sermons WHERE searchTags like '%$in%' OR serviceName like '%$in%'");  // % sign on both side of the search word
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]