我有点问题......
我想用$ _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的新手,并希望坚持这样的非常基本的东西。提前谢谢 - 亚历克斯:)
答案 0 :(得分:1)
您不是通过简单地调用数组来迭代数组。
我建议您反转循环并使用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循环将永远运行。上述解决方案将解决问题。