我使用以下代码修改sqlite数据库。
<?php
$db = new SQLite3("my_sqlite.db");
if( isset($_POST['submit_data']) ){
$id = $_POST['id'];
$name = $_POST['name'];
$email = $_POST['email'];
$query = "UPDATE students set name='$name', email='$email' WHERE rowid=$id";
$db->exec($query);
}
$query = "SELECT rowid, * FROM students";
$result = $db->query($query);
?>
<form action="" method="post">
<table border="1">
<tr>
<td>ID</td>
<td>Name</td>
<td>Email</td>
</tr>
<?php while($data = $result->fetchArray()) {?>
<tr>
<td><input name="id" type="text" value="<?php echo $data['rowid'];?>"></td>
<td><input name="name" type="text" value="<?php echo $data['name'];?>"></td>
<td><input name="email" type="text" value="<?php echo $data['email'];?>"></td>
</tr>
<?php } ?>
</table>
<input name="submit_data" type="submit" value="Update Data">
</form>我已经阅读了很多相关的答案,但我不能解决这个问题,那就是,只有输入的最后一行有效,它只是修改了SQLITE的最后一行。
发布于 2021-06-17 04:46:45
我就是这样解决的!!
<?php
$db = new SQLite3("my_sqlite.db");
if( isset($_POST['submit_data']) ){
foreach ($_POST['id'] AS $k => $id) {
$name = $_POST['name'][$k];
$email = $_POST['email'][$k];
$query = "UPDATE students set name='$name', email='$email' WHERE rowid=$id";
$db->exec($query);
} }
$query = "SELECT rowid, * FROM students";
$result = $db->query($query);
?>
<form action="" method="post">
<table border="1">
<tr>
<td>ID</td>
<td>Name</td>
<td>Email</td>
</tr>
<?php while($data = $result->fetchArray()) {?>
<tr>
<td><input name="id[]" type="text" value="<?php echo $data['rowid'];?>"></td>
<td><input name="name[]" type="text" value="<?php echo $data['name'];?>"></td>
<td><input name="email[]" type="text" value="<?php echo $data['email'];?>"></td>
</tr>
<?php } ?>
</table>
<input name="submit_data" type="submit" value="Update Data">
</form>https://stackoverflow.com/questions/68008549
复制相似问题