есть код для создания таблицы в MySQL
CREATE TABLE `articles` (
`id` int(10) unsigned NOT NULL auto_increment,
`title` varchar(200) default NULL,
`body` text,
PRIMARY KEY (`id`),
FULLTEXT KEY `ft1` (`title`,`body`),
FULLTEXT KEY `ft2` (`body`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
(Взято с хабрахабра)
Тогда поиск по БД делаю через
$query = mysql_query("SELECT * FROM articles WHERE MATCH(body) AGAINST('$search')",$db);
if(mysql_num_rows($query) > 0){
$sql = mysql_fetch_array($query);
do{
echo "<div>".$sql['text']."</div>";
}while($sql = mysql_fetch_array($query));
}else{
echo "Нет результатов";
}
Но в любом случае возвращает Нет результатов.Хотя БД заполнена 1000 различными статьями.Почему может так быть?
Спустя 5 минут, 12 секунд (21.04.2012 - 14:37) dadli написал(а):
... AGAINST('$search' IN BOOLEAN MODE)
пробуите
Спустя 3 минуты, 41 секунда (21.04.2012 - 14:41) Эли4ка написал(а):
dadli
почему-то все равно Нет результатов..может таблица косячная?
почему-то все равно Нет результатов..может таблица косячная?
Спустя 3 минуты, 41 секунда (21.04.2012 - 14:45) dadli написал(а):
ааа...
а где вам поле text ?
echo "<div>".$sql['text']."</div>";
а где вам поле text ?
Спустя 3 минуты, 58 секунд (21.04.2012 - 14:49) dadli написал(а):
и содержание переменная $search, точно есть в поле "body" ?
Спустя 2 минуты, 25 секунд (21.04.2012 - 14:51) Эли4ка написал(а):
dadli
тоже по нулям..можете у себя проверить при каких действиях текстовой поиск работает,а мне решения дать?если конечно не сложно..
тоже по нулям..можете у себя проверить при каких действиях текстовой поиск работает,а мне решения дать?если конечно не сложно..
Спустя 9 минут, 21 секунда (21.04.2012 - 15:00) dadli написал(а):
Эли4ка
в резултате будит те строки, у которих в поле body есть слова "mercedes" (так как $search = 'mercedes';)
$search = 'mercedes';
$res = mysql_query(
"SELECT * FROM articles WHERE MATCH(body) AGAINST('".$search."' IN BOOLEAN MODE) ")
or die(mysql_error());
if (mysql_num_rows($res) > 0) {
while ($row = mysql_fetch_row($res)) {
echo $row[0].' - '.$row[1].' - '.$row[2].'<br>';
}
}
else {
echo 'net rezultatov';
}
в резултате будит те строки, у которих в поле body есть слова "mercedes" (так как $search = 'mercedes';)
Спустя 16 часов, 10 минут, 39 секунд (22.04.2012 - 07:11) Эли4ка написал(а):
dadli
спасибо.Но я так подумала,а может использовать LIKE ?
спасибо.Но я так подумала,а может использовать LIKE ?
Спустя 2 часа, 16 минут (22.04.2012 - 09:27) dadli написал(а):
Эли4ка
ето зависимо на ситуацие, если искаете в поле где нет балшои текст, то лучшее LIKE
полнотекстови поиск нужен, когда искаем слово в балшом тексте
ето зависимо на ситуацие, если искаете в поле где нет балшои текст, то лучшее LIKE
полнотекстови поиск нужен, когда искаем слово в балшом тексте
Спустя 31 минута, 9 секунд (22.04.2012 - 09:58) Shkiper написал(а):
Цитата |
$query = mysql_query("SELECT * FROM articles WHERE MATCH(body) AGAINST('$search')",$db); if(mysql_num_rows($query) > 0){ $sql = mysql_fetch_array($query); do{ echo "<div>".$sql['text']."</div>"; }while($sql = mysql_fetch_array($query)); }else{ echo "Нет результатов"; } |
Знаменитая Поповщина!!!
Спустя 2 часа, 39 минут, 8 секунд (22.04.2012 - 12:37) Эли4ка написал(а):
Deert
хорошо,дайте свой вариант..
хорошо,дайте свой вариант..
Спустя 7 минут, 13 секунд (22.04.2012 - 12:44) Shkiper написал(а):
Эли4ка зачем ты перед циклом в $sql загоняешь вызом массива из выборки из БД, и в параметрах цикла???
Я конечно не профи, но мот мой вариант:
[b]$sql = mysql_fetch_array($query);[/b]
do{
echo "<div>".$sql['text']."</div>";
}[b]while($sql = mysql_fetch_array($query))[/b];
Я конечно не профи, но мот мой вариант:
<?php
$query = mysql_query("SELECT * FROM articles WHERE MATCH(body) AGAINST('$search')",$db) or die(mysql_error());
//И помни этот метод поиска ищет слова или фразы которые по содержанию больше 4 символов иначе он выдаст пустой результат
if(mysql_num_rows($query) > 0){
while($sql = mysql_fetch_assoc($query))
{
echo "<div>".$sql['body']."</div>";
}
}else{
echo "Нет результатов";
}
Спустя 1 день, 18 часов, 8 минут, 40 секунд (24.04.2012 - 06:53) Эли4ка написал(а):
Deert
хорошо,попробую Ваш..
хорошо,попробую Ваш..
Спустя 11 часов, 10 минут, 12 секунд (24.04.2012 - 18:03) Shkiper написал(а):
Эли4ка ну как.....???
Спустя 1 час, 23 минуты, 30 секунд (24.04.2012 - 19:27) sergeiss написал(а):
Цитата (Эли4ка @ 21.04.2012 - 16:32) |
$sql = mysql_fetch_array($query); do{ echo "<div>".$sql['text']."</div>"; }while($sql = mysql_fetch_array($query)); |
Фу, какая гадость... Эта "поповщина" ни к чему хорошему не приведет. Что, собственно говоря, и показывает твоя тема.
Низзя так делать! Попробуй описать словами, тут на форуме, что будет в случае отсутствия записей в БД?
Спустя 10 часов, 4 минуты, 49 секунд (25.04.2012 - 05:32) Shkiper написал(а):
sergeiss
echo "Нет результатов";:rolleyes: :rolleyes: :rolleyes: :rolleyes: :D :D :D :D :D
Спустя 3 часа, 4 минуты, 22 секунды (25.04.2012 - 08:36) Эли4ка написал(а):
я все поняла,но это просто из-за того,что мне было лень переделывать запрос по другому,а так я совсем по другому делаю..
Спустя 7 минут, 51 секунда (25.04.2012 - 08:44) Shkiper написал(а):
Эли4ка