0

codeigniter で説明付きの複数の画像をアップロードしようとしています。すべて問題ありません。画像がアップロードされ、画像ファイル名がデータベースに送信されますが、「説明」はデータベースに送信されません。どこを間違えましたか?

form code is like this 
  File 1: <input type="file" name="image1" /><br />
  Descr: <input type="text" name="description[]" size="50" value="" /><br/><br/>

  File 2: <input type="file" name="image2" /><br />
  Descr: <input type="text" name="description[]" size="50" value="" /><br/><br/>

  File 3:<input type="file" name="image3" /><br />
  Descr: <input type="text" name="description[]" size="50" value="" /><br/><br/>

そしてモデルはこれ

for($i = 1; $i < 6; $i++) {
                    /* Handle the file upload */
                    $upload = $this->upload->do_upload('image'.$i);
                    /* File failed to upload - continue */
                    if($upload === FALSE) continue;
                    /* Get the data about the file */
                    $data = $this->upload->data();

                    $uploadedFiles[$i] = $data;
                    /* If the file is an image - create a thumbnail */
                    if($data['is_image'] == 1) {
                        $configThumb['source_image'] = $data['full_path'];
                        $this->image_lib->initialize($configThumb);
                        $this->image_lib->resize();
                    }


                        $image['raw'] = $data['raw_name'];
                        $image['ext'] = $data['file_ext'];
                        $image['newsid'] = $_POST['newsid'];
                        $image['description'] = $_POST['description'][$i];
                        $this->db->insert('multipics', $image);
                }

上記のコードは複数の行を挿入することに注意してください。データベースに入力する説明フィールドが必要なだけです

4

3 に答える 3

0

name="description[]" を name="description に変更

于 2013-03-28T09:09:01.377 に答える
0

回避策として、ループの外側で最初に POST 変数を取得します。

// (1) Get the POST description variable outside of the look     
// As a precaution, dump or echo $description to make sure it looks right...

$description_ = $this->input->post('description');


for ($i = 1; $i < 6; $i++)
{
    ...
    // Put some checks to make sure $i is an index...
     $image['description'] = $description[$i];
    ...
}

これを試して、どうやってうまくいくか教えてください!

于 2013-03-28T11:18:58.573 に答える
0

CI のinsert_batch()メソッドも参照してください。これにより、1 つのクエリですべてのレコードを挿入できます。

于 2013-03-28T14:24:21.733 に答える