我知道标题受伤了。我觉得我在成立之初。 我正在使用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();
}
?>
答案 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次查询。