在计算表中的行后,我遇到了获取正确值的问题。我在网上搜索但没有找到答案。
在数据库中我有一个包含所有类别的表,它们都有一个id,我想用这个列来计算。
我有这个PHP代码,它有效,但还有其他更好的方法来克服这个问题吗?
$sql2 = "SELECT COUNT(id) FROM categories";
$stmt2 = sqlsrv_query($conn, $sql2);
$res = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);
foreach($res as $row)
{
$rows = $row;
}
//if there are categories display them otherwise don't
if ($rows > 0)
{
$sql = "SELECT * FROM categories";
$stmt = sqlsrv_query($conn, $sql);
while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
echo "<a href='#' class='cat_links'>" . $row['category_name'] . " - <font size='-1'>" . $row['category_description'] . "</font></a>";
}
}
else
{
echo "<p style='text-align: center'>No categories yet.</p>";
}
我认为必须是将$ stmt2变量从SQL资源转换为实际数字,或将$ res变量从数组转换为数字的更好方法。如果我尝试使用foreach回显整个数组,它只会打印出行数。这就是我现在用它来计算行数的原因。
我无法使用sqlsrv_num_rows函数,因为我收到错误或没有回答。