2010-10-25 142 views
2

有人可以帮助调试吗?Drupal SQL“Select count distinct”

目前我的脚本抛出这个错误

Parse error: syntax error, unexpected '=' in includes/common.inc(1695) : eval()'d code on line 38

,我已经将范围缩小到这个SQL语句。看起来,在Drupal中计算结果行并不像我希望的那样直截了当。

$sql_checkIP = "SELECT COUNT(*) 
FROM (SELECT DISTINCT v.hostname 
FROM {pollfield_votes} v 
WHERE v.hostname = '%s' AND v.nid =%d)"; 

$result0 = db_result(db_query($sql_checkIP, $hostname, $nid)); 

回答

2

我首先看到的是你没有写任何别名派生表

$sql_checkIP = "SELECT COUNT(*) 
FROM (SELECT DISTINCT v.hostname 
FROM {pollfield_votes} v 
WHERE v.hostname = '%s' AND v.nid =%d) as new_derived_table"; 

现在,我不知道你有多少结果与您的查询,但只有当您只有一行时才使用db_result。如果是这种情况还行,否则你应该执行类似的循环:

$result = db_query($sql_checkIP, $hostname, $nid); 
while($res=db_fetch_array($result)){ 
    $count_row = $res['COUNT(*)']; 
} 
+0

大 - 这帮助了很多!谢谢 :) – MrFidge 2010-10-26 10:04:12