为不同的值获取num_row一次

时间:2015-04-20 10:55:23

标签: php mysql mysqli

我是PHP的新手,我正在尝试从行计数数据库中获取结果。我使用了以下给定的方法:

$result = $mysqli->query("SELECT * FROM donors WHERE blood_group = 'A+'");
$Apositive = $result->num_rows;

现在您可以看到我必须为每个血型执行此查询。

有没有更简单的方法以一种方式获得所有这些结果?

1 个答案:

答案 0 :(得分:3)

SELECT blood_group, count(*) AS donor_count
  FROM donors
 GROUP BY blood_group

将返回一系列结果,每个blood_group一个,其中包含donor_count中该组的捐赠者数量;然后你可以循环遍历结果集

修改

$query = "SELECT blood_group, count(*) AS donor_count
      FROM donors
     GROUP BY blood_group";

if ($result = $mysqli->query($query)) {

    /* fetch associative array */
    while ($row = $result->fetch_assoc()) {
        printf (
            "Blood Group: %s has %d donors)\n", 
            $row["blood_group"], 
            $row["donor_count"]
        );
    }
}