【问题标题】:How to copy a SQL result variable in PHP?如何在 PHP 中复制 SQL 结果变量?
【发布时间】:2012-11-03 17:25:57
【问题描述】:

我有以下代码将数据检索到变量中:

$result = mysql_query("SELECT ............

然后我尝试复制所述变量:

if (!$result) {......}
else{
        $ref =& $result;
        $resultCopy = $ref;
        echo '</br></br>SQL STMT EXECUTED CORRECLTY</br></br>';
    }

然后我使用 $result 打印出一个表格:

....
while ($row = mysql_fetch_assoc($result)) {
 echo '<tr>';
 echo '<td>';
 echo $row['name'];
 ....
 }

然后我尝试使用 $resultCopy 打印出一个表格:

while ($row1 = mysql_fetch_assoc($resultCopy)) {
 echo '<tr>';
 echo '<td>';
 echo $row['name'];
 ....
 }

但是第二个表格没有将任何数据打印到屏幕上,只是我在表格上方声明的表格标题。

感谢任何帮助/php 编码指南/建议。

【问题讨论】:

  • 第二个是对相同值的另一个引用。当您第一次打印结果时,结果中没有任何内容
  • 好吧,我最初尝试了 $copyresult = $result,但也没有用
  • while($row1 = mysql_fetch_assoc($resultCopy)){ foreach($row1 as $key=&gt;$value){ c1[$key]=$value; c2[$key]=$value; } }

标签: php html sql database web


【解决方案1】:

这个怎么样?

function MakeCopy($result,&$c1,&$c2){ 
    while($row = mysql_fetch_assoc($result)){
        foreach($row as $key=>$value){         
             $c1[$key]=$value; 
             $c2[$key]=$value; 
       }
   }
}
//call the function like this
$copy1=array();
$copy2=array();
MakeCopy($result,$copy1,$copy2); 

【讨论】:

  • foreach($row as $key=>$value) 是做什么的?我以前从未见过 => 使用过。
【解决方案2】:

第一个循环通过捕获数组中的每一行:

$names = array();
while ($row = mysql_fetch_assoc($result)) {
 $names[] = $row;
 echo '<tr>';
 echo '<td>';
 echo $row['name'];
 ....
}

现在只需遍历您创建的数组:

foreach( $names as $v ) {
 echo '<tr>';
 echo '<td>';
 echo $v['name'];
}

【讨论】:

  • 你为什么说 FOreach($names as $v) ? php是不是懒类型,那个时候$v的类型就不存在了?
  • 或者是否遍历数组元素中的值?就像如果在一行中有名称、地点、ID,那将遍历该行中的每个元素?
  • 你明白了......它只是遍历每个数组元素。如果 $x 是 for 循环中的枚举数,则 $v 只是 $names[$x]。
【解决方案3】:

@jordan.peoples

如果$rowarray(key =&gt; value) 就像array('iam' =&gt; 'vknyvz') 那么 foreach($row as $key => value) echo $key . ' ' . $value //iam vknyvz

它打印出两个键然后它的值

【讨论】:

    猜你喜欢
    • 2013-08-21
    • 1970-01-01
    • 1970-01-01
    • 2021-04-01
    • 2015-11-11
    • 1970-01-01
    • 1970-01-01
    • 2013-11-25
    • 1970-01-01
    相关资源
    最近更新 更多