【发布时间】:2016-02-01 20:31:05
【问题描述】:
我在 PHP 中使用 HTML 表单来尝试同时更新我的 MySQL 表中的多行。 PHP 似乎在运行(有点),但在所有受影响的列中用“数组”更新了我的表。有人可以填补我的代码中的空白或解释我错过了什么吗?!
附:我知道我需要逃避我的 PHP 以防止注入攻击......稍后会出现:)
HTML 和 PHP 代码如下。
PHP echo 语句中的 HTML 表单
<form action='edit.php' method='POST' id='scheduler'>
<input type='hidden' id='identifier' name='identifier[]' value='". $row['id'] . "'>
<input type='hidden' id='assoc_to_username' name='assoc_to_username' value='" . $schedule['assoc_to_username'] . "'>
<input id='assoc_to_date' name='assoc_to_date[]' type='text' value='" . $schedule['assoc_to_date'] . "'/>
<select name='assoc_to_start_time[]' id='assoc_to_start_time'>
<option selected disabled='disabled' value='" . $schedule['assoc_to_start_time'] . "'>" . $schedule['assoc_to_start_time'] . "</option>
<option disabled='disabled'>----------</option>
<option value='All day'>All day</option>
</select>
<select name='assoc_to_end_time[]' id='assoc_to_end_time'>
<option selected disabled='disabled' value='" . $schedule['assoc_to_end_time'] . "'>" . $schedule['assoc_to_end_time'] . "</option>
<option disabled='disabled'>----------</option>
<option value=''>No end time</option>
<option value=''>All day</option>
</select>
<input id='taskname' name='taskname[]' type='text' value='" . $schedule['taskname'] . "'/>
<input id='submit' name='submit' class='submit' type='submit' value='Edit' type='submit' />
</form>
PHP进程代码
require_once('../inc/database-config.php');
$id1 = $_POST['identifier'];
$assoc_to_username = $_POST['assoc_to_username'];
$assoc_to_date = $_POST['assoc_to_date'];
$assoc_to_start_time = $_POST['assoc_to_start_time'];
$assoc_to_end_time = $_POST['assoc_to_end_time'];
$taskname = $_POST['taskname'];
foreach ($_POST['identifier'] as $id1)
{
$sql=mysql_query("UPDATE schedule SET assoc_to_date= $assoc_to_date, assoc_to_start_time= $assoc_to_start_time, assoc_to_end_time= $assoc_to_end_time, taskname=$taskname WHERE assoc_to_username=$assoc_to_username");
header("Location: ../admin.php?action=edited");
;}
if (!mysql_query($sql,$dbcon))
{ die (header("Location: ../error.php")); }
mysql_close($dbcon);
请帮忙!
【问题讨论】:
-
您要更新哪些多行或要保存哪些多个值。?
-
从每个输入的名称属性中删除所有
[]。