0

我对这个 mysql 查询有一个小问题。

          $sql = "SELECT name FROM videos ORDER BY counter DESC LIMIT 5";
      $result = mysql_query($sql, $conn) or trigger_error("SQL", E_USER_ERROR);
      $list = mysql_fetch_assoc($result);
      while($list = mysql_fetch_assoc($result)){
          echo $list['counter'];
          echo "<br>";
      }
      mysql_free_result($result);

想要我想要实现的是它按顺序“计数器”列出 5 个条目但是在列出它时?它只显示 4 个这样的条目:-

5648
4575
1595
35

那么我的第 5 个条目在哪里?为什么不发布呢?请注意,第 5 个条目也是最高的,值为

305355

提前致谢

4

4 回答 4

6

您在从结果集(即)中弹出一条记录的循环之前获取。305355

$list = mysql_fetch_assoc($result); // REMOVE THIS LINE
while($list = mysql_fetch_assoc($result)) {
  // output code
}
于 2013-09-04T11:44:28.393 回答
1

尽量减少代码和使用mysqli_函数

$sql = "SELECT name FROM videos ORDER BY counter DESC LIMIT 5";
$result = mysql_query($sql, $conn);

while($list = mysql_fetch_assoc($result)){
   echo $list['counter']."<br>";
}
于 2013-09-04T11:46:16.887 回答
0

试试这个代码..

      $sql = "SELECT name FROM videos ORDER BY counter DESC LIMIT 5";
      $result = mysql_query($sql, $conn) or trigger_error("SQL", E_USER_ERROR);

      while($list = mysql_fetch_assoc($result)){
          echo $list['counter'];
          echo "<br>";
      }
      mysql_free_result($result);
于 2013-09-04T11:51:13.813 回答
0

您两次调用 mysql_fetch_assoc 这就是为什么您的第一行第一次调用 mysql_fetch_assoc 并在第二次调用中显示剩余的原因

于 2013-09-04T12:14:47.477 回答