当输入名称是like- name =“fieldname []时,如何将值插入数据库?

时间:2011-11-03 16:34:33

标签: mysql codeigniter codeigniter-2

我有以下表单,我必须将表单值插入数据库。但是当字段名称是 - name =“fieldname []”时,我不知道如何插入这些值。为了更好地理解,请检查以下内容。

我正在使用Codeigniter。我有视图,控制器和模型,我已经尝试了插入值的常用方法,但它不起作用。

我的一位朋友建议我使用像mysql_real_escape_string($ value)这样的东西,但我不知道如何使用它。请你帮帮我吗?

提前致谢:)

   <table> 
     <form >

   <tr>

      <td> Student ID: <input type="text" name="studentid[]" value="" /> </td>
      <td> Grade <input type="text" name="grade[]" value="" /></td>
      <td>Obtained Mark  <input type="text" name="obtainedmark[]" value="" /></td>
    </tr>

    <tr>

     <td> Student ID: <input type="text" name="studentid[]" value="" /> </td>
     <td> Grade <input type="text" name="grade[]" value="" /></td>
     <td>Obtained Mark  <input type="text" name="obtainedmark[]" value="" /></td>

    </tr>


  <tr>
     <td> <input type="submit" value="Submit" name="Submit" /></td>
 </tr>

 </form>
 </table>

编辑

    foreach($_POST['studentid'] as $studentid) {
      // do something

    $data = array(              
    'subjectname' =>"",
    'subjectname' => $studentid             

    );                  
    $results=$this->db->insert('subject', $data);                      

3 个答案:

答案 0 :(得分:1)

这些是数组,您可以通过以下代码访问它们(示例):

foreach($_POST['studentid'] as $studentid) {
  // do something
}

进行编辑。这只是一个例子,idk是否有效。试试吧。

foreach($_POST as $key=>$data) {
    foreach($data as $field) {
        $arr[$key][] = $field;
    }
}

答案 1 :(得分:1)

这种方法的工作方式是为每个具有该名称的字段获取一组值。你说有两个

   <td> Student ID: <input type="text" name="studentid[]" value="" /> </td>

当你做

 foreach($_POST['studentid'] as $studentid) {

  $data = array(              
  'subjectid' =>"",
  'subjectname' => $studentid             

   );                  
 $results=$this->db->insert('subject', $data);

你输入了两个学生ID。您需要再次执行其他输入。可是等等?如何在没有学生姓名的情况下构建您的SQL查询?我可能会做类似

的事情
$studentids = addslashes(htmlentities($_POST['studentid']));
$subjectnames = addslashes(htmlentities($_POST['subjectnames']));
$obtainedmarks = addslashes(htmlentities($_POST['obtainedmarks']));

for($i = 0; $i < count($studentids); $i++){
 $data = array(              
  'subjectid' =>$studentids[$i],
  'subjectname' => $subjectnames[$i],             
'obtainedmarks' => $obtainedmarks[$i] 
   );                  
 $results=$this->db->insert('subject', $data);
}

如果这有意义,请告诉我。

答案 2 :(得分:0)