我有一个表,我基本上循环创建一个基于列和数据的动态表单,即:
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){
}
}
}
答案 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
}