【问题标题】:Why database isn't updating codeigniter [closed]为什么数据库不更新codeigniter [关闭]
【发布时间】:2018-10-30 22:41:55
【问题描述】:

我目前正在开发这个 php 应用程序,其中有一个论坛,我需要编辑某个主题的功能。

我的模特:

public function update_topic(){

        $data = array(
            'topic_subject' => $this->input->post('topic_subject'),
            'body' => $this->input->post('body'),
            'topic_cat' => $this->input->post('topic_cat'),
            'topic_by' => $this->session->userdata('user_id')

        );

        $this->db->where('topic_id', $this->input->post('topic_id'));
        return $this->db->update('topics', $data);

    }

我的控制器:

    public function edit($topic_id){
    $data['topic'] = $this->topic_model->get_topics($topic_id);
    $data['forumcategories'] = $this->forumcategory_model->get_forumcategories();

    if(empty($data['topic'])){
        show_404();
    }

    $data['title'] = 'Edit Topic';

    $this->load->view('templates/header');
    $this->load->view('forum/topics/edit', $data);
    $this->load->view('templates/footer');
}

public function update(){

    if(!$this->session->userdata('logged_in')){
        redirect('users/login');
    }

    $this->topic_model->update_topic();

//  $this->session->set_flashdata('post_updated', 'Post has been updated');
    redirect('forumcategories');
}

我的表格:

    <h2><?= $title; ?></h2>

<?php echo validation_errors(); ?>


<?php echo form_open('topics/update'); ?>

  <div class="form-group">
    <label>Topic Subject</label>
    <input type="text" class="form-control" name="topic_subject" placeholder="Add Subject" value="<?php echo $topic['topic_subject']; ?>">
  </div>
  <div class="form-group">
    <label>Body</label>
    <textarea id="editor" class="form-control" name="body" placeholder="Add text"><?php echo $topic['body']; ?></textarea>
  </div>
   <div class="form-group">
  <label>Category</label>
  <select name="category_id" class="form-control">
  <?php foreach($forumcategories as $forumcategory): ?>
    <option value="<?php echo $forumcategory['cat_id']; ?>"> Name: <?php echo $forumcategory['cat_name']; ?> Description: <?php echo $forumcategory['cat_description']; ?></option>
  <?php endforeach; ?>
</select>
</div>
  <button type="submit" class="btn btn-default">Submit</button>
</form>

W

当我点击编辑按钮时,整个信息加载完美,当我提交它时不会抛出任何错误,它会将我重定向到我想要的页面,但信息没有更新,可能是什么问题?

【问题讨论】:

  • 注释掉 redirect('forumcategories'); 并在 database.php 中打开 db_debug。重新运行并发布错误
  • 评论了重定向并将调试值设置为 true,它只是将我发送到一个空白页面,没有别的。
  • 好吧,经过几次尝试并弄乱了模型,我发现外键搞砸了,所以我删除了它们,另一个问题是类别选择的编辑表单 ID 错误。谢谢你的帮助。

标签: php database codeigniter


【解决方案1】:

为了更好的实践,这段代码进入控制器,你能像@Alex所说的那样向我们展示表单+调试或最后一个查询的回显

 $dataa = array(
                'topic_subject' => $this->input->post('topic_subject'),
                'body' => $this->input->post('body'),
                'topic_cat' => $this->input->post('topic_cat'),
                'topic_by' => $this->session->userdata('user_id')

            );

然后你用 $data 调用模型

$this->topic_model->update_topic($dataa);

【讨论】:

  • 添加了我的编辑表单,
  • 好吧,经过几次尝试并弄乱了模型,我发现外键搞砸了,所以我删除了它们,另一个问题是类别选择的编辑表单 ID 错误。谢谢你的帮助。
猜你喜欢
  • 2020-07-25
  • 2016-12-12
  • 2016-12-25
  • 2020-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-09
  • 1970-01-01
相关资源
最近更新 更多