1

我正在使用phpInv

http://alex.piechowski.org/inventory上。登录=管理员/phpinv

我不断收到“PHP 警告:传递给 each() 的变量不是数组或对象”

在 entry_new.php 第 38 行

if ($itemid>0) {
            --> while (list ($colid, $property) = each ($col)) { <--
                    $result = $DB->query("INSERT INTO ".$DB->tableprefix."property (itemid,colid,property) VALUES ('".str_prepare($itemid)."','".str_prepare($colid)."','".str_prepare($property)."')");
                    if (!$result) {
                        $errortext = "Error: property not created\n";
                        eval("\$table = \"".templateget('error')."\";");
                    }
                }

有人愿意D / L并帮助我吗?我已经为此工作了几个小时,但我似乎无法让它工作......

它正在接收一个发布的数组。

4

2 回答 2

2

如果您尝试使用尚未初始化的变量,则会收到相同的警告

确保您尝试传递的变量 ($col) 存在并且首先不为空。您还应该确保没有拼错变量名。

您应该尝试使用函数 is_array($col) 来确保传递的变量确实是一个数组。

于 2013-01-13T06:33:16.093 回答
1

我最近有同样的问题。

我从不久前下载了一些源,它最终成为我的浏览器。

我的浏览器在输入所有内容之前自动关闭了表单。

如果您使用的是 chrome,请尝试更改为 Internet Explorer。

如果更改浏览器不起作用,请确保您甚至获得了发布所需的数据。

您可以通过以下方式检查所有发布的值:

if ($_POST) {
    echo '<pre>';
    echo htmlspecialchars(print_r($_POST, true));
    echo '</pre>';
}
于 2013-01-13T08:02:58.210 回答