gpt4 book ai didi

php - 偶尔出现错误 >>> 为 foreach() 提供的参数无效

转载 作者:行者123 更新时间:2023-11-29 14:21:10 26 4
gpt4 key购买 nike

我正在开发库存控制系统,我想编辑分配给商店的用户。可以将一名用户分配给一个或多个商店。我正在使用多个选择选项。我的问题是,在编辑用户页面中,我想显示分配给所选商店的用户。但是,当我要这样做时,仅当用户未分配给所有商店时,我才会收到此错误(第 194 行为 foreach() 提供的参数无效)。

例如-假设有 3 家商店,分别为 A、B 和 C

1.)如果我要编辑分配给所有三个商店的用户,我不会收到任何错误。
2.)如果我要编辑分配给 2 个商店的用户,我将收到上述错误两次。
3.)如果我要编辑仅分配给一个商店的用户,我只会收到一次上述错误。

请帮我纠正这个问题。

这是我的代码

$emp_id = $_GET['emp_id'];
$result1 = mysql_query("Select *
from members
JOIN store_employee on members.emp_id = store_employee.emp_id
JOIN stores on store_employee.store_id = stores.store_id
where members.emp_id=$emp_id")
or die(mysql_error());
$query="SELECT * FROM stores";
$dropdown = "<select name='store_id[]' multiple='multiple' style='height:80px;' size='5' id='store'>";
$result2 = mysql_query ($query);
while($row2 = mysql_fetch_array($result2))
{

$dropdown .= "\r\n<option value='{$row2['store_id']}'";

foreach(mysql_fetch_array($result1) as $row1) //this is line 194
{
if(($row1['store_id'])==($row2['store_id']))
{
$dropdown .=" selected='selected'";
}

}
$dropdown .= ">{$row2['store_name']}</option>";
}
$dropdown .= "\r\n</select>";
echo $dropdown;

最佳答案

mysql_fetch_array绝对不会以这种方式使用,特别是考虑到它是一个函数而不是一个数组,即使它返回一个。

你想要的是这样的:

$user_stores;
while ($rows = mysql_fetch_array($result1)) {
$user_stores[] = $rows;
}
while ($rows2...
//...
foreach ($user_stores as $row1) {
//...
}
}

如果您执行 mysql_fetch_array在另一个里面mysql_fetch_array ,您最终可以在 $row1 中传递一个值它可能与 $row2 中的后续条目匹配。这应该有助于解决问题。

此外,mysql_*函数很快就会被弃用。不要在新代码中使用它们(实际上,您应该考虑从所有代码中删除它们)。使用mysqliPDO反而。如果你是个懒惰的人(像我一样),你可以考虑使用 mysqli的程序风格,与原版几乎相同mysql_*功能。

关于php - 偶尔出现错误 >>> 为 foreach() 提供的参数无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11729274/

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