[英]Help with MYSQL query using PHP to build a blog archive navigation menu
我正在構建博客存檔導航菜單。 目前,我運行查詢以獲取所有年份和月份。 然后循環瀏覽並運行以下查詢,以獲取該年/月博客文章的所有ID和標題:
SELECT `id`, `title`
FROM `news`
WHERE YEAR(`date`) = "2010" AND MONTH(`date`) = "03"
ORDER BY `date` DESC
之后,要計算該月的帖子數量,我會運行一個非常類似的查詢:
SELECT COUNT(*) as `count`
FROM `news`
WHERE YEAR(`date`) = "2010" AND MONTH(`date`) = "03"
年份和月份當然是動態的。
有什么方法可以避免必須運行兩個單獨的查詢?
提前謝謝!
有什么問題:
SELECT `id`, `title`, count(*) AS `count`
FROM `news`
WHERE YEAR(`date`) = "2010" AND MONTH(`date`) = "03"
GROUP BY ( `id` ) #assuming id is unique
ORDER BY `date` DESC
?
編輯:忘記添加GROUP BY子句
編輯2:忘記以上。 這顯然是不正確的。 盡管可以認為它不是很優雅,但這將達到目的:
SELECT
`id`,
`title`,
( SELECT
count(*)
FROM
`news`
WHERE
YEAR(`date`) = "2010" AND
MONTH(`date`) = "01" ) as `count`
FROM
`news`
WHERE
YEAR(`date`) = "2010" AND
MONTH(`date`) = "01"
ORDER BY
`date` DESC
因此,建議的mysql_num_rows()畢竟還算不錯。 :)
發送第一個查詢( http://php.net/manual/en/function.mysql-num-rows.php )后,您可以通過php計算行數
您可以使用php count(); 如果您的數據庫實現此方法:
echo count($this->db->fetch_array($q));
容易知道有多少個項目
您不能一口氣做完所有這些嗎?
SELECT COUNT(id) as count, MONTH(date) as month, YEAR(date) as year FROM news GROUP BY MONTH(date), YEAR(date)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.