我正在尝试从while循环实现多个<options>
的更新查询。我正在使用此功能为图像分配位置ID,以便我可以将它们放在网站的不同位置。我让它适用于单个图像,但这意味着我必须手动更新每个图像。
在我目前的情况下,我在while循环中运行表单。然后,提交按钮将数据发布到流程文件并保存。这样可行。但仅适用于每个图像。
我希望能够使用一个提交按钮更新所有图片位置。
在我目前的代码中,我认为问题是我在while循环中运行表单。如果我是正确的,则无法在单个查询中使用来自多个表单的数据。现在我正在写这个请求帮助我注意到它更多的是一个业务逻辑错误 - 我试图绕过它以使它工作。
让我们了解情况/代码:
目前的工作原理如下:
选项&gt;按钮
选项&gt;按钮
每个更新按钮都会指向带有文章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";
?>
图像位置是另一种形式的较大编辑屏幕的一部分。我正在尝试将photopositions更新整合到整个编辑文章的1个更新过程中 - 而不是手动完成每个图像..
我是否必须将所有imgid数据的posid数据输出到数组中并将该数据处理成查询?当然,我也必须在一段时间内解决这个问题。
答案 0 :(得分:0)
我这样做的方法是将<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());
}