如何将sql结果从一个变量复制到其他

时间:2016-01-31 17:45:37

标签: php

如何将sql结果从一个变量复制到PHP中没有数组和foreach 的其他

$query="Select * from table";
$res1=mysql_query($query);
$res2=$res1; // I need somethink like this, simply, like in other languages
while($row=mysql_fetch_array($res1)) {
echo $row['Id'];
}
echo '<br>';
while($row=mysql_fetch_array($res2)) {
echo $row['Id'];
}

首先打印ID,秒打印

2 个答案:

答案 0 :(得分:6)

对于SELECT次查询,mysql_query()会在成功时返回resource,这是一个包含对结果集的引用的特殊变量。在此声明$res2=$res1;中,您只是将引用复制到另一个变量,而不是实际的结果集。在第一个while循环中,您已经迭代了结果集,因此将资源分配给另一个不会重置的变量。

但您可以使用mysql_data_seek()函数将结果指针调整为指向结果集的开头,以便您可以再次遍历它。

以下是参考资料:

所以你的代码应该是这样的:

$query="Select * from table";
$res=mysql_query($query);

while($row=mysql_fetch_array($res)) {
    echo $row['Id'];
}
echo '<br />';

mysql_data_seek($res, 0);

while($row=mysql_fetch_array($res)) {
    echo $row['Id'];
}

旁注:不要使用mysql_*函数,从PHP 5.5开始不推荐使用它们,并且在PHP 7.0中完全删除它们。请改用mysqlipdoAnd this is why you shouldn't use mysql_* functions

答案 1 :(得分:2)

you can check on this link

$sql = "SELECT * from table";
$result = mysql_query($sql);
$temp_result = $result;
while ($row = mysql_fetch_assoc($temp_result)) {
// do stuff with $row
}
mysql_data_seek($result, 0);
while($row = mysql_fetch_assoc($temp_result)){
// do other stuff with $row
}