循环POST数据以更新数据库中的值

时间:2014-04-11 15:28:53

标签: php pdo

我有一个表,我基本上循环创建一个基于列和数据的动态表单,即:

gameID -> 1
gameName -> my game name
gameTitle -> game title

此表可能会在未来增长,因此我生成动态形式,即:

while ($row = $query->fetch(PDO::FETCH_ASSOC)){

    foreach($row as $key => $value ){

        echo "<div class='formlabel floatL'> $key </div> <div class='formfield floatL'><input type='text' name='$key' value='$value' size='100' /></div> <div class='clear'></div><br />";

    }

}

但是我不确定如何动态循环遍历此表单字段。到目前为止,我有这个,但不知道如何完成它:

if ($_POST["updatesettings"] <> ""){

        foreach($_POST as $key => $value ){

            // query
            $query = $db->prepare(" UPDATE `games` SET `settingValue`= :value  WHERE `settingCode` = :key LIMIT 0,1 ");


            // bind parameters - avoids SQL injection
            $query->bindValue(':value', stripslashes($value));

            // try... if not catch exception
            try {
                // run the query
                //$query->execute();

            }
            catch (PDOException $e){
            }

        }

}

1 个答案:

答案 0 :(得分:-1)

所以听起来问题是你可能对$key有一些任意的价值,所以你不知道如何获得所有这些。

我建议在表单输入中使用数组访问表示法,这样您就可以更好地了解从何处获取密钥数据。 inoput可能看起来像这样:

<input type='text' name='keys[$key]' value='$value' size='100' />

这会将所有这些输入组合成$_POST['keys']。所以你可以像这样循环遍历它们:

foreach($_POST['keys'] as $key => $value) {
    // make DB update
}