while循环不起作用时,只显示一个结果

时间:2012-10-07 17:48:17

标签: php sql loops while-loop do-while

有一个do Wile循环没有循环的麻烦.. SQL中当前有2个结果应该返回,但它只显示一个。

SQL。 - 它应该找到的两个结果

array('bid'=>4,'bname'=>'fdsfsdaf','section'=>'Network','btype'=>'Activity','breq'=>'fdsfsd','bnotes'=>'fdsfdsf','image'=>'Badges/Network/2inchsquare.png'),
  array('bid'=>3,'bname'=>'Test','section'=>'Network','btype'=>'Activity','breq'=>'dfsfds','bnotes'=>'fsdfs','image'=>'Badges/Network/2inchsquare.png')
);

我的PHP

<?php
require_once('inc/global.php');
include('inc/auth.php');
mysql_select_db($dbname, $db);
$sql = "SELECT * FROM badges WHERE section = 'Network'";
$result = mysql_query($sql, $db) or die(mysql_error());
$bnetwork = mysql_fetch_assoc($result);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Admin</title>
<link href="css/admin.css" type="text/css" rel="stylesheet" media="screen,projection" />
</head>
<body>
<div id="listtable">

<table class="contacts">
        <tr>
            <td class="contactDept" width="20%">Badge Name</td>
            <td class="contactDept" width="20%">Section</td>
            <td class="contactDept" width="20%">Badge Type</td>
            <td class="contactDept" width="20%">Pic</td>
            <td class="contactDept" width="10%">Edit</td>
            <td class="contactDept" width="10%">Del</td>
        </tr>
</table>
<?php do { ?>       
        <ul>
            <li class="badgeName"><?php echo $bnetwork['bname']; ?></li>
            <li class="badgeSection"><?php echo $bnetwork['section']; ?></li>
            <li class="badgeType"><?php echo $bnetwork['btype']; ?></li>
            <li class="badgePic"><img src="<?php echo $bnetwork['image'];?>" width="30px" height="30px"></li>
            <li class="badgeEdit"><a href="#">Edit</a></li>
            <li class="badgeDel"><a href="#">Del</a></li>
        </ul>

<?php } while($bnetwork = mysql_fetch_assoc($result)); ?>
</div>
</body>
</html>

我知道该表不应该在 LI 标签中,我只是尝试以防万一它因为某些未知原因而不喜欢 TD 标签。 请告诉我你是否可以解决为什么它只显示一个结果。

1 个答案:

答案 0 :(得分:0)

while循环应该是adequete。你也不需要回声和';'何时只在HTML中显示变量。当它紧跟在一个开放的php标记之后,你可以使用'='来表示echo。 我希望这会有所帮助。

<? while($n = mysql_fetch_assoc($result)) { ?>
        <ul>
            <li class="badgeName"><?=$n['bname']?></li>
            <li class="badgeSection"><?=$n['section']?></li>
            <li class="badgeType"><?=$n['btype']?></li>
            <li class="badgePic"><img src="<?=$n['image']?>" width="30px" height="30px"></li>
            <li class="badgeEdit"><a href="#">Edit</a></li>
            <li class="badgeDel"><a href="#">Del</a></li>
        </ul>
<? } ?>