while循环内部的foreach循环内循环

时间:2015-12-08 22:47:22

标签: php loops foreach while-loop

我知道标题受伤了。我觉得我在成立之初。 我正在使用2个不同的数据库。我试图使用while循环使用while循环从第一个数据库中获取4个值。然后我想在foreach循环中使用while循环来查找这4个值中每个值的名称和相关定律。我尝试了不同的代码,这个代码让我最接近,但只返回第一个值而不是其他三个。

$link1 = mysql_connect($mysql_host, $mysql_user, $mysql_pass, $mysql_dblogin);
if(!$link1 || !mysql_select_db ($mysql_dblogin)) {
die ($conn_error_message);
}

$link2 = mysql_connect($mysql_host, $mysql_user, $mysql_pass, $mysql_db, TRUE);
if(!$link2 || !mysql_select_db ($mysql_db)) {
die ($conn_error_message);
}



$sql="SELECT loi FROM $username";
$result = mysql_query("$sql", $link1);
$data = array();
if($result){
WHILE($row=mysql_fetch_assoc($result)){
$data[]=$row;
foreach($data as $vote){
        $loi = $vote['loi'];
        $sql="SELECT objet, colo FROM scruinfo WHERE colo = '$loi' ";
        $result=mysql_query("$sql", $link2);
        if($result){
            WHILE($row=mysql_fetch_assoc($result)){
            $loi = $row["colo"];
            $name = $row["objet"];
            echo "<table><td href='votes.php?loi=".$loi."'>".$name."</td></table><br>";
            }
        }
    }
}
}else{
echo mysql_error();
}
?>

2 个答案:

答案 0 :(得分:0)

undefined reference to <function name>内,您要使用新值更新foreach$result,因此外部$row将停止循环播放。
重命名这些变量,它就可以了!

答案 1 :(得分:0)

WHILE($row=mysql_fetch_assoc($result)){
    $data[]=$row;
    foreach($data as $vote){

这很糟糕,您将一个结果存储在数据中,然后循环遍历数据中的所有实体,然后在下一个循环中向数据添加另一行,然后循环数据中的所有实体。因此,如果从第一个查询中提取10行,则将在第一行上运行foreach 10次,第二次运行9次,第三次运行8次,依此类推。如果您拉出100行,那么您将运行如此多的辅助循环,而不会超过5000次查询。

相关问题