Luk*_*eva 2 php mysql forms arrays loops
我有一个带有"章节"表的MySQL数据库.表"章节"有三列:(1)id,(2)名称,(3)密码.
我正在使用PHP将数据从"章节"动态输出到文本框中.结果看起来像这样:
<form name="current_chapters" method="post" action="UpdateChapters.php">
<input type = 'text' name='id' value='{$row['id']}'>
<input type = 'text' name='name' value='{$row['name']}'>
<input type = 'password' name='password' value='New Password'>
<input type = 'submit'>
</form>
Run Code Online (Sandbox Code Playgroud)
请注意,此页面用于重置(不显示)密码,因此使用"新密码"默认值.
我正在寻找循环遍历所有$ _POST数据的最佳方法,然后更新此数据最初来自的原始"章节"表.
我尝试通过foreach循环遍历$ _POST并将输入名称更改为"id []","name []"和"password []",但它似乎不是最优雅的方法,尤其是与id部分...你最终得到像id [0] = 133这样的东西,这看起来很混乱.
关于如何做到这一点的任何建议?
提前致谢!
您可以使用传递结构化数据$_POST.这样可以轻松处理相同类型的多个字段:
<input name="book[12][name]" value="name of book 12">
<input name="book[12][password]" value="password for book12">
<input name="book[99][name]" value="name of book 99">
<input name="book[99][password]" value="password for book99">
Run Code Online (Sandbox Code Playgroud)
这将创建如下的数据结构$_POST:
[book] => Array
(
[12] => Array
(
[name] => name of book 12
[password] => password for book 12
)
[99] => Array
(
[name] => name of book 99
[password] => password for book 99
)
)
Run Code Online (Sandbox Code Playgroud)
然后您可以按如下方式迭代:
foreach ($_POST['book'] as $book_id => $book) {
// Watch out for SQL injection
$sql = "UPDATE book SET name = '{$book['name']}', password = '{$book['password']}' WHERE id = $book_id";
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1231 次 |
| 最近记录: |