由于某种原因,我的PHP代码不起作用

时间:2014-02-11 21:15:11

标签: php html loops if-statement

所以我的代码应该按照AS的ASC(升序)顺序打印出我游戏的所有用户。它做得很好,但由于某种原因,它不会正确打印他们的名字......

这是我的代码:

<table width="90%" border="1" style="border-collapse:collapse;border:4px solid #9f0606;">
  <tr height="41">
    <td align="center" colspan="2" style="border-collapse:collapse;border:4px solid #9f0606;"><strong>User List</strong></td>
  </tr>
<?
$presult = mysql_query("SELECT * FROM users ORDER BY id ASC") or die(mysql_error());
$b = 0;                    
while($row = mysql_fetch_array($presult)) {
?>
  <tr height="31">
    <td width="80%" style="border-collapse:collapse;border:4px solid #9f0606;" align="left">
      <?php
$b = $b + 1;
if($row['account_type'] == 1){
echo "<p><a style=\"color:black;text-decoration:none;\" href=\"view_profile.php?id=". $row['id'] ."\">".$row['username']."&nbsp;[".$row['id']."]</a></p>";
?>
     </td>
   <td width="20%" style="border-collapse:collapse;border:4px solid #9f0606;" align="left">
<?
echo "<p>Level:&nbsp;".$row['level']."</p>";
?>
  </td>
</tr>
<?
}elseif($row['account_type'] == 2){
?>
echo "<p><a style=\"color:#CC0000;text-decoration:none;\" href=\"view_profile.php?id=". $row['id'] ."\">".$row['username']."&nbsp;[".$row['id']."]</a></p>";
?>
  </td>
 <td width="20%" style="border-collapse:collapse;border:4px solid #9f0606;" align="left">
<?
echo "<p>Level:&nbsp;".$row['level']."</p>";
?>
</td>
 </tr>
<?
}else{
?>
echo "<p><a style=\"color:black;text-decoration:none;\" href=\"view_profile.php?id=". $row['id'] ."\">".$row['username']."&nbsp;[".$row['id']."]</a></p>";
?>
 </td>
<td width="20%" style="border-collapse:collapse;border:4px solid #9f0606;" align="left">
<?
echo "<p>Level:&nbsp;".$row['level']."</p>";
    ?>
    </td>
  </tr>
<?
}
}
?>
</table>

很抱歉,它不是很整洁或有组织,不得不将所有东西放置4次变得烦人,所以我让它看起来有点草率。

以下是我在浏览器中代码的截图:

(我无法发布图片,因为我显然没有10个声誉,但基本上截图显示用户名/ id部分看起来像这样:

echo "

`this row in blue`".$row['username']." [".$row['id']."]

";?>

和关卡部分看起来我想要它,如下所示:

Level: 12)

正如您所看到的,循环的“级别”部分(打印用户级别)工作正常。如果你能在我的其余代码中找到错误,那就太棒了。哦,顺便说一句,它说($ row ['account_type'] == 1),没有用户是account_type == 1,第一个是account_type == 6,第二个是account_type == 2他们都打印完全相同。谢谢!

图片在这里:

enter image description here

1 个答案:

答案 0 :(得分:2)

你在多个地方过早地关闭了php ?>

<table width="90%" border="1" style="border-collapse:collapse;border:4px solid #9f0606;">
  <tr height="41">
    <td align="center" colspan="2" style="border-collapse:collapse;border:4px solid #9f0606;"><strong>User List</strong></td>
  </tr>
<?
$presult = mysql_query("SELECT * FROM users ORDER BY id ASC") or die(mysql_error());
$b = 0;                    
while($row = mysql_fetch_array($presult)) {
?>
  <tr height="31">
    <td width="80%" style="border-collapse:collapse;border:4px solid #9f0606;" align="left">
      <?php
$b = $b + 1;
if($row['account_type'] == 1){
echo "<p><a style=\"color:black;text-decoration:none;\" href=\"view_profile.php?id=". $row['id'] ."\">".$row['username']."&nbsp;[".$row['id']."]</a></p>";
?>
     </td>
   <td width="20%" style="border-collapse:collapse;border:4px solid #9f0606;" align="left">
<?
echo "<p>Level:&nbsp;".$row['level']."</p>";
?>
  </td>
</tr>
<?
}elseif($row['account_type'] == 2){
?>

** * 此处为 * ** * ** *

echo "<p><a style=\"color:#CC0000;text-decoration:none;\" href=\"view_profile.php?id=". $row['id'] ."\">".$row['username']."&nbsp;[".$row['id']."]</a></p>";
?>
  </td>
 <td width="20%" style="border-collapse:collapse;border:4px solid #9f0606;" align="left">
<?
echo "<p>Level:&nbsp;".$row['level']."</p>";
?>
</td>
 </tr>
<?
}else{
?>

** * ** * AND HERE < EM> * ** * ** *

echo "<p><a style=\"color:black;text-decoration:none;\" href=\"view_profile.php?id=". $row['id'] ."\">".$row['username']."&nbsp;[".$row['id']."]</a></p>";
?>
 </td>
<td width="20%" style="border-collapse:collapse;border:4px solid #9f0606;" align="left">
<?
echo "<p>Level:&nbsp;".$row['level']."</p>";
    ?>
    </td>
  </tr>
<?
}
}
?>
</table>