如何使用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"];
}
警告: mysql_扩展在PHP 5.5.0中已弃用,将来会被删除。相反,应该使用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'];