2011-11-03 94 views
0

我有下面的表单,我必须将表单值插入到数据库中。但是我不知道如何在数据库中插入这些值。字段名称就像 - name =“fieldname []”。为了更好的理解,请检查以下内容:如何在输入名称为like时将值插入数据库名称=“fieldname []?

我使用Codeigniter。我有Views,controller和model,我试过插入值的通常方法,工作。

我的一个朋友建议我使用的东西喜欢 - mysql_real_escape_string($值),但我不知道如何使用它。你会请您帮帮我吗?

感谢提前:)

<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);      

回答

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); 

您输入的两个学生证。你需要再次做你的其他投入。可是等等?你将如何构造没有学生名字的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); 
} 

让我知道,如果这是有道理的。

+0

非常感谢Jakx。尽管我必须删除addlashes和htmlentities才能使其正常工作,但脚本仍能正常工作。随着加速和htmlentities我得到这个错误信息 - 严重性:警告 消息:htmlentities()期望参数1是字符串,给定的数组。我用($ _POST ['studentid'])替换了它,它的工作方式正是我想要的。非常感谢你。你帮了我很多。 :) –

1

这些阵列,您可以通过下面的代码(例如)访问它们:

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

为您的编辑。这只是一个例子,idk是否有效。试试看吧。

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

感谢您的回复,我检查了您的脚本,它工作正常,但是我会为其他两个变量做些什么。 ..等级并获得分数。请检查我上面的帖子的编辑部分,看看我迄今为止开发了什么。 –

+0

刚编辑我的代码 – sascha