获得多个$ _POST记录的冗余方式?

时间:2012-10-17 05:22:54

标签: php mysql arrays

编辑:我可能只是让它更加 一步一步'过程即

看起来感觉更加用户友好&它只适用于< 5张图片。我读过&感谢到目前为止我收到的所有帮助。


我对PHP&我正在构建一个基本的PHP图像编辑器,它可以允许多个图像数据审核,然后将其插入到MySQL数据库中。 此系统一次可以上传5张图片的限制(暗示只会播放少量记录),但我会进一步向下。

GUI:

使用了一些数据列:

  • 图片ID
  • caption
  • 描述
  • 公布
  • imageposition
  • 删除按钮

所有图像都是通过之前的SELECT *'在while循环中回显的。结果集。每张图片都有'图片ID'在每个输入名称中回显,因此输出将是例如:

caption-2,description-2,published-2,imageposition-2,caption-3,description-3

此外,来自先前结果集的数据值将回显到输入值,允许客户端编辑数据库中存在的当前数据。只有一个提交按钮。

我的问题:

我希望能够将所有已修改的图像数据发布到processor.php表单,然后允许我将其作为INSERT sql字符串插入到MySQL映像表中。我需要PHP是动态的:

  • 删除图片(图片ID)
  • 上传新图片(图片ID)

如果有更简单的方法可以做到以上任何一种,我欢迎新的想法/意见。提前抱歉我对PHP的理解不够。

2 个答案:

答案 0 :(得分:1)

从'select *'语句中获得结果后,您可以预先

foreach ($images as $image) {
?>
   <img src="imagesrc">
   <input type="text" name="title_<?php echo $image['image_id'] ; ?>" value="<?php echo $image['title']; ?>">
   <input type="text" name="desc_<?php echo $image['image_id'] ; ?>" value="<?php echo $image['description']; ?>">
   <input type="button" onclick="markDeleted('<?php echo $image['image_id'] ; ?>')">
<?php } ?>

.....

收到帖子后,您可以使用“_”进行爆炸,然后您将获得主键,并且可以使用图像ID更新图像表。

在javascript函数markDeleted中,您可以在某个隐藏字段中设置主键并发送到process.php。

像这样用逗号分隔1,2,3添加它(在动作页面中用逗号分隔)

function markDeleted (imageId) 
{
    document.getElementById('deleted_image_ids').value = imageId + ","
}

答案 1 :(得分:0)

轻松删除记录:

<form action="processor.php" method="post">
<?php
foreach ($images as $img) { // assuming $images is the result set of your sql query
?>
  <input type="text" name="name<?php $img['image_id'];?>" value="<?php $img['caption'];?>">
  <input type="text" name="desc<?php $img['image_id'];?>" value="<?php $img['description'];?>">
...
<a href="http://yoursiteurl/deleteimg.php?id=<?php $img['image_id']?>">
<?php } ?>
</form>

在deleteimg.php中:

<?php
$del = $_POST[id];
$query = $msqli->prepare("DELETE FROM imagetablename WHERE image_id=?");
$query->bind_param( 's',  $del );
$query->;execute();
?>

更新和添加新行可能涉及javascript,而且更加困难。