我需要数据库中的条目总数。
问:为什么行“print\r($rows)”返回“array([count(id)]=>79)”而行“$recordcount=count($row);“回音”
记录计数=“$“记录计数;”返回“记录计数=1”。
我已经尝试了大量不同版本的代码,但我不能在这里全部键入,否则要花很长时间才能阅读。下面是代码的当前版本,它给了我上面提到的意外结果:
// create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// check connection
if ($conn->connect_error) {
die("connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM games ORDER BY id DESC LIMIT $startRow, $rowsPerPage";
$result = $conn->query($sql);
$sql = "SELECT COUNT(id) FROM games";
$results = $conn->query($sql);
$row = $results->fetch_assoc();
print_r($row);
$recordCount = Count($row);
echo "<br/> record count = " . $recordCount;
$totalPages = ceil($recordCount / $rowsPerPage);
$pagination = "<div class='pagination'>";
for ($i = 0; $i <= $totalPages; $i++) {
$pagination .= "<a href='index.php?page=" . $i . "'>" . $i . "</a>";
echo 'wtf!';
}
$pagination .= "</div>";
echo ' <br/> pagination = ' . $pagination;
多亏了各位英雄,我现在已经纠正了这一点:如果2018年有人在网上阅读并发现许多不正确的实现:
$sql = "SELECT COUNT(id) as countid FROM games";
$results = $conn->query($sql);
$row = $results->fetch_assoc();
$recordCount = $row["countid"]; // the countid gives me the total i expected :DDDD
echo "<br/> record count = " . $recordCount;
2条答案
按热度按时间fd3cxomn1#
row
是一个关联数组,结果集中的每一列都有一个条目。因为那里只有一个纵队,count($row)
退货1
. 相反,您应该只访问其中的唯一列:avkwfej42#
是的,您可以为列设置别名,以便将其用作关联数组中的键,或者因为您已经知道此语句:
所以,您可以只写$recordcount=$row[0];去拿那个伯爵。
上面的答案也是正确的,但我想让你知道这个直接的,备用的方法,以防你忘记化名的任何原因!