我创建了一个简单的查询,从我的数据库中检索记录并将其传递给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 }
答案 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>";
}