簡體   English   中英

使用PHP幫助MYSQL查詢以構建博客存檔導航菜單

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM