结果始终为 1:
$sql = 'SELECT COUNT(Vote) FROM ' . $table;
$res = mysql_query($sql, $conn);
$vote_total = mysql_num_rows($res);
我在 phpMyAdmin 中运行了 $sql 查询,它返回 3,所以查询不是问题。$vote_total 全局初始化为 0,因此 1 来自某个地方。我还需要提供哪些其他信息才能更轻松地帮助我?
谢谢,瑞安
结果始终为 1:
$sql = 'SELECT COUNT(Vote) FROM ' . $table;
$res = mysql_query($sql, $conn);
$vote_total = mysql_num_rows($res);
我在 phpMyAdmin 中运行了 $sql 查询,它返回 3,所以查询不是问题。$vote_total 全局初始化为 0,因此 1 来自某个地方。我还需要提供哪些其他信息才能更轻松地帮助我?
谢谢,瑞安
mysql_num_rows
返回选定行的数量,而不是某一行的字段。用于mysql_fetch_row
获取您在查询中选择的行:
$sql = 'SELECT COUNT(Vote) FROM ' . $table;
$res = mysql_query($sql, $conn);
$row = mysql_fetch_row($res);
$vote_total = $row[0];
您还可以使用mysql_result
来获取一行并获取某个字段:
$vote_total = mysql_result($res, 0, 0);
这将获取第一行(基于零)并返回第一个字段(基于零)。
该查询确实只返回一行。您想要的是从查询中检索值:
$row = mysql_fetch_array($res);
$vote_total = $row[0];
永远只有一排。在那一行将是计票。
$sql = 'SELECT COUNT(Vote) FROM ' . $table;
$res = mysql_query($sql, $conn);
$vote_array = mysql_fetch_array($res);
$vote_total = $vote_array[0];
如果你想用 计算票数mysql_num_rows
,你必须选择所有的行。
棘手的部分是,即使 sql 查询包含 COUNT() 语句,它仍然像其他任何查询结果一样。如果您发出了常规查询,MySQL 将返回包含单个列的行,其中包含将返回的行数。另一方面,mysql_num_rows() 只计算实际执行的查询结果中的行数。在这种情况下,它始终是单行。
你想要的是:
$sql = 'SELECT COUNT(Vote) FROM ' . $table;
$res = mysql_query($sql, $conn);
$data = mysql_fetch_row($res);
$vote_total = $data[0];