我正在尝试计算数据库中用于分页脚本的行数。我的整个脚本都工作,直到计算行数。
这是应该计算我的行的代码[$ 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
答案 0 :(得分:3)
这一行是你的问题:
$rows = mysql_num_rows(mysqli_query($conn, "SELECT count(*) FROM pilotOperators"));
您要求_num_rows()
一个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
?好吧,如果你实际上是在使用其他东西的查询,但需要提前知道行数,那么最好不要在这里进行两次单独的查询。