-1

我有点问题...

我想用 $_GET 获取一个数组,然后将输出值与从 MySQL 数据库中获取的数组中的行进行匹配。我想在 while 循环或 foreach 循环中执行此操作,因为一旦找到匹配项,我必须对匹配的行做一些特定的事情:然后应该使用这些行中的其他列来设置一些变量。这是代码:

<?php   
$wineneeds=mysql_query("SELECT * from wineneeds");
$needarray=mysql_fetch_array($wineneeds);

foreach($_GET['Need'] as $Needs)
{
    while($needarray)
    {
        if($needarray['Needset']=="$Needs")
            {
                $sweet=$needarray['Sweet'];
            }
        else{}
    }
}

它不会错误我的页面,除非我有无限的加载时间......

我根本找不到错误。

请记住,我是 PHP 新手,并且想坚持使用这样的基本内容。在此先感谢 - 亚历克斯 :)

4

1 回答 1

1

您不是通过简单地调用 while 来迭代数组。

我建议您反转循环并使用 mysql_fetch_assoc ,例如:

while ($row = mysql_fetch_assoc($wineneeds)) {
    foreach ($_GET['Need'] as $Needs) {
        if ($row['Needset'] == $Needs) {
            $sweet=$row['Sweet'];
        }
    }
}

mysql_fetch_row并将mysql_fetch_assoc返回单行作为列数组。您需要在 while 循环中调用它以获取整个行集。如果您只调用一次,那么您将返回一行,当您检查该行是否为真时,它将始终为真,while 循环将永远运行。上面的解决方案将解决问题。

于 2013-03-23T21:31:32.670 回答