Запросы like в базу данных
$gooda=str_replace(" ","%","$good");
$resrazq = mysql_query("SELECT * FROM news where textnews LIKE '%$gooda%'");
2) Какой должен быть запрос, если мне нужно искать в нескольких полях таблицы, например textnews и subj ??????
3) Как ограничить поиск, чтобы искала например в полях в которых date>$dater???
Цитата:
Originally posted by olegking
1) Я хочу сделать поиск or, подскажите как его сделать, вот так я ищу AND:
$gooda=str_replace(" ","%","$good");
$resrazq = mysql_query("SELECT * FROM news where textnews LIKE '%$gooda%'");
1) Я хочу сделать поиск or, подскажите как его сделать, вот так я ищу AND:
$gooda=str_replace(" ","%","$good");
$resrazq = mysql_query("SELECT * FROM news where textnews LIKE '%$gooda%'");
Придется разбирвать на отдельные слова:
Код:
$e=explode($good," ");
$sql='
for ($i=0;$i<count($e);$i++) {
$sql.=" OR textnews like '%".$e[$i]."%'";
}
$resrazq=mysql_query("SELECT * FROM news WHERE ".substr($sql,3);
$sql='
for ($i=0;$i<count($e);$i++) {
$sql.=" OR textnews like '%".$e[$i]."%'";
}
$resrazq=mysql_query("SELECT * FROM news WHERE ".substr($sql,3);
Не забывай проверять передаваемую строку на ненужные символы.
Цитата:
2) Какой должен быть запрос, если мне нужно искать в нескольких полях таблицы, например textnews и subj ??????
SELECT * FROM table WHERE textnews="тест" AND subj="тест";
Цитата:
3) Как ограничить поиск, чтобы искала например в полях в которых date>$dater???
SELECT * FROM table WHERE textnews="тест" AND subj="тест" AND date>"2001-02-03 15:12:43";
P.S. Все что тут написано писалось прямо тут, не проверялось и может не работать. Главное - смысл.
Придется разбирвать на отдельные слова:
Код:
$e=explode($good," ");
$sql='
for ($i=0;$i<count($e);$i++) {
$sql.=" OR textnews like '%".$e[$i]."%'";
}
$resrazq=mysql_query("SELECT * FROM news WHERE ".substr($sql,3);
$sql='
for ($i=0;$i<count($e);$i++) {
$sql.=" OR textnews like '%".$e[$i]."%'";
}
$resrazq=mysql_query("SELECT * FROM news WHERE ".substr($sql,3);
Не забывай проверять передаваемую строку на ненужные символы.
SELECT * FROM table WHERE textnews="тест" AND subj="тест";
-----------------------------------------
Спасибо большое помогли, только вот это должно выглядеть несколько иначе, но всё равно немного подправить и всё ОК.
$e=explode(" ",$good);
for ($i=0;$i<count($e);$i++) {
$sql.=" OR textnews like '%".$e[$i]."%'";
}
$resrazq=mysql_query("SELECT * FROM news WHERE ".substr($sql,3)."");
}
------------------------------------------
Скажи пожалуйста ещё как проверять строку на ненужные символы, в смысле я знаю что preg_replace, я просто не знаю какие из них ненужные, но думаю что кто-нить знает.