Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

поиск по БД

2.2K
21 августа 2003 года
Stasyan
23 / / 28.07.2003
Сразу предупреждаю, я слабоват в PHP .
Пробовал писать поиск по базе, вот что получилось:
$search=$_GET["ins"];
$skey=preg_replace("/[^\w\x7F-\xFF]/", " ", $search);
$skey=trim($skey);
$key = preg_split ("/[\s]+/", $skey);
$kol_vo=sizeof($key);
$query="SELECT * FROM Table WHERE ";
for ($i=0;$i <= $kol_vo-2; $i++) {$query="$query name_razdel LIKE '$key[$i]' OR "; };
$query="$query name_razdel LIKE '$key[$i]'";
echo $query;
$result = mysql_query($query,$db);
echo "<table border=1>\n";
echo "<tr><td>Name</td></tr>\n";
while ($myrow = mysql_fetch_row($result))
{
printf("<tr><td bgcolor=#66ffff>%s</td></tr>\n", $myrow[0]);
}
echo "</table>\n";

Это не работает как хотелось, т.е. выводит строки в которые входит хотя бы одно из слов.
В данном случае выводит только при полном соответствии да и то только с одним словом :(
Может кто подскажет почему.
Заранее благодарен.
250
21 августа 2003 года
Joker
1.4K / / 20.02.2000
Цитата:
Originally posted by Stasyan
Сразу предупреждаю, я слабоват в PHP .
Пробовал писать поиск по базе, вот что получилось:
$search=$_GET["ins"];
$skey=preg_replace("/[^\w\x7F-\xFF]/", " ", $search);
$skey=trim($skey);
$key = preg_split ("/[\s]+/", $skey);
$kol_vo=sizeof($key);
$query="SELECT * FROM Table WHERE ";
for ($i=0;$i <= $kol_vo-2; $i++) {$query="$query name_razdel LIKE '$key[$i]' OR "; };
$query="$query name_razdel LIKE '$key[$i]'";
echo $query;
$result = mysql_query($query,$db);
echo "<table border=1>\n";
echo "<tr><td>Name</td></tr>\n";
while ($myrow = mysql_fetch_row($result))
{
printf("<tr><td bgcolor=#66ffff>%s</td></tr>\n", $myrow[0]);
}
echo "</table>\n";

Это не работает как хотелось, т.е. выводит строки в которые входит хотя бы одно из слов.
В данном случае выводит только при полном соответствии да и то только с одним словом :(
Может кто подскажет почему.
Заранее благодарен.


name_razdel LIKE '%".$key[$i]."%'
все остольное так же думую все заработает :)

2.6K
21 августа 2003 года
Zipo
41 / / 09.08.2003
попробуй так:
Код:
$search=$_GET["ins"];
$skey=preg_replace("/[^\w\x7F-\xFF]/", " ", $search);
$skey=trim($skey);
$key = preg_split ("/[\s]+/", $skey);
$kol_vo=sizeof($key);
$query="SELECT * FROM Table WHERE ";
for ($i=0;$i <= $kol_vo-2; $i++) {$query.="locate(\"$key[$i]\",name_razdel)>0 OR "; };
$query.=" locate(\"$key[$i]\",name_razdel)>0";
echo $query;
$result = mysql_query($query);
echo "<table border=1>\n";
echo "<tr><td>Name</td></tr>\n";
while ($myrow = mysql_fetch_row($result))
{
printf("<tr><td bgcolor=#66ffff>%s</td></tr>\n", $myrow[0]);
}
echo "</table>\n";
2.2K
22 августа 2003 года
Stasyan
23 / / 28.07.2003
Спасибо за помощь. Разобрался, теперь все работает как надо 8)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог