我有一个照片库,并希望通过表单输入一次更新多个标题。我试图研究这一点,但我认为我在头脑中。这是我迄今为止,但它不工作..如何使用foreach循环更新SQL数据库?
数据保存在一个名为“画廊”的SQL表中。一个例子行可能看起来像:
gallery_id(key) = some number
product_id = 500
photo = photo.jpg
caption = 'look at this picture'
我的表单输入都是这样产生的:
$ SQL =请求mysql_query( “SELECT * FROM画廊,的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循环中传递多个变量。
你neeed通过原标题的id,太。所以你的陈述将沿着'UPDATE gallery SET caption = $ caption WHERE gallery_id = $ gallery_id'(我希望你正在显示缩写代码,否则你打开自己的SQL注入)。 – 2013-02-25 02:16:13
请注意,您不应该再使用'mysql_ *'函数。整个范围是[弃用](http://www.php.net/manual/en/function.mysql-query.php)。它在几年内没有更新或维护,只是为了向后兼容而存在。你应该使用'mysqli_ *'或'PDO'方法。 – 2013-02-25 02:22:22