Mysql While循环不工作

时间:2013-05-29 06:44:48

标签: php mysql

我正在尝试创建一个简单的论坛脚本,但是当我尝试每次运行代码时,都会收到此错误:

Fatal error: Maximum execution time of 30 seconds exceeded in D:\xampp\htdocs\index.php on line 15

这是我正在使用的代码

while($topic = mysql_fetch_array(mysql_query("SELECT `name`, `post_count` FROM `topics`))){
?>
<tr>
    <td><?php echo $topic['name']; ?></td>
    <td><?php echo $topic['post_count']; ?></td>
</tr>
<?php
}

3 个答案:

答案 0 :(得分:6)

您的查询将始终返回结果集。然后在该结果集上调用fetch-array,并获取第一行。然后重新运行查询,并获取第一行。再次。再一次......这就是我们所说的无限循环:)

只需调用一次查询,然后在mysql结果上调用mysql fetch数组。

作为附注:查看PHP手册中的mysl_函数..查看大警告?这些函数已弃用!

答案 1 :(得分:4)

尝试此结构时,会一遍又一遍地执行查询。 请先尝试在变量中设置查询,并在while循环中使用它:

$query = mysql_query("YOUR QUERY!");

while($topic = mysql_fetch_array($query)) {
    print_r($topic);
}

答案 2 :(得分:0)

您不应该循环调用mysql_query。调用一次,然后获取结果。

$result = mysql_query("SELECT `name`, `post_count` FROM `topics`");

while ($topic = mysql_fetch_array($result, MYSQL_NUM)) {
  ?>
  <tr>
      <td><?php echo $topic['name']; ?></td>
      <td><?php echo $topic['post_count']; ?></td>
  </tr>
  <?php
}
mysql_free_result($result);