2

我创建了以下代码来使用存储在数据库中的数据填充表。如您所见,数据也可以在字段中直接编辑,我要做的是将编辑的字段保存到数据库中。如果该字段已被修改,只需覆盖“旧”字段,如果尚未修改,则取旧字段。

<?php

$querymod =" SELECT * FROM table ORDER BY id DESC ";

$result = mysql_query($querymod) or die(mysql_error());

echo "<div style='width: 100%; text-align: center;'>";                   
echo "<table style='margin: auto auto;'>";
echo "<tr><th>ID</th><th>Image</th><th>Article Number</th><th>Description</th></tr>";

while($row = mysql_fetch_array($result))
{

$id    = $row['id'];
$img_name    = $row['img_name'];
$art_number    = $row['art_number'];
$description    = $row['description'];


echo "<form method='post' action=''>";
echo "<tr>
<td style='width: 20px;'><input name='id' id='id' value='".$id."' disabled='yes'>
<input type='submit' name='submit' value='Save'></td>
<td style='width: 210px;'><img src='../../upload/content/uploads/". $img_name ."' width='200px'></td>
<td style='width: 100px;'><input type='text' name='art_number' value='".$art_number."'></td>
<td style='width: 100px;'><input type='text' name='description' value='".$description."'></td>
</tr>";     
}
echo "</table><br /><br /></div>";
echo "</form>";

?>

我知道使用“UPDATE”功能可以更新数据库和字段,但问题是我不知道如何获取修改行的ID,并启动相关修改字段的更新。

请问有什么提示吗?

4

3 回答 3

4

你需要搬家:

echo "</form>";

在while循环内。您每次通过循环都开始一个新表单,但在整个循环完成之前不会关闭它。这是创建不正确的嵌套。

此外,摆脱id='id'(您可能不需要它)或做一些事情来确保 ID 是唯一的。

于 2012-10-24T19:19:02.433 回答
0

使用 type=hidden 作为输入:

<td style='width: 20px;'><input name='id' id='id' value='".$id."' type='hidden'>
于 2012-10-24T19:04:15.263 回答
0

1. 每行使用一个表格

或者:

2. 创建一个名为 的隐藏输入id。使用onClick='document.forms.form_name.id.value='$id';document.forms.form_name.submit();"提交按钮的属性,但将 type='submit' 更改为 type='button'。将 $id 值附加到每个其他输入的名称。然后,当提交后页面重新加载时,您将拥有 id 并且还可以在 POST 中找到其他输入:

echo "<form name='myform' action='' method='POST'>
    <input type='hidden' name='id' value=''>
    <table>";

while($row = mysql_fetch_array($result)) {
    $id          = $row['id'];
    $img_name    = $row['img_name'];
    $art_number  = $row['art_number'];
    $description = $row['description'];
    $onClick = "document.forms.myform.id.value='$id';document.forms.myform.submit();";

    echo "<tr>
        <td><input type='button' name='save_$id' value='Save' onClick='$onClick'></td>
        <td><img src='../../upload/content/uploads/$img_name' width='200px'></td>
        <td><input type='text' name='art_number_$id' value='$art_number'></td>
        <td><input type='text' name='description_$id' value='$description'></td>
      </tr>\n";
}
echo "</table>\n</form>\n";

然后,当单击保存时,您可以读取 POST 中的值:

$id = !empty($_POST["id"]) ? $_POST["id"] : NULL;
$art_number = !empty($_POST["art_number_$id"]) ?$_POST["art_number_$id"] : NULL;
$description = !empty($_POST["description_$id"]) ?$_POST["description_$id"] : NULL;

您可以使用它来更新 SQL 数据库。

于 2012-10-24T19:16:59.630 回答