ユーザーがフォームを送信したときに複数のファイルをアップロードするフォームがあるアプリケーションを構築しています。次に、このような foreach ループによってキャッチされたすべての投稿値
if($booker->setsessions($_POST))
{
$this->redirect(array('controller'=>'homes','action'=>'step_four'));
}
else
{
$this->setFlashMsg('Please Provide Valid Information','message-box ok');
}
ここでは、投稿の値をキャッチしています
foreach($data as $index=>$value){
$this->$index=$value;
}
$this->save();
$booking->booker_id =$this->id;
$booking->save();
public function save()
{
if (!$this->id) {
$this->create();
}
else {
$this->update();
}
}
protected function create()
{
$connection = db::factory('mysql');
$sql = "insert into {$this->table} (`";
$sql .= implode('`, `', array_keys($this->values));
$sql .= "`) values ('";
$clean = array();
foreach ($this->values as $value) {
$clean[] = $connection->clean($value);
}
$sql .= implode("', '", $clean);
$sql .= "')";
$this->id = $connection->insertGetID($sql);
}
ここで $this->save(); すべての $index=>values を取得し、1 つのテーブルに挿入します。フォームは次のようになります
<form class="form-3 form-horizontal ajxfrm" id="step-three" enctype="multipart/form-data" action="<?php echo $html->addLink(array('controller'=>'homes','action'=>'step_three_ajax')); ?>" method="post">
<input id="name" type="text" name="name" />
<input id="email" type="text" name="email" />
<input id="city" type="text" name="city" />
<input id="contact" type="text" name="contact" />
<input id="fileupload" type="file" name="fileupload[]" />
ここでは、テーブル内のすべてのデータと別のテーブル内のファイルをmysqlを介してアップロードしたいのですが、上記のコードはすべての投稿値を取得し、ファイル列のない1つのテーブルに挿入しようとしているため、エラーが発生します