在表的每一行添加编辑按钮以在PHP中更新数据库

时间:2014-02-03 12:52:44

标签: php mysql sql

我创建了一个简单的查询,从我的数据库中检索记录并将其传递给html。我想为每一行添加一个编辑/查看按钮,所以经过一些研究后,我最终得到了这个:

$query = mysqli_query($con, "SELECT * FROM mytable") or die(mysqli_error($con));
if(mysqli_num_rows($query) > 0) {
    while($row = mysqli_fetch_array($query)) {
        echo "<tr><td>".$row['pId']."</td>";
        echo "<td>".$row['data1']."</td>";
        echo "<td>".$row['data2']."</td>";
        echo "<td><form action='detailform.php' method='POST'><input type='hidden' name='tempId' value='".$row["pId"]."'/><input type='submit' name='submit-btn' value='View/Update Details' /><form></td>";
    }
}

这适用于1条记录。但是,如果我有2个或更多,则无论您选择哪条记录,都会始终检索最新记录。例如,如果您有5条记录并且您选择了任何记录,则将始终选择第5条记录,因此我无法更新以前的记录。为什么会这样?我错过了什么吗?

不确定这是否有助于我的情况,但这是我的detailform.php的基本逻辑:

if(isset($_POST["tempId"]){ 
     //pass data using post then update. Here's where I keep getting only the latest record regardless of selected record from previous page
} else { //add data }

2 个答案:

答案 0 :(得分:3)

关闭表单:

echo "<td><form action='detailform.php' method='POST'><input type='hidden' name='tempId' value='".$row["pId"]."'/><input type='submit' name='submit-btn' value='View/Update Details' /></form></td></tr>";

第一个是正确发送的,因为它最接近提交按钮,其余的将更接近最后一个提交按钮

答案 1 :(得分:1)

试试这个

 while($row = mysql_fetch_assoc($query)) {
        echo "<tr><td>".$row['pId']."</td>";
        echo "<td>".$row['data1']."</td>";
        echo "<td>".$row['data2']."</td>";
        echo "<td><form action='detailform.php' method='POST'><input type='hidden' name='tempId' value='".$row["pId"]."'/><input type='submit' name='submit-btn' value='View/Update Details' /></form></td></tr>";
    }