我有这个查询
AND i.state = 1
AND i.language = "'.$mylang.'"
AND i.access IN ('.implode(',', $user->getAuthorisedViewLevels()).')
我应该只获取当前语言的内容)奇怪的是,使用php变量$ mylang它不起作用(写它-IT)我得到了内容。 我已经检查了$ mylang及其=的结果 - it。IT。
任何线索? 感谢。
答案 0 :(得分:1)
我不确定WHERE中的1 = 1子条款但忽略了这一点 尝试这样的事情:
$db = JFactory::getDBO();
$query = $db->query(true);
$query->select('i.*')
->from($db->quteName('#__content'))
->where($db->quoteName('i.state') . ' = 1')
->where($db->quoteName('i.language') .' = ' $db->quote($mylanguage))
->where($db->quoteName('i.access') . ' IN (' . impode(',',$user->getAuthorisedViewLevels()) . ')' )
...
;
$db->set($query);
....
此外,如果您的查询不起作用,最好的办法是echo $query->dump()
查看呈现的查询,如果您打开调试器,也可以查看查询。