如何设置表单DB码(How to set up DB codes for forms)

2019-10-29 07:28发布

我有一个具有39个复选框的页面。 在我的例子中的复选框类似形式的名称。 我的问题是,随着39个复选框,我需要一种方法来存储被给了学生什么样的形式。 目前我所成立的是,每种形式的用逗号和报价分开,从而在运行报表时,管理员可以使用它形成了一个学生已经收到了CSV下载选项和组。 这工作,但很不成熟,并且还给出了不好的一面影响之前每个窗体名称/存在因为MySQL转义引号。

这是我目前有:

 if ($this->input->post('action') == 'additional') {
     $givenforms = "";

     foreach ($this->input->post('form') as $forms) {
      $givenforms .= ', "' . $forms . '"';
        }
        $comments = 'This student was given' . $givenforms . '';

        if (($this->input->post('action') == 'additional') && ($this->input->post('other') == 'OTHER')) {
            $comments .= ', '.$this->input->post('counselorcomments');
        }
 }

再在数据库中的结果会是这样的:这名学生被赋予“XYZ”,“EOE”,“WWO”

几乎我只是需要如何存储构成一个学生都分到的想法,如果需要的话,如果所有39种形式提供给学生,我需要存储所有形式的学生都分到了后来的报告。 (即使39所形成不会被给予)

Answer 1:

听起来像是你需要一个:学生和形式之间一对多的关系。 可能想要做对题目有一点研究。

我认为这通常是形式非常不好的存储逗号分隔值在一个字段在数据库中,如果你这样做,它几乎总是需要(至少)另一个表的标志。



Answer 2:

或两个重构的什么我曾与CSV一小时回报相当不错。 我非常非常高兴与报告/的分析可能知道的信息,我得到了它现在存储的方式。

的代码片段夫妇对任何其他人寻找到做这样的事情! :

 if ($this->form_validation->run() == FALSE) { // This stuff is self explanatory RT(F)M if you will :) 
     $this->cont();
 } else {
     $this->load->model('queue_model'); // Load model

     $session = $this->uri->segment(3); // Gets the session id 
     $counselor = $this->session->userdata('username'); // I get counsellor names from the username they log in by joining between the two tables

      if ($this->input->post('action') == 'Additional') { // If additional forms is checked do the following 

      foreach ($this->input->post('form') as $form_id) { // for each form submitted take the session Id from above and insert it into the table forms with the foreach $form_id variable
          $this->queue_model->forms($session, $form_id);
      }

      if (($this->input->post('action') == 'Additional') && ($this->input->post('addother') == 'addotherinfo')) { // If forms were submitted and a addotherinfo was [checked] add comments 
          $comments = ''.$this->input->post('action'). ' - '.$this->input->post('counselorcomments').'';
      } else {
          $comments = $this->input->post('action');
      }
}  

在形式表还增加(与ID和表单名称)让我动态让复选框,如下所示:

<?php 
        foreach ($elevennine as $form) { ?>
              <label id="form"><input type="checkbox" name="form[]" value="<?php echo $form['form_id'] ?>" <?php echo set_checkbox('form', $form['form_id']) ?>><?php echo $form['forms'] ?></label>
<?php   } 
?>

感谢所有伟大的想法!



文章来源: How to set up DB codes for forms