2013-03-06 212 views
0

我执行这样的查询(PHP + MySQL的)后,如何再利用,导致变量:执行MySQL查询

$query = "SELECT * FROM tablename WHERE 1"; 
$result = mysql_query($query); 

while($row = mysql_fetch_array($result)) 
{ 
    // PHP Statement 
} 

我想在同一页上再次使用相同的结果,那么我需要再次执行查询,如下所示:

$query = "SELECT * FROM tablename WHERE 1"; 
$result = mysql_query($query); 

while($row = mysql_fetch_array($result)) 
{ 
    // PHP Code 
} 

然后它工作。但如果我只用

while($row = mysql_fetch_array($result)) 
{ 
    // PHP Code 
} 

然后它不起作用。有没有其他方法可以在同一页面上多次使用结果,而无需每次都执行查询?

我知道我可以使用相同的结果来创建一个数组。但有没有其他方法?

+0

可能重复[如何MySQL的指针重置回在PHP中的第一行?](http://stackoverflow.com/questions/3817997/how-to-reset-mysql-pointer-back-to -PHP中的第一行) – Tchoupi 2013-03-06 18:56:05

+0

开始时,不推荐使用mysql_'库。 – 2013-03-06 19:02:31

回答

0

我相信mysql_data_seek会为你做这个。

<?php 
function mysql_pointer_position($result_set) { 
     $num_rows = mysql_num_rows($result_set); 
     $i = 0; 
     while($result = mysql_fetch_array($result_set)) { 
      $i++; 
     } 
     $pointer_position = $num_rows - $i; 

//Return pointer to original position 
     if($pointer_position <= $num_rows - 1) { 
      mysql_data_seek($result_set, $pointer_position); 
     } 
     return $pointer_position; 
    } 
?>