只有3个中的第一个IF语句在PHP循环中执行

时间:2011-07-16 17:27:54

标签: php codeigniter loops if-statement iteration

以下代码上传多张图片没问题。但是,我试图让它根据循环的迭代来更新表中的字段。问题:循环时IF语句似乎不起作用。即它只将第一个file_name添加到数据库中。

任何人都能看到我在这里做错了什么?非常感谢,如果是这样!!!

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);
  }

}

1 个答案:

答案 0 :(得分:2)

insert_id - 获取上次查询中生成的ID

在循环之前将其存储在变量中。