如何从PHP表列表中获取ID

时间:2012-10-24 18:50:11

标签: php mysql

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

<?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>";

&GT;

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

请提示吗?

3 个答案:

答案 0 :(得分:4)

你需要搬家:

echo "</form>";
在while循环中

。你每次循环都会开始一个新的表单,但是在整个循环完成之前不会关闭它。这会产生不正确的嵌套。

另外,摆脱id='id'(你可能不需要它)或做些什么来确保ID是唯一的。

答案 1 :(得分:0)

使用type = hidden作为输入:

<td style='width: 20px;'><input name='id' id='id' value='".$id."' type='hidden'>

答案 2 :(得分: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数据库。