分页计数没有返回值

时间:2014-01-29 16:59:47

标签: php mysqli

希望有人能给我一些帮助。我一直试图学习分页,但遇到了一个问题。当我运行这个以获得我的总行数时:

 $sql = "SELECT COUNT (*) FROM item WHERE fid='17'";
 $query = mysqli_query($con, $sql);
 $row = mysqli_fetch_row($query);
 $rows = $row[0];

$ rows返回时没有任何值,我认为$ rows应该包含来自item的记录总数,其中fid为17,当我在phpmyadmin中运行SELECT COUNT (*) FROM item WHERE fid='17'时,它返回98,这是正确的数量。在上面的代码之前,我使用这段代码连接到db,我稍后再次使用它来显示工作正常的记录。

$con=mysqli_connect("$host","$username","$password","$dbname");

// Check connection

if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
} 

此语句稍后会在脚本中显示记录

$sql = mysqli_query($con,"SELECT * FROM item WHERE fid='17' ORDER BY id DESC $limit ");

所以有数据和信息是正确的。

我一直在关注主题http://www.developphp.com/view.php?tid=1349的本教程,它在视频中的示例就像一个魅力,所有我改变的是我的数据库细节。无法想出这一个,被困了几天所以现在我困扰你们好人。

更新:已更改

 $query = mysqli_query($con, $sql);
 $row = mysqli_fetch_row($query);
 $rows = $row[0];

if ($result=mysqli_query($con,$sql))
{
// Return the number of rows in result set
$rows=mysqli_num_rows($result);
// Free result set
mysqli_free_result($result);
}

现在一切正常。我仍然希望我知道原始代码出了什么问题,但我会继续前进。感谢Phil Perry今天早上的所有帮助!

2 个答案:

答案 0 :(得分:1)

好吧,您可以SELECT * FROM...然后致电mysqli_num_rows($query)。可能比SELECT count(*)慢。顺便说一句,我认为该项不是SQL中的保留字。您始终可以在反引号中包含表格和字段名称(不是引号'或')。您也可以尝试SELECT count(*) AS myCount...

答案 1 :(得分:0)

试试这个,

$sql = "SELECT COUNT(*) FROM item WHERE fid='17'";
$query = mysqli_query($sql);
$row = mysqli_fetch_array($query);
$rows = $row[0];