如何使用foreach循环更新SQL数据库?

时间:2013-02-25 02:13:16

标签: php sql foreach

我有一个照片库,想要通过表单输入一次更新多个字幕。我试图研究这个,但我想我已经超越了我的头脑。这是我到目前为止所做的,但它不起作用..

数据保存在名为“gallery”的SQL表中。示例行可能如下所示:

gallery_id(key) = some number
product_id      = 500
photo           = photo.jpg
caption         = 'look at this picture'

我的表单输入生成如下:

  

$ sql = mysql_query(“SELECT * FROM gallery WHERE product_id = 500”);

 while($row = mysql_fetch_array($sql)) {
  $photo=$row['photo'];
  $caption=$row['caption'];
  echo '<img src="$photo"/>';
  echo '<input name="cap['.$caption.']" id="cap['.$caption.']" value="'.$caption.'" />';
  }

所以,一旦我提交表单,我开始访问我的输入,但我碰到了墙。

    if( isset($_POST['cap']) && is_array($_POST['cap']) ) {
       foreach($_POST['cap'] as $cap) {
        mysql_query("UPDATE gallery 
                     SET caption=$caption
                     WHERE ???????");
       }

    }

我不知道如何告诉数据库将这些输入放在哪里,据我所知,你不能在foreach循环中传递多个变量。

1 个答案:

答案 0 :(得分:0)

$ _ POST是一个数组,如果我没有错(我现在无法测试它,我在PHP中是新的)你可以做

foreach ($_POST as $p) {
    $id=$p['id'];'
    $cap=$p['caption'];
mysql_query("UPDATE gallery 
                 SET caption=$cap
                 WHERE photoid=$id");

}