|
|
|
| Мне необходимо проиндексировать таблицу по полю name кое имеет тип VARCHAR 255,
а также другую таблицу поле description кое тип имеет text, необходимо создать индекс FULLTEXT. Я предпологая что нужно создать с помощью оператора
<? ALTER TABLE article ADD FULLTEXT name (name); ?>
Но где именно мне эту строку прописать, чтобы она выполнила свою функцию в данной таблице.
Спасибо. | |
|
|
|
|
|
|
|
для: Gnn
(03.03.2008 в 14:43)
| | <?php
if(!empty($name))
{
// Выбираем логику поиска, если задано несколько ключевых слов
if($logic == LOGIC_OR) $logstr = "OR";
else $logstr = "AND";
// Разбиваем поисковую фразу на подстроки, разделенные пробелами
$name = trim($name);
$temp = strtok($name," ");
while ($temp)
{
// Полнотекстовый поиск по столбцу name таблицы articles
// Формируем посковую часть SQL-запроса, учитывая логику,
// заданную во временной переменной $logic
if($id_query) $search .= " $logstr MATCH (name) AGAINST ('$temp')";
else $search .= "MATCH (name) AGAINST ('$temp')";
$id_query = true;
$temp = strtok(" ");
}
// Формируем фрагмент SQL-запроса, ответственный за поиск
// в определенном разделе, если значение $id_page не установлено,
// не имеет значения раздел и поиск осуществляется по всем разделам.
if(!empty($id_page)) $pagetmp = " AND id_page = $id_page";
// В зависимости от режима поиска формируем SQL-запрос
switch($srchwhere)
{
case TITLES: // Поиск в названиях статей
{
// Формируем SQL-запрос
$query = "SELECT * FROM 'articles'
WHERE $search
AND id_forum=$id_forum
AND hide='show'
$pagetmp
ORDER BY time DESC LIMIT $numberthemes";
$src = mysql_query($query);
break;
}
case ARTICLES: // Полнотекстовый поиск по сообщениям
{
// Формируем SQL-запрос
$query = "SELECT 'id_article' FROM paragraphes
WHERE $search AND hide='show'
$pagetmp
GROUP BY id_article";
$par = mysql_query($query);
// if($par) puterror("Ошибка при выборе параграфов...");
$numtot = mysql_num_rows($par);
if($numtot>0)
{
$query = "SELECT * FROM 'articles'
WHERE 'id_article' IN (";
while($art = mysql_fetch_array($par))
{
$query .= $art['id_article'].",";
}
$query .= "0) AND id_forum=$id_forum AND hide='show'
GROUP BY 'id_theme'
ORDER BY 'time' DESC
LIMIT $numberthemes";
$src = mysql_query($query);
} else echo "По запросу ничего не найдено22.";
break;
}
}
// Выводим список найденных статей
if($src) puterror("Ошибка при выборе статей...");
// Выясняем количество найденных статей
$numtot = mysql_num_rows($src);
if($numtot>0)
{
while($art = mysql_fetch_array($src))
{
echo "<a href=art.php?
id_article=".$art['id_article'].">
".$art['name']."</a><br>";
}
} else echo "По запросу ничего не найдено11";
}
?>
</body>
</html>
При поиске выдает такую ошибку не могу понять, то ли запрос неправильно сформирован
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in Z:\home\localhost\www\Site\article\searchform.php on line 147
По запросу ничего не найдено22.
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in Z:\home\localhost\www\Site\article\searchform.php on line 168
По запросу ничего не найдено11 | |
|
|
|