PHP MYSQL 死循环

标签 php mysql loops

我的 php/mysql 脚本有问题。它应该只输出 while 循环一次,但我得到了无限循环和无休止的页面。

$query = mysql_query("SELECT * FROM users WHERE username ='".base64_encode($_SESSION['username'])."' LIMIT 1"); 
$result = mysql_fetch_array($query);
   if(empty($result)){
      echo "No user... Error";
   }else{
   while($row = $result){
   ?>
<a href="index.php?user=<?=$row['id']?>"><?=base64_decode($row['username'])?></a> | <a  href="javascript:void(0);" id="logout">Logout</a>
   <?php
   }
}

我已经用这些相同的行尝试了一个类似的脚本并且它工作得很好

  $result = mysql_fetch_array($query);
   if(empty($result)){
      echo "No user... Error";
   }else{
   while($row = $result){
      //Something
   }
}

loop http://img249.imageshack.us/img249/70/endlessloop.png

最佳答案

看:

http://php.net/manual/en/function.mysql-fetch-array.php

例子中有:

$result = mysql_query("SELECT id, name FROM mytable");

while ($row = mysql_fetch_array($result)) {
    printf("ID: %s  Name: %s", $row[0], $row[1]);  
}

mysql_fetch_array 获取下一行的数组,如果没有剩余则返回 false。

$row = $result 当 $result 是任何不转换为 false 的东西时将创建一个无限循环

另外

你可以使用 mysql_num_rows [ http://php.net/manual/en/function.mysql-num-rows.php ] 检查是否返回零结果:

$result = mysql_query("SELECT id, name FROM mytable");

if(mysql_num_rows($result) {
    while ($row = mysql_fetch_array($result)) {
        printf("ID: %s  Name: %s", $row[0], $row[1]);  
    }
} else {
    // NO ROWS RETURNED
}

关于PHP MYSQL 死循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3013982/

相关文章:

php - 什么是好的免费在线投票/调查应用程序?

mysql - Union ALL 查询在 VBA 中失败但在 SQL 中正常

loops - 如何按确切顺序遍历表?

MySQL:匹配来自具有多个值的 2 个表的记录

r - 使用 while 循环而不打印所有迭代

r - 在循环中使用 data.table 优化子集

php - SQLSTATE[HY000] : OCISessionBegin: ORA-21561: OID generation failed

php - 单击 PayPal 按钮时如何捕获用户信息?

php - 将数学放入 sql 查询中

php - 在 php 中运行并忘记系统调用