Поиск по БД Mysql

  • Автор темы friend123
  • Дата начала

friend123

Guest
Поиск по БД Mysql

У меня следующая проблема. Есть код поиска инфо по БД Mysql:
$query = "SELECT id,name FROM $table2 WHERE name OR text LIKE '%$search_str%'";
$result = MYSQL_QUERY($query);
while ($row=mysql_fetch_array($result)) {
PRINT "id: ".$row['id']."";
PRINT "<BR>";
PRINT "Zagolovok: <A href='$PHP_SELF?id=".$row['id']."&action=view'>".$row['name']."</A>";
PRINT "<P>";
}
Где $search_str - строка, вводимая в форме

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

Sat

Guest
ну батенька... А обработку сделать прстым if
PHP:
$search_str=trim($search_str);
if(strlen($search_str)>0) {
  // Тут твой поиск
} else {
  echo "Попробуйте что-нибудь ввести в строке поиска";
}
для такого простенького поиска порекомендовал бы ещё:
PHP:
strtr($search_str, " +", "%_");
 

friend123

Guest
Да спасибо, а насчет 1-ого вопроса: про то, что находит иногда совсем не то?
 

friend123

Guest
Пробовал оба варианта:
1. При использовании WHERE COLUMN REGEXP 'some_word' выдает ошибку Mysql - что-то неправильно написано
2. Прочитал статью, сделал все как там сказано. Все равно ищет не нужное
 

Sat

Guest
попробуй так:
[sql]SELECT `id`,`name` FROM `table` WHERE `name` LIKE '%blah%' OR `text` LIKE '%blah%'[/sql]
 

crocodile2u

http://vbolshov.org.ru
Originally posted by friend123
При использовании WHERE COLUMN REGEXP 'some_word' выдает ошибку Mysql - что-то неправильно написано
1) Ты так и писал в запросе "WHERE COLUMN REGEXP 'some_word'" ??? Если да, то: вмсето COLUMN нужно подставить имя поля в твоей таблице.

2) И конечно, Sat подсказал тебе правильно. А тебе нужно немного подучить синтаксис запросов.
 
Сверху