Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: CMS из книги "PHP5 Практика создания WEB-сайтов"
 
 автор: Gnn   (04.03.2008 в 10:35)   письмо автору
 
 

Вся проблема в том что у меня не работает поисковая система, скрипт который расположен в главе 9, т.е. БД я использую ту которая была в книге. Выдает мне следующие ошибки, привожу кусок кода и вывод ошибок после того как я хочу задать в поисковой строке искомое.

<?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

   
 
 автор: mihdan   (04.03.2008 в 11:03)   письмо автору
 
   для: Gnn   (04.03.2008 в 10:35)
 

1. Создали ли таблицы в базе данных
2. Включен ли register_globals в php.ini

   
 
 автор: Gnn   (04.03.2008 в 11:19)   письмо автору
 
   для: mihdan   (04.03.2008 в 11:03)
 

register_globals в php.ini был не включен, находился в положении off - изменил положение на on
таблицы созданы те что были в файле site.sql, как я понял поисковик ищет в двух таблицах - это articles и paragraphes, вот они:
# Структура таблицы `paragraphes`
#

CREATE TABLE `paragraphes` (
`id_paragraph` int(10) unsigned NOT NULL auto_increment,
`type` enum('paragraph','title','anchor','table') NOT NULL default 'paragraph',
`name` text NOT NULL,
`url` tinytext NOT NULL,
`picture_big` tinytext NOT NULL,
`picture_small` tinytext NOT NULL,
`place` tinyint(4) NOT NULL default '0',
`pos` int(11) NOT NULL default '0',
`hide` enum('show','hide') NOT NULL default 'show',
`id_article` int(10) unsigned NOT NULL default '0',
PRIMARY KEY (`id_paragraph`),
KEY `id_article` (`id_article`)
) TYPE=MyISAM;


# Структура таблицы `articles`
#

CREATE TABLE `articles` (
`id_article` int(10) unsigned NOT NULL auto_increment,
`name` tinytext NOT NULL,
`description` tinytext NOT NULL,
`html_title` tinytext NOT NULL,
`html_description` tinytext NOT NULL,
`html_keywords` tinytext NOT NULL,
`pos` mediumint(9) NOT NULL default '0',
`hide` enum('show','hide') NOT NULL default 'show',
`id_page` tinyint(3) unsigned NOT NULL default '0',
PRIMARY KEY (`id_article`),
KEY `id_page` (`id_page`)
) TYPE=MyISAM;

#
# Дамп данных таблицы `articles`
#

INSERT INTO `articles` VALUES (31, '.htaccess и .htpasswd - защита доступа', 'Описывается защита сайта средствами WEB-сервера Apache с помощью файлов .htaccess и .htpasswd.', '', '', '', 7, 'show', 2);
INSERT INTO `articles` VALUES (26, 'Зачем нужен этот сайт', '', 'Зачем нужен этот сайт', '', '', 5, 'show', 1);
INSERT INTO `articles` VALUES (28, 'Если register_globals=Off', 'Что делать если у Вас на сервере отключены глобальные переменные. Что такое суперглобальые массивы и как с ними работать.', '', '', '', 6, 'show', 2);
INSERT INTO `articles` VALUES (30, '.htaccess', 'Описание и настройка файлов .htaccess, предназначенных для управления каталогами сервера Apache.\r\n', '', '', '', 6, 'show', 2);
INSERT INTO `articles` VALUES (32, 'Структурные элементы, из которых могут состоять статьи', '', '', '', '', 5, 'show', 3);
INSERT INTO `articles` VALUES (33, 'Замечания к системе администрирования ', '', '', '', '', 5, 'show', 5);

   
 
 автор: mihdan   (04.03.2008 в 11:20)   письмо автору
 
   для: Gnn   (04.03.2008 в 11:19)
 

И какой результат?

   
 
 автор: Gnn   (04.03.2008 в 11:44)   письмо автору
 
   для: mihdan   (04.03.2008 в 11:20)
 

Результат такой вывод какой-либо информации нет, пропала первая ошибка, а вторая осталась
вот эта:
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

   
 
 автор: Gnn   (05.03.2008 в 09:06)   письмо автору
 
   для: Gnn   (04.03.2008 в 11:44)
 

mihdan, ну так что делать с поисковиком?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования