gpt4 book ai didi

php - mysql_fetch_array while 循环

转载 作者:行者123 更新时间:2023-11-30 00:10:37 27 4
gpt4 key购买 nike

我有一个 while 循环,其中包含另一个 while 循环。两个循环都迭代不同的 mysql 结果集。问题是,外部 while 循环第二次调用内部 while 循环时,它不会运行。 Mysql_fetch_row 迭代后是否会丢弃自身?

代码如下:

$counter = 0;
while ($r = mysql_fetch_row($result)){
$col = "";
$val = "";
while($d = mysql_fetch_row($dictionary)){
$key = $d[0];
for($i= 0; $i< count($tableColumNames); $i++){
if($tableColumNames[$i] == $key){
$col .= "`".$d[1]."` ,";
$val .= "`".$r[$i]."` ,";
/* echo $tableColumNames[$i]." table ColumnName <br>";
echo $d[1]." key<br>"; */
}
}
echo $key."round".$counter."<br>";
}
var_dump ($col);
var_dump ($val);
$counter++;
echo $counter;
}

输出如下:您可以看到 $result 包含四个记录,并且输出显示循环正常工作。但是,第二次迭代 $result 时,$dictionary 结果集上的内部循环不会运行。有什么想法吗?我也尝试使用 mysql_fetch_array 但结果仍然相同。

谢谢

enter image description here

最佳答案

当您调用 mysql_fetch_row($dictionary) 时,它会为您提供该行中的特定列详细信息,并将其从 $dictionary 数组中删除。

因此没有可供下次使用的元素。

不要在 while 循环之外声明 $dictionary,而是在 while 循环中声明它。它会解决你的问题。

$counter = 0;
while ($r = mysql_fetch_row($result)){
$col = "";
$val = "";
$dictionary=("Select * from database");//your own logic
while($d = mysql_fetch_row($dictionary)){
$key = $d[0];
for($i= 0; $i< count($tableColumNames); $i++){
if($tableColumNames[$i] == $key){
$col .= "`".$d[1]."` ,";
$val .= "`".$r[$i]."` ,";
/* echo $tableColumNames[$i]." table ColumnName <br>";
echo $d[1]." key<br>"; */
}
}
echo $key."round".$counter."<br>";
}
var_dump ($col);
var_dump ($val);
$counter++;
echo $counter;
}

或者您可以使用mysql_data_seek()

关于php - mysql_fetch_array while 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24102223/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com