我使用以下代码修改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
复制相似问题