2010-10-25 182 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