2011-01-10 13 views
0

지금 당장은 2D 배열을 제공하는 양식을 반복했습니다.SQL에 배열의 2D 값 삽입

어레이 0D
사용자 어레이 1D
사용자 필드 2D

어레이 ([1] => 배열 ([FNAME] => qweqwe [LNAME] => qwewqe [메일] => qwewqe [ 나이] => wewqe) [2] => 배열 ([FNAME] => 123,123 [LNAME] => 123,123 [메일] => 23,123 [나이 = 이것의 예이다

> 23,123)) 내가 들판에 쓰레기를 칠 때 얻을 수있는 것. 각 양식의 값을 얻을 수 있는지 확인하려면 다음을 사용하십시오.

$ i = $ _POST [ 'number'];
$ corporate = $ _POST [ 'corporate'];
$ x = 1;
print_r ($ corporate); .
동안 ($ X < = $ I)
{
에코 "제 이름 이름"$ 기업의 [$ X] [ "FNAME"]. ".";
}이 사용

는, I는 두 번째와 다음에 첫번째 사용자의 이름을 얻을 것이다. 이것은 내 양식에서 2D 값을 얻을 수 있음을 증명합니다.

지금해야 할 일은 그 값을 테이블에 삽입하는 것입니다. 명심하십시오, 나의 1D는 각 사용자의 가치를 포함합니다. 2D는 값 자체입니다.

는 mysql_query ("(학생 INTO 'FNAME', 'LNAME', '이메일', '나이') INSERT는

내가 무엇을 그 후 넣어 아무 생각이없는 값입니다. 어떤 도움이 될 것이다

답변

1

쿼리를 사용하여 깊이있는 의미를 이해하고 마침내 작동하게되었습니다.,

foreach($corporate as $line) 
     { 
     $values[] = "('".implode("','",$line) . "')"; 
 echo "<br />"; 
     print_r($values); 
     $a = implode(",", $values); 
     echo $a; 
     } 

    $query = "INSERT into students (fname, lname,email,age) VALUES $a"; 
    $sql = mysql_query($query); 

이 내 데이터베이스에서 잘 작동 매력처럼 작동합니다

은 내가 사용하는 코드입니다.
그러나 내 친구 DB 또는 온라인 DB에서이 작업을 시도하면 모든 필드에 가치를 부여해야하는 오류가 발생합니다. 어떤 이유로 NULL 값을 입력 할 수 없습니다.

나는 이유를 알아 내려고하지만 내 문제의 요지는 해결되었습니다.
내 오류의 원인을 알고 계시면 언제든지 말씀해주십시오. 감사.

+0

업데이트 된 답변과 일치하도록 내 질문이 편집되었습니다. – Jason

1

삽입 할 데이터 값을 추가해야합니다 ("Robert", "Brown", "[email protected]", "34"("Robert ","Smith ","[email protected] ","33 ")

사용중인 PHP 버전은 무엇입니까?

php5.3에 대한

당신이 시도 할 수 :

$values = array(); 
foreach($corporate as $line){ 
$values[] = "('".implode("','",array_map(function($x){ return addslashes($x); })) . "')"; 
} 
$query = "INSERT INTO students ('fname','lname','email', 'age') VALUES"; 
$query .= implode($values); 
$record = mysql_query($query); 

을 그렇지 않으면, 시도 :

$values = array(); 
foreach($corporate as $line){ 

foreach($line as $i=>$item) $line[$i] = addslashes($item); 
$values[] = "('".implode("','",$line) . "')"; 
} 
$query = "INSERT INTO students ('fname','lname','email', 'age') VALUES"; 
$query .= implode($values); 
$record = mysql_query($query); 

이 문제의 두 번째 부분을 해결하기 위해, 당신은 테이블 정의를 편집하고 "NOT 제거해야 각 필드에있는 "NULL"정의입니다. 서버에 내 관리자가 있습니까? 테이블과 필드를 편집하여이 작업을 수행 할 수 있습니다. 그렇지 않으면 ALTER TABLE을 사용하여 SQL을 실행할 수 있습니다. 더 많은 정보를 원한다면 알려주세요.

+0

저는 개인적으로 PHP 5.3을 사용하고 있습니다. 그러나 설치 될 시스템은 5.1 버전을 사용합니다. 답장을 보내 주셔서 감사합니다. 그러나 코드는 작동하지 않습니다. 당신은 1 '{'와 2 '}를 놓쳤습니다. –

+0

감사의 친구, 내 사본에 붙여 넣기를해야합니다. (업데이트 됨) – Jason