gpt4 book ai didi

php - 嵌套的 while 循环不起作用?

转载 作者:行者123 更新时间:2023-11-29 00:35:07 25 4
gpt4 key购买 nike

我遇到了 PHP 的“无意义”问题。第一个循环应该从表中获取特定记录并将其与第二个表中的所有记录进行比较...

所以我希望它在每个“1st”之后打印 41 个“2nd”。由于第二张表中有41条记录。但相反,while 循环第一次工作,然后忽略了第二个 while 循环。

我得到的结果:

1st2nd2nd2nd2nd2nd2nd2nd2nd2nd2nd2nd2nd2nd2nd2nd2nd2nd2nd2nd2nd2nd2nd2nd2nd2nd2nd2nd2nd2nd2nd2nd2nd2nd2nd2nd2nd2nd1st1st1st1st1st1st1st1st1st1st1st1st1st1st1st1st1st1st1st1

while($row = mysql_fetch_array($select))
{
echo "1st";
while($row2 = mysql_fetch_array($select2))
{
echo "2nd";
$string = $row2["header"];
$find = $row["email"];
if(strstr($string, $find)) {
$email = $row["email"];
echo "found it";
} else {
//no email found
}
}
}

最佳答案

在进入内循环之前需要执行第二个查询:

    while($row=mysql_fetch_array($select))    {        echo "1st";        $select2 = mysql_query("select ...");        while($row2=mysql_fetch_array($select2))        {

更好的方法是在开始第一个循环之前运行第二个查询,并将记录保存到另一个数组。然后你可以避免 n^2 查询:

    $emailToRecord = array();    $select2 = mysql_query("select ...");    while($row2=mysql_fetch_array($select2)) {       $emailToRecord[$row2["header"]] = $row2;    }    while($row=mysql_fetch_array($select))    {        echo "1st";        $find = $row["email"];        if (isset($emailToRecord[$find])) {               echo "found it";        }    }

关于php - 嵌套的 while 循环不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14699135/

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