0

我正在尝试制作一个简单的论坛脚本,但是当我尝试以及无论何时运行我的代码时,都会收到此错误:

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

3 回答 3

6

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

只需调用一次查询,然后对从中获得的 mysql 结果调用 mysql fetch 数组。

作为旁注:检查 mysl_ 函数的 PHP 手册。看到大警告了吗?这些功能已弃用!

于 2013-05-29T06:47:25.390 回答
4

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

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

while($topic = mysql_fetch_array($query)) {
    print_r($topic);
}
于 2013-05-29T06:47:21.960 回答
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);
于 2013-05-29T06:51:33.330 回答