2012-01-14 127 views
0

我完全难住在这里。我写了下面的代码,当我查看页面时,我得到一个500错误。通过逐个注释选择行的过程,我能够发现while语句导致错误...任何人都可以告诉我,我的代码可能有什么错误?php while语句导致500错误

<?php 
       $rQuery = "SELECT * FROM roles ORDER BY roleName ASC"; 
       $rResult = mysql_query($rQuery); 

       if (!$rResult){ 
        echo 'Query Error <br>' . $rQuery; 
        exit; 
       } 

      ?> 
      <p> 
       <select name="roleaddid" id="roleaddid" > 

        <?php while ($roles = mysql_fetch_array($rResult)){ ?> 

        <option value="<?php echo $roles['roleId'] ?>"><?php echo $roles['roleName'] ?></option> 

        <? } // end while ?> 

       </select> 

      </p> 

感谢任何见解...

+6

你已经启用短标记?我注意到你的结尾大括号是,而不是 donutdan4114 2012-01-14 04:57:15

+0

哇,就是这样。谢谢!!! – Peter 2012-01-14 04:58:40

+0

@ donutdan4114使它成为一个答案。 – 2012-01-14 05:07:50

回答

3

你需要修复的<? ?>在你结束括号。

更改为<?php ?>

0

donutdan得到肯定的回答,您必须启用短标记....也,如果你的使用短标签,像这样:<? echo $blank ?>你还是应该结束你的回声分号,甚至更好然而,调用变量这样

<?=$variable?> 

这样你就不必像呼应,每次....

+0

在'?>'之前,分号是可选的。我个人更喜欢它不在那里,只是简短的片段。 – cHao 2012-01-14 05:19:21

+0

我知道它是可选的,但我总是喜欢遵循指定的语法,即使是一个条件语句如果有一个动作错误我没有括号,我真的只是表明你不需要回显<?= $变量? > ...绝对让事情变得更简单 – 2012-01-14 05:21:54

0
<?php 

      //add your mysql connect 
      $rQuery = "SELECT * FROM roles ORDER BY roleName ASC"; 
      $rResult = mysql_query($rQuery); 

      if (!$rResult){ 
       echo 'Query Error <br>' . $rQuery; 
       exit; 
      } 

     ?> 
     <p> 
      <select name="roleaddid" id="roleaddid" > 

       <?php while ($roles = mysql_fetch_array($rResult)){ ?> 

       <option value="<?php echo $roles['roleId'] ?>"><?php echo $roles['roleName'] ?></option> 

       <?php } // end while ?> 

      </select> 

     </p>