如何从PHP表列表中获取ID

如何从PHP表列表中获取ID,php,mysql,Php,Mysql,我创建了以下代码,用存储在数据库中的数据填充一个表。 正如您所看到的,数据在字段中也可以直接编辑,我尝试将编辑的字段保存到数据库中。 如果字段已修改,只需覆盖旧字段,如果未修改,则使用旧字段 <?php $querymod =" SELECT * FROM table ORDER BY id DESC "; $result = mysql_query($querymod) or die(mysql_error()); echo "<div style='width: 100%;

我创建了以下代码,用存储在数据库中的数据填充一个表。 正如您所看到的,数据在字段中也可以直接编辑,我尝试将编辑的字段保存到数据库中。 如果字段已修改,只需覆盖旧字段,如果未修改,则使用旧字段

<?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,并开始更新相关的修改字段


有什么提示吗?

请使用type=hidden作为输入:

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

对输入使用type=hidden:

<td style='width: 20px;'><input name='id' id='id' value='".$id."' type='hidden'>
一,。每行使用一个表单

或:

二,。创建一个名为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";
$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数据库。

1。每行使用一个表单

或:

二,。创建一个名为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";
$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数据库。

您需要移动:

echo "</form>";
在while循环中。每次通过循环都会启动一个新表单,但在整个循环完成之前不会关闭它。这将创建不正确的嵌套

另外,去掉id='id'您可能不需要它,或者做一些事情来确保id是唯一的。

您需要移动:

echo "</form>";
在while循环中。每次通过循环都会启动一个新表单,但在整个循环完成之前不会关闭它。这将创建不正确的嵌套


另外,去掉id='id'您可能不需要它,或者做一些事情来确保id是唯一的。

。它们不再得到维护,并且已经开始使用。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果您选择PDO,。例如,我有10个不同的行,显然有10个不同的ID。。它们不再得到维护,并且已经开始使用。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果您选择PDO,。例如,我有10个不同的行,显然有10个不同的ID。我尝试过这样做,但问题是,如果我单击第二行的“保存”按钮,它将始终获得第一行的ID。我不确定,但请尝试在HTML中去掉ID='ID'。在多个元素上不能有相同的HTML ID,这可能会让人困惑。我刚刚看到了公认的答案。我错过了!我试过这样做,但问题是如果我点击第二行的Save按钮,它总是会得到第一行的ID。我不确定,但试着去掉HTML中的ID='ID'。在多个元素上不能有相同的HTML ID,这可能会让人困惑。我刚刚看到了公认的答案。我错过了!谢谢你,伙计,我真是个白痴现在我对桌子的样式有一个问题。第一排排排得很整齐,但其余的有点乱。谢谢你,伙计,我真是个白痴现在我对桌子的样式有一个问题。第一行完全对齐,但其余部分有点凌乱。