如何使用joomla对象构建全文搜索查询。我一直在尝试,但它不起作用
$db = JFactory::getDBO();
$query = $db->getQuery(true);
$query->select('*');
$query->from('#__unis_subjects AS s');
$query->join('', '#__unis AS u ON s.university = u.id');
$query->join('', '#__unis_faculties AS f ON f.id = s.faculty');
$query->where('MATCH (s.subject) AGAINST ("' . $query . '")');
if (!$db->query()) {
throw new Exception($db->getErrorMsg());
}
$data = $db->loadObjectList();
var_dump($query);
结果输出模板配置参数
答案 0 :(得分:1)
您的表必须使用ENGINE = MyISAM(而非InnoDB)进行设置,并且您搜索的列必须设置为FULLTEXT索引。
您可以通过“SQL”标签轻松地将表格设置为phpMyAdmin中的MyISAM ...
ALTER TABLE `tablename` ENGINE=MYISAM;
在我的查询中,Joomla 2.5+(可能还有3+)作为我使用的where子句......
->where('MATCH ('.$db->quoteName('columnname').') AGAINST ('.$db->quote($words_or_phrase_to_search_for).')');
进一步测试是有序的,但到目前为止它似乎按预期工作。
答案 1 :(得分:-2)
where where条件里面的$ query对我来说很奇怪。