簡體   English   中英

如何通過PHP檢索COUNT(*)語句的結果

[英]How to retrieve result of COUNT(*) statement through PHP

如何使用PHP檢索以下COUNT(*)MYSQL語句的結果?

MYSQL

$sql= mysql_query ("
                    select count(*)
                    from orders o
                    WHERE order_status IN
                    ('Printed Order', 'Charged Order', 'Exchanged Order', 'Refunded Order', 'Cancelled Order')
                    GROUP BY FIELD
                    (order_status,'Printed Order', 'Charged Order', 'Exchanged Order', 'Refunded Order', 'Cancelled Order')
                  ");

以上查詢結果

count(*)
226
19130
593
2603
2892

我嘗試了以下代碼按順序檢索每一行-

PHP

$row = mysql_fetch_row($sql);
echo $row[0];
echo $row[1];
echo $row[2];
echo $row[3];
echo $row[4];

產生以下錯誤: Notice: Undefined offset: 1 ...

我知道我缺少了一些非常簡單的東西,但是請有人告訴我調用COUNT(*)查詢結果的正確方法。

您的查詢返回5行。 您必須遍歷它們並顯示列:

while($row = mysql_fetch_row($sql)){
    echo $row[0];
}

另請參閱文檔

使用別名進行計數也很有意義。

$sql= mysql_query = "
                    select count(*) as countValue
                    from orders o
                    WHERE order_status IN
                    ('Printed Order', 'Charged Order', 'Exchanged Order', 'Refunded Order', 'Cancelled Order')
                    GROUP BY FIELD
                    (order_status,'Printed Order', 'Charged Order', 'Exchanged Order', 'Refunded Order', 'Cancelled Order')
                  ";

while($row = mysql_fetch_row($sql)){
    echo $row["countValue"];
}

警告:從PHP 5.5.0開始不推薦使用mysql_擴展名,以后會刪除它。 相反,應使用MySQLi或PDO_MySQL擴展。

您需要添加循環以獲取所有數據並使用mysqli而不是mysql。

像這樣的東西

 $sql= "select count(*) as total from orders o WHERE order_status IN
       ('Printed Order', 'Charged Order', 'Exchanged Order', 'Refunded Order', 'Cancelled Order') GROUP BY FIELD (order_status,'Printed Order', 'Charged Order', 'Exchanged Order', 'Refunded Order', 'Cancelled Order')"

$result = mysqli_query($con, $sql);

while($row = mysqli_fetch_array($result)) {
   echo $row['total'];
   echo "<br>";
}

您也可以對mysql而不是mysqli使用相同的方法,但是mysqli對於將來的使用會更好。

$result = mysql_query($sql);

while($row = mysql_fetch_row($sql)){
   echo $row['total'];
   echo "<br>";
}
$sql= mysql_query ("
                    select count(*) as nbre
                    from orders o
                    WHERE order_status IN
                    ('Printed Order', 'Charged Order', 'Exchanged Order', 'Refunded Order', 'Cancelled Order')
                    GROUP BY FIELD
                    (order_status,'Printed Order', 'Charged Order', 'Exchanged Order', 'Refunded Order', 'Cancelled Order')
                  ");


echo $row[0]['nbre'];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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