Не работает поиск, несмотря на видимое отсутствие ошибки в запросе
Плагин добавляет несколько полей к таблице Topic, после этого по ним необходимо настроить поиск. Модифицировал ACEMySearch, добавил функции по образцу имеющейся GetTopicsIdByRegExp, выводил получившийся запрос — базой обрабатывается корректно, результаты есть, но на страницу поиска ничего не попадает. Например, поиск по дате подачи объявления(это как раз объект, который добавляется плагином к топику):
Функция, которая ищет(делал на основе ACEMySearch):
Думал, DBSimple как-то переделывает подставленное значение, но при специально допущенной ошибке в sql выводится запрос, аналогичный приведенному выше, на который находится ненулевой результат. Работает только простейшая функция поиска по 2 полям, которые могут иметь значения 0 и 1(по строкам и с like, и с "=" не работает). С чем такое еще м.б. связано?
SELECT SQL_CALC_FOUND_ROWS DISTINCT topic_id
FROM new_topic
WHERE (
topic_driveType =1
AND topic_time1 = '2011-08-29'
)
ORDER BY topic_id ASC
LIMIT 0 , 20
Функция, которая ищет(делал на основе ACEMySearch):
public function GetTopicsIdByTime($Times, &$iCount, $iCurrPage, $iPerPage, $aParams)
{
$aResult=array();
if (!$aParams['bSkipTags']) {
if(isset($Times[1])){
$sql = "
SELECT DISTINCT topic_id
FROM ".Config::Get('db.table.topic')."
WHERE (topic_driveType= 0 AND topic_time1 = ? AND topic_time2 = ?)
ORDER BY
topic_id ASC
LIMIT ?d, ?d
";
$aRows=$this->oDb->selectPage($iCount, $sql,
$Times[0],$Times[1],
($iCurrPage-1)*$iPerPage, $iPerPage);
}else{
$sql = "
SELECT DISTINCT topic_id
FROM ".Config::Get('db.table.topic')."
WHERE (topic_driveType= 1 AND topic_time1 = ?)
ORDER BY
topic_id ASC
LIMIT ?d, ?d
";
$aRows=$this->oDb->selectPage($iCount, $sql,
$Times[0],
($iCurrPage-1)*$iPerPage, $iPerPage);
}
}
if ($aRows) {
foreach ($aRows as $aRow) {
$aResult[]=$aRow['topic_id'];
}
}
return $aResult;
}
Думал, DBSimple как-то переделывает подставленное значение, но при специально допущенной ошибке в sql выводится запрос, аналогичный приведенному выше, на который находится ненулевой результат. Работает только простейшая функция поиска по 2 полям, которые могут иметь значения 0 и 1(по строкам и с like, и с "=" не работает). С чем такое еще м.б. связано?
- 0
- 30 августа 2011, 14:13
- syjgin
- Оставить комментарий
aceMySearch (плагин для поиска на сайте без Sphinx'а) - к новой версии LS готов
2
После модерации будет доступен для скачивания бесплатный плагин aceMySearch для организации поиска на сайте без установки Sphinx'а: livestreetcms.com/addons/view/219/
Каких-либо функциональных изменений по сравнению с предыдущими версиями плагин не претерпел. Проверена (и чуть-чуть пофиксена) совместимость с транковой версией ЛС, а значит не должно быть проблем при работе с грядущим релизом движка.
И исправлен баг, описанный здесь: livestreet.ru/blog/4092.html#comment118630
Собственно, ошибка эта связана некорректностью базы данных — есть топики, у которых blog_id указывает на несуществующий блог, вот и вылетала ошибка. Сейчас плагин такие топики просто игнорирует.
Каких-либо функциональных изменений по сравнению с предыдущими версиями плагин не претерпел. Проверена (и чуть-чуть пофиксена) совместимость с транковой версией ЛС, а значит не должно быть проблем при работе с грядущим релизом движка.
И исправлен баг, описанный здесь: livestreet.ru/blog/4092.html#comment118630
Собственно, ошибка эта связана некорректностью базы данных — есть топики, у которых blog_id указывает на несуществующий блог, вот и вылетала ошибка. Сейчас плагин такие топики просто игнорирует.
Плагины для LS v.0.4.1
14
Доступны для скачивания бесплатные плагины, адаптированные под LS версии 0.4.1:
aceAdminPanel — Админпанель для LiveStreet/ACE
aceMySearch — Простой поиск без Sphinx'а для LiveStreet/ACE
aceBlockManager — Менеджер Блоков для LiveStreet/ACE (детали здесь)
Также адаптирован под последний релиз движка и плагин aceBlogExtender — Расширение функциональности стандартных блогов и топиков LiveStreet, и сегодня его получат все его подписчики.
aceAdminPanel — Админпанель для LiveStreet/ACE
aceMySearch — Простой поиск без Sphinx'а для LiveStreet/ACE
aceBlockManager — Менеджер Блоков для LiveStreet/ACE (детали здесь)
Также адаптирован под последний релиз движка и плагин aceBlogExtender — Расширение функциональности стандартных блогов и топиков LiveStreet, и сегодня его получат все его подписчики.