Mysql INSERT INTO和UPDATE将无法正常工作

时间:2014-02-18 08:25:54

标签: php mysql if-statement foreach mysqli

$name = array('maxgebruikers' => $_POST['maxgebruikers']);
$name1 = array('maxplaylist' => $_POST['maxplaylist']);
array_push($name,$name1);

$result = mysql_query("SELECT * FROM organisation_settings WHERE organisation_id = '{$organisatieID}'");
if(mysql_fetch_assoc($result) == 0)
{
    foreach($name as $type=>$value) {
    mysql_query("INSERT INTO organisation_settings (type, value, organisation_id)
    VALUES('{$type}', '{$value}' ,'{$organisatieID}')");
    print_r($name);
    }
}
else
{
    foreach($name as $type=>$value) {
    mysql_query("UPDATE organisation_settings 
    WHERE organisation_id = '{$organisatieID}'(type, value, organisation_id)
    SET VALUES('{$type}', '{$value}' ,'{$organisatieID}')");
    print_r($name);
    }
}

正如你在图片中看到的那样,我想要哪种类型

像我的阵列一样;

它将无法正确插入,代码中的错误位置和内容是什么?

我知道我应该使用mysqli函数,但现在不是重点。

3 个答案:

答案 0 :(得分:2)

你需要使用这样的数组,

$name = array('maxgebruikers' => $_POST['maxgebruikers'],
              'maxplaylist' => $_POST['maxplaylist']
);

现在你不必使用array_push,如果你需要你必须创建新数组。

在您的代码中,您使用$ name1更改$ name,因此它不起作用,实际上有效..

答案 1 :(得分:1)

您使用array_push将$ name1添加到$ name。 所以你的名字阵列现在看起来像这样:

$name = array('maxgebruikers' => $_POST['maxgebruikers'], 
               array('maxplaylist' => $_POST['maxplaylist']));

你现在在$ name数组中有一个数组。 但是当你调用它时,你只调用这个$ name数组的第二个值。 之后,您需要在$ name数组中调用$ name1数组的第一个值。

我希望你明白我的意思。

答案 2 :(得分:1)

这是因为您将数组放入数组中。如果你想让它工作,你需要重新设计你的变量。请参阅我的PHPFiddle http://phpfiddle.org/main/code/zsw-jdj