【问题标题】:Update rows in MySQL table with CodeIgniter使用 CodeIgniter 更新 MySQL 表中的行
【发布时间】:2011-12-30 19:02:18
【问题描述】:

所以我通常是 PHP 和 MySQL 以及 MVC 应用程序的新手。如果这是一个已经回答过的问题,请原谅我,我找不到任何清晰的东西并展示了这个完整的 MVC 流程。

所以我有一个 HTML 表格,其中包含由 a 中的数据填充的输入,我为每一行生成一个表单作为单独的表格,并为每个表格生成一个提交按钮。我希望更新按钮仅更新与生成的表单关联的行。

如果从模型中删除 this->db->where('id', $id);,它会使用相同的信息更新表中的所有行,但它目前没有任何更新。

任何帮助或实现此目的的替代方法将不胜感激。控制器功能我觉得也不错。

谢谢。

查看

<?php foreach($log->result() as $row): ?>
<?=form_open('hq/update_entry');?>
    <table class="editLog">
        <tr>
            <td><?php 
                $data = array(
                    'name' => 'no',
                    'value' => $row->no
                );
                echo form_input($data);
                ?></td>
            <td><?php 
                $data = array(
                    'name' => 'date',
                    'value' => $row->date
                );
                echo form_input($data);
                ?></td>
            <td><?php 
                $data = array(
                    'name' => 'artist',
                    'value' => $row->artist
                );
                echo form_input($data);
                ?></td>
            <td><?php 
                $data = array(
                    'name' => 'title',
                    'value' => $row->title
                );
                echo form_input($data);
                ?></td>
            <td><?php 
                $data = array(
                    'name' => 'long',
                    'value' => $row->long
                );
                echo form_input($data);
                ?></td>
            <td><?php 
                $data = array(
                    'name' => 'lat',
                    'value' => $row->lat
                );
                echo form_input($data);
                ?></td>
                <td>
            <?php
                echo form_hidden('id', $row->id);
                $data = array(
                    'class' => 'updateSubmit',
                    'value' => '✚'
                );
                echo form_submit($data);
            ?></td>
        </tr>
    </table>
<?=form_close();?>

控制器

function update_entry()
{
    $this->load->model('update_entry_model');

    if($query = $this->update_entry_model->update())
    {
        $this->index();
    }
    else
    {
        redirect('hq');
    }
}

型号

<?php
    class Update_entry_model extends CI_Model {
        function update()
        {
            $data = array(
                'no' => $this->input->post('no'),
                'date' => $this->input->post('date'),
                'artist' => $this->input->post('artist'),
                'title' => $this->input->post('title'),
                'long' => $this->input->post('long'),
                'lat' => $this->input->post('lat')
            );
            $this->db->where('id', $id);
            $this->db->update('entries', $data);
        }
    }

【问题讨论】:

    标签: php mysql codeigniter


    【解决方案1】:

    没有做进一步调查,我看到在模型函数update()中,你丢失了

    $id = $this->input->post('id');
    

    添加this-&gt;db-&gt;where('id', $id); 不会更新任何内容的原因是因为 $id 当前没有设置为任何值。

    【讨论】:

    • 感谢您指出我的基本错误!现在完美运行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-28
    • 2011-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-09
    • 2016-06-18
    相关资源
    最近更新 更多