【问题标题】:Is there a way to fetch table PK id value instead of foreign key value after Join? Codeigniter有没有办法在加入后获取表 PK id 值而不是外键值?代码点火器
【发布时间】:2020-03-15 04:15:43
【问题描述】:

我需要获取我的 PK 值。

现在,我遇到的问题是我要获取的值是外键。如何获取 PK id 值?

对于视觉表示:看看我的问题

我的用户界面和问题:

所以所有值都是1,这是外键的值。如何将其更改为 12 等 PK id 值?

我的模型有连接查询

public function get_questions($id){
    $this->db->select('*');
    $this->db->from('answers');
    $this->db->join('questions', 'answers.question_id = questions.id');
    $this->db->where('questions.id', $id);
    $query = $this->db->get();
    return $result = $query->result_array();
}

控制器

   public function edit($id)
    {   
        $data['questions'] = $this->post_model->get_questions($id);

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

查看我的表格和我应该获取的 id:

查看

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

            <!-- <input type="hidden" name="id[]" value="<?php echo $posts['id']; ?>" /> -->
            Question:
            <input type="text" name="question" class="form-control" value="<?php echo $posts['question'];  ?>" /><hr>
            Answers:


            <?php foreach($questions as $question): ?>
                <input type="text" name="id[]" value="<?php echo $question['id']; ?>" /><hr>

                <input type="text" name="answer[]" class="form-control" value="<?php echo $question['answer']; ?>" /><hr>
            <?php endforeach; ?>

            <hr>

            <input type="submit" class="btn btn-success" value="Save Changes">
</form>

【问题讨论】:

  • 打印 $data['questions']; 的结果是什么?
  • @SandeepModak - 你好,它会打印出Array(); 你能帮我解决这个问题吗?
  • @SandeepModak 正是它打印出来的内容Array ( [0] =&gt; Array ( [id] =&gt; 1 [answer] =&gt; Yes [answer_id] =&gt; 1 [question_id] =&gt; 1 [correct] =&gt; 1 [type_id] =&gt; 0 [question] =&gt; Apple is color Red? ) [1] =&gt; Array ( [id] =&gt; 1 [answer] =&gt; No [answer_id] =&gt; 2 [question_id] =&gt; 1 [correct] =&gt; 0 [type_id] =&gt; 0 [question] =&gt; Apple is color Red? ) )
  • @SandeepModak 是您需要的吗?
  • 在你的结果中来自问题表的所有列是什么

标签: php mysql codeigniter codeigniter-3


【解决方案1】:

尝试使用

$this->db->select('answers.id,answers.answer,answers.question_id,answers.correct,answers.type_id');
    $this->db->from('answers');
    $this->db->join('questions', 'answers.question_id = questions.id');
    $this->db->where('questions.id', $id);
    $query = $this->db->get();
    return $result = $query->result_array();

根据查询获得结果

【讨论】:

  • 你好对不起,answer_id 有一个静态值,它不是主键。我之前也删除了它,因为我只是在硬编码它。但它无法增加或复制 PK id。对不起。
  • 哇,谢谢你从来没有想过你可以在连接查询中选择选择性数据。我错过了很多关于查询的事情
  • 您可以在查询构建的 Codeigniter 文档中获得更多帮助 codeigniter.com/user_guide/database/query_builder.html
  • 感谢您的帮助,我认为有效的学习方法是尝试复杂的应用程序
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-05-29
  • 1970-01-01
  • 2012-11-27
  • 1970-01-01
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多