结束mysql\u获取\u数组时PHP与do冲突?
这是我的代码,有点不对劲,因为当我把它放在wamp(chrome)中时,它会返回一个重复的“published by”(如果有疑问,$conex=mysql\u connect('localhost','root'))结束mysql\u获取\u数组时PHP与do冲突?,php,Php,这是我的代码,有点不对劲,因为当我把它放在wamp(chrome)中时,它会返回一个重复的“published by”(如果有疑问,$conex=mysql\u connect('localhost','root')) 出版人 您在第一次迭代时没有获取结果集的一行。。。因此,$row在第一次迭代中不包含数据 您可以尝试以下方法: while ($row = mysql_fetch_assoc($query)){ // or mysql_fetch_array or ...
出版人
您在第一次迭代时没有获取结果集的一行。。。因此,$row
在第一次迭代中不包含数据
您可以尝试以下方法:
while ($row = mysql_fetch_assoc($query)){ // or mysql_fetch_array or ...
// ...
}
如果您确实想使用do{}while
,尽管它不适合您使用:
do {
$row = mysql_fetch_assoc($query); // or mysql_fetch_array or ...
// ...
} while ($row);
do{}while()
不适用于DB循环。第一次通过do
$行不会成为DB结果。它将是一个简单的整数——结果中的行数
您希望这样做:
$numrows = mysql_num_rows($query);
while($row = mysql_fetch_array($query)) {
...
}
你能试试这个,而不是do{}while()
if($row>0){
while($rowData=mysql\u fetch\u数组($query)){
?>
出版人
想想看:在第一次迭代中,$row
是什么,在第二次迭代中是什么?事实上,激活错误报告以获得提示。mysql.*
函数不再被维护,不应该在任何新的代码库中使用。它正在被淘汰,取而代之的是更新的API。您应该与or.Saw t一起使用他不久前写的:$row=fetch_array();if($row!=FALSE){do{…}而($row=fetch_array());}
-这会被认为是一种不好的做法吗?我认为检查是否有返回的行是很好的。如果您先获取一行,那就可以了。但是您没有,您正在将行计数提取到用于行的同一个变量中。@king,除非您也在执行其他
,这只是不必要的重复,不是吗更多。
$numrows = mysql_num_rows($query);
while($row = mysql_fetch_array($query)) {
...
}
if($row > 0 ){
while($rowData = mysql_fetch_array($query)){
?>
<div class ="tematica" >
<p>
<small>Published by <b><a href="user.php"><?= $rowData['name'] ?></a></b></small>
</p>
<p>
<big><a href="show.php"><?= $rowData['tittle'] ?></a></big>
</p>
<p>
<b><?=$rowData['body']?></b>
</p>
</div>
<?php
}
}
mysql_free_result($query);
mysql_close($conex);