PHP 中的 MySQL 双 while 循环:
$geta=mysql_query("SELECT id FROM table1 WHERE id<50");
while($row=mysql_fetch_array($geta)){
while($row2=mysql_fetch_array($geta)){
$id1=$row['id'];
$id2=$row2['id'];
echo "$id1 and $id2";
}
}
我正在尝试将 id 与另一个 id 进行所有可能的组合。
不确定它有什么问题...输出只是一个 id1 列表...
我在这里做错了什么?
最佳答案
每次调用 mysql_fetch_array()
时,您都会从 MySQL 数据库的同一结果集中获取下一个结果。因此在外循环和内循环中调用它两次只会使记录指针前进。
在您的情况下,您应该首先将所有结果加载到一个数组中,然后对其进行迭代:
// Array to hold all results
$results = array();
$geta = mysql_query("SELECT id FROM table1 WHERE id<50");
while($row = mysql_fetch_array($geta)){
// Append all rows to the array
$results[] = $row;
}
// Now iterate over your array $results in the outer & inner loops
foreach ($results as $r1) {
foreach ($results as $r2) {
echo "$r1 and $r2";
}
}
关于php - 带有 MYSQL 返回的双 while 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8778012/