获得 num_row 一次不同的值

Get num_row once for different values

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

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

现在如您所见,我必须对每个血型执行此查询。

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

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

将 return 一系列结果,每个 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"]
        );
    }
}