我已经覆盖了node.tpl,并且需要使用视图生成的查询从db获得一些结果。 这是我使用的代码:
<?php $res = db_query("SELECT node.nid AS nid, node.title AS node_title FROM node node LEFT JOIN content_field_is_popular node_data_field_is_popular ON node.vid
= node_data_field_is_popular.vid WHERE (node.type in ('article_thisweekend')) AND (UPPER(node_data_field_is_popular.field_is_popular_value)
= UPPER('yes'));");
foreach($res as $reco){
print ($reco->nid);
}
?>
但我没有得到任何结果。 我缺少什么?
由于
答案 0 :(得分:2)
通常最好避免将查询直接放入模板文件中。最好separate logic and presentation。
相反,使用模块生成所需的内容并将其传递给主题图层。在这种情况下,如果您已经使用Views模块生成查询,请让Views为您运行它并将数据传递给页面或块显示。
否则,要调试查询,请尝试通过像phpMyAdmin或“drush sqlq”这样的代码独立于代码运行查询。
答案 1 :(得分:2)
Matt V.有很好的建议,你应该尝试将视图模板与sql查询逻辑分开。
但是,对于此特定示例,您需要使用db_fetch_object
,因为$res
只包含。{1}}
database query result resource
而不是
foreach($res as $reco){
print ($reco->nid);
}
待办事项
while ($reco = db_fetch_object($res)){
print ($reco->nid);
}