使用php提交按钮修改PDO查询结果中的mysql记录



我有一个显示查询结果的php页面。我希望能够更改结果页面中的特定列。

echo "<table>
<tr>
<th>First</th>
<th>Last</th>
<th>Time</th>
<th>Reason</th>
<th>Status</th>
<th>Update</th>
</tr>";
// displaying data from database mysql using foreach loop
foreach ($pdoResult as $row)
{  
echo"<tr>
<td><p>$row[1]</p></td>
<td><p>$row[2]</p></td>
<td><p>$row[4]</p></td>
<td><p>$row[5]</p></td>
<td>
<form action='update.php' method = 'post'>
<select name='$row[0]'>
<option name= 'status' value='$row[6]'>$row[6]</option>
<option name= 'status' value='seen Benson'>seen Benson</option>
<option name= 'status' value='seen cooper'>seen Cooper</option>
<option name= 'status' value='seen Sheen'>seen Sheen</option>
<option name= 'status' value='seen Wilks'>seen Wilks</option>
<option name= 'status' value='not seen'>not seen</option>
</select>
</td>
<td>
<input type='submit' name='$row[0]' value='update'>
</form> 
</td>
</tr>";   
}
echo "</table>";

更新提交按钮不起作用。

我如何对提交按钮进行编码,以识别特定查询结果的唯一ID,然后更改"状态"并在mysql数据库中更新它?

检查一下,我认为你想使用唯一的id来显示文本或输入字段中的特定行,而不是在数据库中更新它们。我刚刚给你举了一个普通身份证的例子。如果你想添加唯一的id来显示结果并更新它们,那么你必须将id修改为uni:

class user{
public uid='';
public function __construct($data=''){
if(array_key_exist('uid',$data)){
this->uid=$data['uid'];
}
}
public function update(){
try {
$pdo = new PDO('mysql:host=localhost;dbname=db', 'root', '');
$query = "UPDATE `users` SET user_name = :u_name WHERE uid="."'".$this->uid."'";
$stmt = $pdo->prepare($query);
$stmt->execute(array(
':u_name' => $this->user_name
));
} catch(PDOException $e) {
echo 'Error: ' . $e->getMessage();
}
}

在"…uid="之后,我已经写了

$query = "UPDATE `users` SET user_name = :name WHERE uid="."'".$this->uid."'";

因为我在varchar中设置了uid的类型,所以我把它保持为("'".$this->uid."'")this。所以我希望你能得到答案,试着这样做并给出反馈。非常感谢。

最新更新