我有一个照片库,想要通过表单输入一次更新多个字幕。我试图研究这个,但我想我已经超越了我的头脑。这是我到目前为止所做的,但它不起作用..
数据保存在名为“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循环中传递多个变量。
答案 0 :(得分:0)
$ _ POST是一个数组,如果我没有错(我现在无法测试它,我在PHP中是新的)你可以做
foreach ($_POST as $p) {
$id=$p['id'];'
$cap=$p['caption'];
mysql_query("UPDATE gallery
SET caption=$cap
WHERE photoid=$id");
}