PHP:相同的mysql_fetch_array语句在一个地方工作但在另一个地方不工作

时间:2013-11-02 04:52:48

标签: php html mysql textarea echo

我创建了一个用户可以上传状态的页面,然后将其显示在只读文本区域中。我的问题是,我想在显示状态的文本区域下方的textarea中显示状态上传的时间,但这不起作用。我可以在第一个textarea中显示我想要的任何内容(包括状态上传时间,使用相同的['time_posted']标签),但是在第二个textarea中不会显示任何内容,即使我整合了第一个textarea。我不知道造成这种情况的原因是什么,也看不出我可能出错的地方,所以我真的很感谢有关问题的反馈。

PS:我知道mysql(正在进行中)已被弃用,所以不要打扰告诉我有关mysqli和PDO的事情。我最终将替换所有相关代码。

  <textarea readonly style="position:absolute; top:54%; left:45.2%;
  border-style: none; border-color: Transparent; overflow: auto; resize:none;"
  cols="16" rows="3"><?php while ($row = mysql_fetch_array($showstatus)) 
  {echo $row['status'] . " ";}?></textarea>

  <textarea readonly style="position:absolute; top:63%; left:45.2%;
  border-style: none; border-color: Transparent; overflow: auto; resize:none;"
  cols="16" rows="3"><?php while ($row = mysql_fetch_array($showstatus)) 
  {echo $row['time_posted'] . " ";}?></textarea>

2 个答案:

答案 0 :(得分:1)

我之前从未使用过它,但您可以使用mysql_data_seek(0)重置mysql数据指针。考虑到这一点,这可能会比将它存储在一个数组中使用更少的内存,但它可能会长时间保存数据库连接。

<强> Reference:

答案 1 :(得分:0)

第二个不打印,因为在第一个循环之后,指针已到达值的末尾,并且没有更多值可以提取

while ($row = mysql_fetch_array($showstatus)) 

完成后,您无法从同一个对象中获取更多值,因为您已经到达记录的末尾。

<强>解决方案:

Ether再次获取结果,或者在第一个循环中创建一个新数组,然后在第二个循环中迭代该数组。

实施例

在第一个循环中创建一个新数组,如$values=$row[]。像

第一次循环

<?php while ($row = mysql_fetch_array($showstatus)){echo $row['status'] . " "; $values[]=$row;}?>

然后将第二个循环更改为

 foreach($values as $row)

<?php foreach($values as $row){echo $row['time_posted'] . " ";}?>