我写了这段代码:
<?php
mysql_connect("localhost", "root", "root") or
die("Could not connect: " . mysql_error());
mysql_select_db("internal");
$result = mysql_query("SELECT Title, Message FROM msg");
?>
<?php
while ($row = mysql_fetch_array($result, MYSQL_NUM)){
?>
<div>
<h3><a href="#"><?php printf("%s", $row[0]); ?></a></h3>
<div><?php printf("%s", $row[1]); ?></div>
</div>
<?php
mysql_free_result($result);
}
?>
我得到的结果是 MySQL 表的第一行(格式正确)我包含一个图像以防万一:
(这实际上是我的 MySQL 数据库的第一行,也是我唯一看到的)
代码一直在循环,直到我不得不添加 html 标签,我的意思是如果我这样做:
<?php printf("%s", $row[0]); ?>
&
<?php printf("%s", $row[1]); ?>
它循环并带来所有结果。
这会不会是语法错误?
最佳答案
mysql_free_result($result);
在你的 while 循环中。这使得在第一次迭代后,它会清除结果,因此无法再获取更多内容。
将结尾更改为
<?php
}
mysql_free_result($result);
?>
它会修复它
关于php - 为什么它不会循环? (PHP 和 MySQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3935099/