Php MySQL结果计数

Php MySQL结果计数,php,mysql,Php,Mysql,我正在尝试使用php从mysql查询中获取结果的数量,这是我尝试的: $query = mysqli_query($connection, "SELECT email FROM `appointments` WHERE email = '" . $email . "'"); $results = 0; while($row = mysqli_fetch_assoc($query)){ $results++; } return $results; 问题是它总是返回9 我对我的$quer

我正在尝试使用php从mysql查询中获取结果的数量,这是我尝试的:

$query = mysqli_query($connection, "SELECT email FROM `appointments` WHERE email = '" . $email . "'");
$results = 0;
while($row = mysqli_fetch_assoc($query)){
     $results++;
}
return $results;
问题是它总是返回9

我对我的$query进行了打印并返回了以下内容:

mysqli\u结果对象[当前\u字段]=>0[字段\u计数]=>1[长度]=>1[行数]=>9[类型]=>0

我的问题是,如何使用php获得mysql查询的结果数

我想我可以使用SELECT COUNT*,除非其他人有更好的想法。

试试下面的代码:

$query = mysqli_query($connection, "SELECT COUNT(*) AS num FROM `appointments` WHERE email = '" . $email . "'");

$row = mysqli_fetch_assoc($query);

return $row['num'];
试试这个:

$query = mysqli_query($connection, "SELECT email FROM `appointments` WHERE email = '" . $email . "'");
$result = mysqli_fetch_array($query);
return mysqli_num_rows($result);

你的问题是什么?是的,选择count*是正确的方法,除非你在其他地方使用当前结果集,否则你可以使用mysqli_num_rows$result;但伯爵也很好。在获取所有行以获取计数的同时增加变量可能是执行此操作最不有效的方法。找到的行:。选择“计数”“电子邮件”-电子邮件是一列,而不是一个值。@Fred ii-很好。对Ashlique说:如果你不明白Fred指出的是什么,你想删除电子邮件中的引号。COUNT*通常是一个安全的赌注。告诉我如果我指定了一个列名而不是COUNT*,会有什么问题吗?将其更改为COUNT*@Devon是有意义的:有趣的是,在这种情况下它并不重要。计数'电子邮件'将工作没有任何问题,以及。更重要的是,在这种情况下,使用常量值进行计数比使用列名进行计数要好。如果您只想对行进行计数,那么从数据库中获取所有数据是一个愚蠢的想法。特别是当它们都是完全相同的值时。有不同的方法来解决这个问题。假设他需要计数以及表中的值,我的答案将更合适。但是,如果他只需要计算行数,那么另一个答案将更合适。