PHP MYSQL无限循环

PHP MYSQL无限循环,php,mysql,loops,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...

我的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_query("SELECT id, name FROM mytable");

while ($row = mysql_fetch_array($result)) {
    printf("ID: %s  Name: %s", $row[0], $row[1]);  
}
mysql_fetch_数组获取下一行的数组,如果没有剩余的,则获取false

$row=$result将在$result为任何不转换为false的对象时创建一个无限循环

另外

您可以使用mysql\u num\u行[ ]要检查是否返回零结果,请执行以下操作:

$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
}

$row=$result
不是比较而是赋值,并且始终为真

您需要将
mysql\u fetch\u array
放入while循环

while($row = mysql_fetch_array($query)){
   ?>
<a href="index.php?user=<?=$row['id']?>"><?=base64_decode($row['username'])?></a> | <a  href="javascript:void(0);" id="logout">Logout</a>
   <?php
   }
while($row=mysql\u fetch\u array($query)){
?>
| 

但是如果我想检查空请求,我必须执行两个mysql_fetch_array($query)@Neb如果你想检查空结果,请使用
if(mysql_num_rows($query)==0)
while($row = mysql_fetch_array($query)){
   ?>
<a href="index.php?user=<?=$row['id']?>"><?=base64_decode($row['username'])?></a> | <a  href="javascript:void(0);" id="logout">Logout</a>
   <?php
   }