加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 在Codeigniter中将一些数据记录到数据库中

发布时间:2020-12-13 22:52:18 所属栏目:PHP教程 来源:网络整理
导读:我遇到了问题 我有一个问卷调查网站,以学生为受访者填写网站的问题.问题是,当将问卷结果中包含的数据发送到数据库时,数据不会记录在数据库中. 这是我的名为“jawab”的表作为答案记录列: ‘NIS’作为学生证 ‘ID_SOAL’作为问题ID ‘JAWABAN’作为学生的答
我遇到了问题
我有一个问卷调查网站,以学生为受访者填写网站的问题.问题是,当将问卷结果中包含的数据发送到数据库时,数据不会记录在数据库中.

这是我的名为“jawab”的表作为答案记录列:
‘NIS’作为学生证
‘ID_SOAL’作为问题ID
‘JAWABAN’作为学生的答案

| NIS | ID_SOAL | JAWABAN |
| …… | ……. | ……. |

那张桌子(jawab)还是空的

现在我的控制器代码名为“soal”作为问题控制器:

public function index(){
$data['title'] = "Kriteria Rumah Masa Depan yang di Inginkan"; // <-- tiltle
$data['form_action'] = site_url('soal/index'); // 

//GET QUESTION
$data['soals'] = $this->Soal_model->getSoal();

    // SEND ANSWERS TO DATABASE  
$JAWABAN = $this->input->post('JAWABAN');
$this->Soal_model->InputJawaban($JAWABAN);

$this->load->view('soal/index',$data);
}

我的模型代码名为“soal_model”作为问题模型:

/* GET ALL QUESTION */      
function getSoal(){
$this->db->select('ID_SOAL,SOAL');
$query = $this->db->get('soal');
if($query->num_rows() > 0){
return $query->result_array();
}
}

/* **input students answer to database** */     
function InputJawaban($JAWABAN){
    $data = array(
    'JAWABAN' => $JAWABAN  /* JAWABAN as ANSWER */
    ); $this->db->insert('jawab',$data); 
    }

我的视图代码名称“index”:

<body>  
<form method="post" action="<?php echo $form_action; ?>">
<table>
    <tr>
        <th>NO</th>
        <th>SOAL</th>
        <th>JAWAB</th>
    </tr>
    <?php $i= 1; ?>
    <?php foreach($soals as $soal): ?>
    <tr>
        <td><?php echo $soal['ID_SOAL']; ?></td>
        <td><?php echo $soal['SOAL']; ?></td>
        <td><input name="JAWABAN<?php echo $i;?>" type="radio" value="1">YA</input>
            <input name="JAWABAN<?php echo $i;?>" type="radio" value="0">TIDAK</input></td>     
            <?php $i++; ?>  
    </tr>
    <?php endforeach;?> 
</table>
<input type="submit" value="KIRIM"/>
</form>

</body>

答案只是’YA’和’TIDAK’

我试过,但失败了,我的数据库不会记录数据
我没有IDEA

这是我的目标

| NIS | ID_SOAL | JAWABAN |
| 001 | 1 |雅|
| 001 | 2 |雅|
| 001 | 3 | Tidak |
| 001 | 4 | Tidak |

我希望你理解我的要求
谢谢
谢谢

解决方法

这可以通过使用循环覆盖表单中的所有问题及其答案来完成,但是html表单和模型中的稍有变化

<?php foreach($soals as $soal): ?>
<tr>
<td><?php echo $soal['ID_SOAL']; ?></td>
<td><?php echo $soal['SOAL']; ?></td>
<td>
<input name="JAWABAN[<?php echo $soal['ID_SOAL']; ?>]" type="radio" value="1" />YA
<input name="JAWABAN[<?php echo $soal['ID_SOAL']; ?>]" type="radio" value="0" />TIDAK
<input type="hidden" name="question[<?php echo $soal['ID_SOAL']; ?>]" value="<?php echo $soal['ID_SOAL']; ?>" />     
</td>     
<?php $i++; ?>  
</tr>
<?php endforeach;?>

在上面,我们已经将所有答案标记名称与其相应的问题ID和另一个隐藏输入分配,其中名称为问题,其值包含问题ID.

在控制器中,我们将后期数据传递给模型

$this->Soal_model->InputJawaban($_POST);

在模型中我们从下面的帖子数据中得到问题ID并循环问题并基于问题如果从帖子数据中选择答案我使用了JAWABAN,ID_SOAL列来插入数据并且不确定NIS的数据所以我放1这一栏你可以相应地改变它

function InputJawaban($data)
{
    if (empty($data)) {
        return false;
    }
    foreach ($data['question'] as $key => $qid) {
        $answer = $data['JAWABAN'][$qid]; /* $qid is question id and from that id
        i have picked the answer whose name contains that question id i*/
        $data = array(
            'JAWABAN' => $answer,'ID_SOAL' => $qid,'NIS'   =>1
        );
        $this->db->insert('jawab',$data);
    }
    return true;

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读