2012-01-30 2 views
3

PHP를 사용하여 MySQL 데이터베이스에 여러 행을 동시에 삽입하려고합니다. a, b, c를 3 개의 다른 행에 삽입하려고하지만 a, b, c 형식으로 1 행에 삽입됩니다.Ajax + PHP를 사용하여 mysql 테이블에서 동시에 여러 레코드 추가하기

내 코드는 아래에 있습니다. 코드는 완벽하게 작동하지만 오류 메시지는 내 욕망 결과를 가져옵니다.

<?php 
require_once('conn.php'); 
$name = $_POST['name']; 
if($name) 
{ 
    foreach($name as $std_name) 
    { 
    $student[] = $std_name; 
    // implode($c); i.e a,b,c etc 
    } 
} 
$sql = "INSERT INTO `tbl_student` 
(`student_name`) 
VALUES 
('".implode($student, ',')."');"; 
$res = mysql_query($sql); 
?> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
<head> 
<title>Form</title> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<script type="text/javascript"> 

    var nFloor = "";  

    function removeField(nField){ 

     nField.parentNode.parentNode.removeChild(nField.parentNode); 
    } 

    function insertField(){ 

     var newFieldContainer = document.createElement('div'); 
     var newFieldLabel = document.createElement('label'); 
     newFieldLabel.innerHTML = "Student Name:&nbsp;&nbsp;&nbsp;";   
     var newField = document.createElement('input'); 
     newField.type = "text"; 
     newField.name = "vipInfo[]"; 
     newFieldContainer.appendChild(newFieldLabel); 
     newFieldLabel.appendChild(newField); 
     var deleteBtn = document.createElement('input'); 
     deleteBtn.type = "button"; 
     deleteBtn.value = "Remove"; 
     deleteBtn.style.marginLeft = "5px"; 
     deleteBtn.onclick = function(){removeField(this)}; 
     newFieldContainer.appendChild(deleteBtn); 
     document.forms[0].insertBefore(newFieldContainer,nFloor); 
    } 

    function init(){ 

     var insertBtn = document.getElementById('newFieldBtn') 
     insertBtn.onclick = function() 
      { 
      insertField(); 
      } 
     nFloor = insertBtn;  
    } 

    navigator.appName == "Microsoft Internet Explorer" ? attachEvent('onload', init, false) : addEventListener('load', init, false);  

</script> 
</head> 
    <body> 
     <form action="" method="post"> 

      <div class="field"><label>Student Name:&nbsp;&nbsp;&nbsp;<input type="text" name="name[]"></label></div> 

      <input type="button" id="newFieldBtn" value="New Field"> 
      <input type="submit" name="submit" value="Submit"> 

     </form> 
    </body> 
</html> 
+0

echo $ sql, 어떻게 되나요? –

+0

이것을 확인하십시오 -> http://stackoverflow.com/questions/8667384/inserting-multiple-rows-in-a-table-using-php – Rikesh

+0

@ 대각조 echo $ sql이 결과를 제공합니다 INSERT INTO'tbl_student' ('student_name ') 가치 ('a, b, c'); 하지만 3 개의 다른 행, 즉 3 개의 다른 레코드에 삽입하려고합니다. –

답변

0

는 그래서 다른 행

각 하나를 추가합니다 사용 implode를 사용하거나 오히려

$sql = "INSERT INTO `tbl_student` 
(`student_name`) 
VALUES 
('". $std_name."');"; 

으로 쿼리 아래 사용하지 않는 foreach 블록 내에서이 쿼리

$sql = "INSERT INTO `tbl_student` 
(`student_name`) 
VALUES 
('".implode($student, ',')."');"; 
$res = mysql_query($sql); 

를 넣어

+0

INSERT INTO'tbl_student' ('student_name') VALUES ('b');로 테이블에 마지막 값만 삽입합니다. –

0

사용 :

$val="('".implode("'), ('",$student)."')"; 
     $sql = "INSERT INTO `tbl_student` 
(`student_name`) VALUES ".$val.";"; 
관련 문제