0
以下代碼上傳多個圖像沒有問題。但是,我試圖讓它根據循環的迭代更新表中的字段。問題:當語句循環時IF語句似乎不起作用。即它只會將第一個file_name添加到數據庫。只有第一個IF語句在3個PHP循環內執行
有人看到我在這裏做錯了嗎?非常感謝,如果是這樣!
for ($i = 1; $i < 4; $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 ($i == 1)
{
$filenames1 = array(
'product_image_front' => $data['file_name'],
);
$this->db->where('id', $this->db->insert_id());
$this->db->update('products', $filenames1);
}
if ($i == 2)
{
$filenames2 = array(
'product_image_back' => $data['file_name'],
);
$this->db->where('id', $this->db->insert_id());
$this->db->update('products', $filenames2);
}
if ($i == 3)
{
$filenames3 = array(
'product_image_back' => $data['file_name'],
);
$this->db->where('id', $this->db->insert_id());
$this->db->update('products', $filenames3);
}
}
'$ upload'是錯誤的嗎? –
有5個if語句,而不是3.如果您提到的語句是什麼?我強烈建議重構代碼以將重複代碼放入函數中,否則不必重複。 – evan
你可以在你的'$ i == 2'塊中放一個'echo「hello world」'來檢查它是否到達那個點?一些提示: 1.正確縮進您的代碼。花括號之間的所有內容都應該像這樣縮進另一個級別:http://pastebin.com/SVFPZ2Tt。它更可讀。 2.對「$ i == 2」和「$ i == 3」使用「else if」。它更高效,更清潔。如果$ i是1,你不想麻煩檢查$ i == 2和$ i == 3,否則如果確保只執行一個。 – bcoughlan