0

编辑:我可能只是让它成为一个更“一步一步”的过程,即

看起来它感觉更加用户友好并且仅适用于 <5 图像。我已阅读并感谢我迄今为止收到的所有帮助。


我对 PHP 相当陌生,我正在构建一个基本的 PHP 图像编辑器,它可以允许多个图像数据审计,然后将其插入 MySQL 数据库。对于这个系统,一次最多可以上传 5 张图像(这意味着只有少量的记录可供播放),但我会进一步讨论。

图形用户界面:

使用的一些数据列:

  • 图片编号
  • 标题
  • 描述
  • 发表
  • 图像位置
  • 删除按钮

所有图像都由先前的“SELECT *”结果集在 while 循环中回显。每个图像都会在每个输入名称中回显“图像 id” ,因此输出将是例如:

标题 2、描述 2、已发布 2、图像位置 2、标题 3、描述 3

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

我的问题:

我希望能够将所有修改后的图像数据发布到一个 processor.php 表单,然后我可以将它作为一个 INSERT sql 字符串插入到 MySQL 图像表中。我需要 PHP 是动态的,以防万一:

  • 图像被删除(图像 ID)
  • 新图片已上传(图片 ID)

如果有更简单的方法来做上述任何事情,我欢迎新的想法/意见。对于我对 PHP 的理解不佳,请提前道歉。

4

2 回答 2

1

一旦你从'select *'语句中得到结果,你就做foreach

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 } ?>

......

收到 post 值后,您可以使用“_”展开,您将获得主键,您可以使用图像 ID 更新图像表。

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

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

function markDeleted (imageId) 
{
    document.getElementById('deleted_image_ids').value = imageId + ","
}
于 2012-10-17T05:42:34.413 回答
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,而且难度更大。

于 2012-10-17T06:22:18.620 回答