我正试图通过while循环实现对多个<options>
的更新查询。我使用这个功能为图像分配位置id,这样我就可以将它们放在网站的不同位置。我让它为单个图像工作,但这意味着我必须手动更新每个图像。
在我目前的情况下,我在while循环中运行表单。然后,提交按钮将数据发布到流程文件中并保存。这很管用。但仅针对每个图像单独显示。
我希望能够通过一个提交按钮更新所有图像位置
在我当前的代码中,我认为问题在于我在while循环中运行表单。如果我是对的,那么在一个查询中使用来自多个表单的数据是不可能的。现在我正在写这篇求助信,我注意到这更多的是一个商业逻辑错误——我正试图让它发挥作用。
让我们进入情况/代码:
它目前的工作方式如下:
选项>按钮
选项>按钮
每个更新按钮都指向一个带有文章id的文件"photoPositions.php",并执行插入查询。
我想要这种情况:
选项
选项
更新按钮
结果是:只需单击即可更新所有图像。
图像
photoPositions.php上的Insertquery如下所示:
$insertQuery = ("UPDATE images SET posId = '".$_POST['posid']."' WHERE id = '".$_POST['imgid']."'");
mysql_query($insertQuery) or die(mysql_error());
(我知道mysql_
被取消了,我稍后会尝试处理)
我当前编辑的文章代码如下:
<?php
echo 'Images:<br>';
echo '<table width="100%" cellspacing="3">';
$get_photo = "SELECT * FROM images WHERE artId = ".$_GET['id']." ORDER BY posId ASC";
$result = mysql_query($get_photo) or die(mysql_error());
while($row = mysql_fetch_array($result)){
echo '<td align="left">
<a href="../photos/'.$row['name'].'" target="_blank">
<img src="../photos/'.$row['name'].'" width=200>
</a>';
?>
<form name="imagePosition" method="post" action="photoPositions.php?id=<?php echo $_GET['id'];?>">
<input type="hidden" name="imgid" id="imgid" value="<?php echo $row['id'];?>">
<select name="posid" id="posid">
<?php
echo '<option value="1"';
if($row['posId'] == 1)
{
echo ' selected';
}
echo '>Article</option>';
echo '<option value="2"';
if($row['posId'] == 2)
{
echo ' selected';
}
echo '>Sidebar</option>';
echo '<option value="4"';
if($row['posId'] == 4)
{
echo ' selected';
}
echo '>Offline</option>';
?>
</select>
<input type="submit" name="POSITION CHANGE" value="POSITION CHANGE">
</form>
<?php
}
echo '</table>' . "'r'n";
?>
图像位置是另一种形式的更大编辑屏幕的一部分。我试图将照片位置更新集成到整个编辑文章的一个更新过程中,而不是手动处理每个图像。。
我是否必须将所有imgid数据的posid数据输出到数组中,并将该数据处理到查询中?当然,我想我也必须在一段时间内修改表格。
我的方法是将<select name="posid">
更改为以$row['id']
为关键<select name="posid[$row['id']]">
的数组
<?php
echo 'Images:<br>';
//move form tag to outside of table
echo '<form name="imagePosition" method="post" action="photoPositions.php?id=<?php echo $_GET['id'];?>">';
echo '<table width="100%" cellspacing="3">';
$get_photo = "SELECT * FROM images WHERE artId = ".$_GET['id']." ORDER BY posId ASC";
$result = mysql_query($get_photo) or die(mysql_error());
while($row = mysql_fetch_array($result)){
echo '<td align="left">
<a href="../photos/'.$row['name'].'" target="_blank">
<img src="../photos/'.$row['name'].'" width=200>
</a>';
?>
<select name="posid[<?php echo $row['id']; ?>]" id="posid<?php echo $row['id']; ?>">
<?php
echo '<option value="1"';
if($row['posId'] == 1)
{
echo ' selected';
}
echo '>Article</option>';
echo '<option value="2"';
if($row['posId'] == 2)
{
echo ' selected';
}
echo '>Sidebar</option>';
echo '<option value="4"';
if($row['posId'] == 4)
{
echo ' selected';
}
echo '>Offline</option>';
?>
</select>
<input type="submit" name="POSITION CHANGE" value="POSITION CHANGE">
<?php
}
echo '</table></form>' . "'r'n";
?>
然后在photoPositions.php
中,您可以进行foreach循环
foreach($_POST['posid'] as $key => $value){
$insertQuery = ("UPDATE images SET posId = '".$value."' WHERE id = '".$key."'");
mysql_query($insertQuery) or die(mysql_error());
}