2011-11-03 112 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

相關問題