Я использую функцию поиска типа запроса. Все идет хорошо, когда я ищу ключевые слова, которых мало в базе данных. Однако, когда ключевое слово «популярно» в базе данных, на экране появляется пустая страница.
function dbSearch($q) //$q is array of keywords
{
global $mainframe, $option;
$db =& JFactory::getDBO();
$str = implode("%' AND text LIKE '%", $q);
$str = str_replace("AND text LIKE '%-", "AND text NOT LIKE '%", $str);
$lim = $mainframe->getUserStateFromRequest("$option.limit", 'limit', 100, 'int');
$lim0 = JRequest::getVar('limitstart', 0, '', 'int');
$query = "SELECT SQL_CALC_FOUND_ROWS * FROM `table` WHERE type=4 AND text LIKE '%".$str."%' ORDER BY ref ASC";
$db->setQuery( $query );
$rows = $db->loadObjectList();
$count = count($rows);
if ($db->getErrorNum())
{
echo $db->stderr();
return false;
}
$db->setQuery('SELECT FOUND_ROWS();');
jimport('joomla.html.pagination');
$pageNav = new JPagination( $db->loadResult(), $lim0, $lim );
HTML_output::showFoundResults($rows, $pageNav, $count);
}
Что-то не так в приведенном выше запросе? почему он терпит неудачу во многих результатах?
Я использую функцию поиска типа запроса. Все идет хорошо, когда я ищу ключевые слова, которых мало в базе данных. Однако, когда ключевое слово «популярно» в базе данных, на экране появляется пустая страница.
[code]function dbSearch($q) //$q is array of keywords {
global $mainframe, $option;
$db =& JFactory::getDBO();
$str = implode("%' AND text LIKE '%", $q); $str = str_replace("AND text LIKE '%-", "AND text NOT LIKE '%", $str);
$lim = $mainframe->getUserStateFromRequest("$option.limit", 'limit', 100, 'int'); $lim0 = JRequest::getVar('limitstart', 0, '', 'int'); $query = "SELECT SQL_CALC_FOUND_ROWS * FROM `table` WHERE type=4 AND text LIKE '%".$str."%' ORDER BY ref ASC";