2012-06-26 6 views
1

주어진 DB와 테이블에서 자체적으로 생성되는 양식을 만들고 있습니다. 그러나 삽입 기능에 관해서는 문제가 있습니다. 나는 모든 필드가 입력을 생성 할 수 있도록 텍스트를 만들었습니다. 올바른 이름의 페이지에 무엇을 넣었습니까? 이제 내가 할 일은 게시판에 DB에 삽입하는 것뿐입니다. 하지만 implode를 사용하여 배열을이 (다시 말해, this, this)로 다시 만들 필요가 있습니다. 어떻게해야할지 모르겠습니다.열에서 배열 자동 생성

$resultInsert = mysql_query("SHOW COLUMNS FROM " . $table); 
$fieldnames=array(); 

if (mysql_num_rows($resultInsert) > 0) { 
     while ($row = mysql_fetch_array($resultInsert)) { 
      echo $fieldnames[] = $row['Field']; #currently outputting titlebodytextcreated (three fields i have) 
     } 
     } 


// FORMAT: field_name = $_POST[fieldname] 

$values = array('title'=>$_POST['title'],'bodytext'=>$_POST['bodytext']); # need this to be autogenerated by the field names 

echo "<br>" . sprintf('INSERT INTO %s (%s) VALUES ("%s")', 'testdb', 
implode(', ', array_map('mysql_escape_string', array_keys($values))), implode('", "',array_map('mysql_escape_string', $values))); 

// add loop for id to be generated in a hidden field, along with all other excluded fields so that the 
// update will process correctly in the insert into phase 
+0

. 나는 PHP에 noobie 종류. 하지만 난 정말이 코드를 작동시키고 싶습니다 – Alex

답변

1

$values = array_intersect_key($_POST, array_flip($fieldnames)); 

또는 오히려 당신이 $_POST에서 해당 키가 비어있는 경우에도 $fieldnames 모든 값이 $values의 핵심이 있는지 확인하려면이 정말 하하 날 귀찮게한다

$values = array_flip($fieldnames); 
$values += array_intersect_key($_POST, $values); 
+0

일하는 것 같습니다! 감사! 좀 더 테스트를 실행하려고 메신저하지만 그걸로 집어 넣었 어 – Alex

+0

어떻게이 방법을 업데이트 필드에 적용할까요? http://stackoverflow.com/questions/11277580/dynamic-array-creation-for-update-mysql-php – Alex