【问题标题】:multiple choice quiz using Codeigniter使用 Codeigniter 进行多项选择测验
【发布时间】:2016-12-11 14:07:21
【问题描述】:

我有两个用于这个项目的表。问题表和答案表。 我希望问题表中的 question_id 字段值对于插入到 Answers 表中的每个选项都相同,并且具有另一个字段名称 question_id

但每次我这样做时,我都会得到以下结果:

Questions Table

Answers Table

你可以看到 question_ids 不一样,这不是我想要的。

这是我的代码: 公共函数 insert_correct_ans($answer1, $answer2, $answer3, $answer4) {

$id = $this->db->insert_id();

    $this->db->query("INSERT INTO answers(
                                            question_id, 
                                            answer, 
                                            correct) 
                                   VALUES(
                                   '$lastID',
                                   '$answer1', '1')");

    $this->db->query("INSERT INTO answers(
                                            question_id, 
                                            answer, 
                                            correct) 
                                   VALUES(
                                   '$lastID',
                                   '$answer2', '0')");

    $this->db->query("INSERT INTO 
                                    answers(
                                            question_id, 
                                            answer, 
                                            correct) 
                                   VALUES(
                                        '$lastID',
                                        '$answer3', '0')");

    $this->db->query("INSERT INTO 
                                    answers(
                                            question_id, 
                                            answer, 
                                            correct)
                                   VALUES(
                                   '$lastID',
                                   '$answer4', '0')");
}

【问题讨论】:

  • $lastID 的值是多少。以及如何获得它的价值。
  • 您还必须在此功能上发送问题 ID。
  • 我为 $lastID 分配了 $this->db->insert_id() 的值
  • 不知道这样做是否正确
  • echo $lastID;。输出是什么。

标签: mysql sql codeigniter-3


【解决方案1】:

在调用函数insert_correct_ans()的时候也传递了问题id。所以然后复制下面的代码。而是重复数据写入insert查询做数组和用户CI数据库的insert函数。

              <?php
      public function insert_correct_ans($que_id,$answer1, $answer2, $answer3, $answer4)
           {
            $data=array(
              array(
                'question_id'=>$que_id,
                'answer'=>$answer1,
                'correct'=>'1'
                ),
              array(
                'question_id'=>$que_id,
                'answer'=>$answer2,
                'correct'=>'0'
                ),
              array(
                'question_id'=>$que_id,
                'answer'=>$answer3,
                'correct'=>'0'
                ),
             array(
                'question_id'=>$que_id,
                'answer'=>$answer4,
                'correct'=>'0'
                )
              );
            }
            $this->db->insert('answers',$data);
          ?>

【讨论】:

  • 这是否意味着我必须自己输入问题 ID?
  • 好的,让我试一试...我会在一分钟内回复你
  • 我已经编辑了更易于理解和清晰的代码让我们享受..
  • 我已经编辑了更易于理解和清晰的代码让我们享受..
  • 看起来不错,但有一件事仍然令人困惑,我想从问题表中获取问题 ID
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-09
  • 2017-06-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多