mysql - 使用 foreach 循环更新具有相同 id 的多行

标签 mysql codeigniter sql-update

我为数据库中的每一行(其中 id=$id)回显 2 个输入字段(2 db 列),每行的数据都在输入字段内。管理员用户可以更改输入字段内的数据并单击更新。

目前,当单击更新按钮时,它会更新行(其中 id=$id),但它会使用第一个输入字段的输入数据更新每一行,而不是更新每个输入字段的输入数据。预先感谢您的帮助。

查看:

<form action='<?= site_url("admin/do_edit_page"); ?>' method='POST'>
    <?php foreach($link_data as $row) : ?>
        Link:<br />
        <input type='text' name='page_link_title' value='<?= $row->link_title; ?>'>
        <input type='text' name='page_link_sub_title' value='<?= $row->link; ?>'><br />
    <?php endforeach; ?>

        <input type='submit' name='update_site' value='Update'>
</form>

Controller :

public function do_edit_page(){
    $id = $this->input->post('page_id', TRUE);
    $this->content_model->update_links($id);
}

型号:

public function update_links($id){
    foreach($_POST as $update_rows){
        $update_rows = array(
            array(
              'page_id' => $id,
              'link_title' => $this->input->post('page_link_title', TRUE),
              'link' => $this->input->post('page_link_sub_title', TRUE)  
            )
        );
        $this->db->update_batch('content_links', $update_rows, 'page_id');  
    }  
}

最佳答案

您必须在 foreach 循环之间移动表单标记,以便它可以提交单行数据。像这样的东西

<?php foreach($link_data as $row) : ?>
  <form action='<?= site_url("admin/do_edit_page"); ?>' method='POST'>
    Link:<br />
    <input type='text' name='page_link_title' value='<?= $row->link_title; ?>'>
    <input type='text' name='page_link_sub_title' value='<?= $row->link; ?>'><br />
    <input type='submit' name='update_site' value='Update'>
  </form>
<?php endforeach; ?>

关于mysql - 使用 foreach 循环更新具有相同 id 的多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18979135/

相关文章:

php - 需要一个食谱表和类别表,以便一个食谱可以有多个类别

php - 获取ROW的个体ID,并使结果可链接

mysql - Hibernate HQL 中的通用日期格式函数

MySQL 一对多 COUNT 求和

php - Codeigniter : Parse error: syntax error, 意外 'const' (T_CONST),Laravel 项目中需要变量 (T_VARIABLE)

php - Codeigniter 事件记录选择、左连接、计数

mysql - 在字段 UPDATE 上,如果值已设置,请将其设置为其他值吗?

mysql - MySQL中有 "UPDATE value IF NO SUCH ROW INSERT yyy"吗?

php - codeigniter 数据库缓存配置

mysql - 这是 MySQL 中更新查询的正确方法吗?