1

指定されたデータベースとテーブルから自分自身を構築するフォームを作成しています。ただし、挿入機能に関しては、問題が発生しました。すべてのフィールドが入力を生成するようにすでに作成しました。textareasは、正しい名前のページに表示されます。今私がする必要があるのは、投稿のデータベースにそれを挿入することです。しかし、爆縮を使用して配列をフォーマット(this、that、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
4

1 に答える 1

1

これは機能しますか?

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

または、対応するキーが空であっても、すべての値に$fieldnamesキーがあることを確認したい場合は、次のようにします。$values$_POST

$values  = array_flip($fieldnames);  
$values += array_intersect_key( $_POST, $values );
于 2012-06-26T13:50:35.477 に答える