2014-01-30 70 views
-1

我試圖從MySQL表(列referrer)檢索引用URL的列表,計算出現多次的URL並按降序列出URL和計數。我不能解決它!對sql結果進行計數並使用PHP顯示

$ref=$icdb->get_row("SELECT count(1) AS frequency, referrer FROM url_log WHERE u = '".$dom."'GROUP BY referrer ORDER BY frequency DESC"); 

foreach ($ref as $details) { 
echo $details['referrer']."</td><td>".$details['frequency']."</td>"; 
} 
+0

changet到COUNT(*) – fmodos

+0

是你有簡單的,你是不排除與1從結果計數的項目設置的問題? –

+0

這個句子的語法並沒有真正指向他希望排除第一個數的行。 @Ryerye你能澄清嗎? –

回答

3

如果您想篩選出一個的計數的項目,你可能會考慮使用HAVING條款:

SELECT COUNT(1) AS frequency, referrer 
FROM url_log 
WHERE u = ? 
GROUP BY referrer 
HAVING frequency > 1 
ORDER BY frequency DESC 

在本質上HAVING子句允許您提供後初始的額外的過濾條件計算由WHERE子句的主查詢指定的結果集。此功能最常用的用法可能是在彙總字段中指定過濾條件。

+0

如何顯示數組?這不起作用: '的foreach($ REF爲$細節){ 回聲$細節[ '引薦'] 「​​」 $細節[ '頻率'] 「」;。。。 }' – ryerye

+0

@ryerye很難說,因爲我似乎不知道'$ ref'是什麼,因爲您似乎正在使用一些自定義數據庫類。爲什麼不把'var_dump($ ref)'結果添加到你原來的問題中。 –

+0

@ryerye另外,你確定'$ ref'是否包含整個結果集?使用名爲'get_row'的方法返回結果集中的所有行似乎很奇怪。 –

相關問題