我写了这段代码:
<?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]); ?>
它循环并带来了所有结果。
这可能是语法错误吗?
答案 0 :(得分:5)
mysql_free_result($result);
。这使得在第一次迭代之后,它会清除结果,因此不再能够获取结果。
将结尾更改为
<?php
}
mysql_free_result($result);
?>
它会修复它
答案 1 :(得分:2)
你的倒数第三行在你完成之前释放了结果。把它移到循环外面。
答案 2 :(得分:1)
将对mysql_free_result的调用移到while循环之外。
答案 3 :(得分:1)
您在第一次循环后释放结果。这里
mysql_free_result($result);
}
这应该是
}
mysql_free_result($result);
答案 4 :(得分:0)
mysql_free_result不清除结果集吗?
你没有什么可以循环的!