重用mysql_fetch_array带来的数据

时间:2012-05-11 06:43:35

标签: php mysql

我有一个名为books的书籍,其中包含

字段
  

book_id |标题|作者|总结

使用下面的代码,我查询数据库并显示书名和作者列表。列出后,每当点击一本书的标题链接时,我想显示该书的摘要而不再查询数据库...如何在不重新查询数据库并仅使用存储在$ books_query_result中的数据的情况下完成此操作?

$books_query="SELECT * FROM books";
$books_query_result=mysql_query($books_query) or die("Could not get list".mysql_error());

echo "<table><tr>";
echo "<td>";


  while($list=mysql_fetch_array($books_query_result)){
    echo "<A href=\"" .$list['book_id'] ."\"> ". $list['title']. "</a>";
    echo $list['author']."<br>";
  }


# Now I want to reset and re-use mysql_fetch_array

  mysql_data_seek($books_query_result, 0); 
  $summary=mysql_fetch_array($books_query_result);


  echo "</td>";
  echo "<td>";

#display summary here


  echo "<td>";
  echo "</tr></table>";

2 个答案:

答案 0 :(得分:1)

打印所有应该可见的数据,并将摘要打印到div中,并使用`style =“display:none”。然后在链接上添加对函数的调用,该函数用于切换可见性:http://www.randomsnippets.com/2008/02/12/how-to-hide-and-show-your-div/。确保您还将该功能添加到您的JavaScript中。这样,您的数据始终存在,您无需重新加载。

答案 1 :(得分:0)

如果您正在寻找重新设置并再次迭代$ books_query_result,那么您应该使用mysql_data_seek($ books_query_result,0);而不是mysql_data_seek($ selectcompany_query_result,0)。

只需在while循环中准备数组,然后在任何地方使用

while($list=mysql_fetch_array($books_query_result)){
    //echo "<A href=\"" .$list['book_id'] ."\"> ". $list['title']. "</a>";
    //echo $list['author']."<br>";

    // prepare array here
    $resultArray[] = $list;
}

现在使用$ resultArray。