我有一些text input
,可以编辑某个主题的值,如下所示:
while($row = mysql_fetch_row($result2))
{
echo "<tr><td>" . $row['ID'] . "</td><td>" . $row['Name'] . "</td><td>" . $row['Status'] .
"</td><td><input type=\"text\" size=\"4\" id=\"editmath[]\" name=\"editwater\" value=" . $row['math'] . ">
</td><td><input type=\"text\" size=\"4\" id=\"editeng[]\" name=\"editfod\" value=" . $row['english'] . ">
</td><td><input type=\"text\" size=\"4\" id=\"editscie[]\" name=\"editmob\" value=" . $row['science'] . ">
}
<Input type="Submit" value=" Next " name="submit_edit">
在PHP中我有这个代码:
if (isset($_GET['submit_edit'])) {
$math[] = $_GET['editmath'];
$eng[] = $_GET['editeng'];
$scie[] = $_GET['editscie'];
sql = "UPDATE student SET math = $math, english = $eng, science = $scie";
$query = mysql_query($sql);
}
但是当我尝试print_r
math
和eng
时,他们只保存了最后一行。如何解决这个问题?
Desired Output :
Math English Science
4 3 2
7 8 10
3 5 12
答案 0 :(得分:1)
这里的名称是输入框的重复,这就是为什么会出现这个问题:
1)将输入框的名称声明为数组,并在php循环中通过该数组存储数据:
2)使用POST表单而不是GET表单类型:
3)如果你想更新记录,你还需要传递id和所有数据
离。
while($row = mysql_fetch_row($result2))
{
echo "<tr><td>" . $row['ID'] . "</td><td>" . $row['Name'] . "</td><td>" . $row['Status'] .
"</td><td><input type=\"text\" size=\"4\" id=\"editmath[]\" name=\"editwater[]\" value=" . $row['math'] . ">
</td><td><input type=\"text\" size=\"4\" id=\"editeng[]\" name=\"editfod[]\" value=" . $row['english'] . ">
</td><td><input type=\"text\" size=\"4\" id=\"editscie[]\" name=\"editmob[]\" value=" . $row['science'] . ">
}
<Input type="Submit" value=" Next " name="submit_edit">
PHP
if (isset($_POST['submit_edit'])) {
for($i = 0; i < sizeof($_GET['editmath']) ; $i++) {
$math = $_POST['editmath'][$i];
$eng = $_POST['editeng'][$i];
$scie = $_GET['editscie'][$i];
$sql = "UPDATE student SET math = $math, english = $eng, science = $scie";
$query = mysql_query($sql);
}
}