我正在尝试为分页脚本计算数据库中的行数。我的整个脚本一直有效,直到它归结为计算行数。
这是应该计算我的行的代码[$conn 是我的数据库登录的变量集 - 它在整个代码中使用并且有效,除了这个位]。
$limit = 2;
$rows = mysql_num_rows(mysqli_query($conn, "SELECT count(*) FROM pilotOperators"));
$total=ceil($rows/$limit);
为了测试我的代码,我将此添加到页面末尾:
echo "Total:" . $total . "<br>";
echo "Rows:" . $rows . "<br>";
echo "Limit:" . $limit . "<br>";
这是从我的源代码中获取的结果:
Total:0<br>Rows:<br>Limit:2<br>
我尝试了多种变体等,但没有返回数字。
已解决:感谢两个不同的答案(显然我有两个错误)。
我的其中一行更改为:
$rows = mysqli_num_rows(mysqli_query($conn, "SELECT * FROM pilotOperators"));
现在它就像一个魅力。
感谢 Mureinik 和 EyasSH
最佳答案
这一行是你的问题:
$rows = mysql_num_rows(mysqli_query($conn, "SELECT count(*) FROM pilotOperators"));
您要求 _num_rows()
of 个 COUNT
查询。如果 oyu loo kat 的结果
mysqli_query($conn, "SELECT count(*) FROM pilotOoperators");
你会发现你会得到一行一列:
|----------|
| count(*) |
|----------|
| 233 | etc
|----------|
你想要的是:
$rows_result = mysqli_query($conn, "SELECT count(*) FROM pilotOoperators")->fetch_row();
$rows = $rows_result[0];
使用 COUNT
聚合查询通常总是比使用 num_rows
更好。什么时候使用 mysqli_num_rows
合适?好吧,如果您实际上将查询用于其他用途,但需要提前知道行数,那么最好不要在此处进行两个单独的查询。
关于PHP/MySQL 不返回数据库中的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29956579/