0

編集:私はそれをより「段階的な」プロセスにするかもしれません。

よりユーザーフレンドリーに感じられ、5 枚未満の画像のみが対象です。これまでに受けたすべての支援を読み、感謝しています。


私はPHPにかなり慣れていないので、基本的なPHP画像エディターを構築しています。これにより、複数の画像データの監査が可能になり、MySQLデータベースに挿入されます。このシステムでは、一度にアップロードできる画像は 5 枚までに制限されています(再生できるレコードの量が少ないことを意味します) が、それについては後で詳しく説明します。

GUI:

使用されるデータ列の一部:

  • 画像ID
  • キャプション
  • 説明
  • 公開された
  • 画像位置
  • 削除ボタン

すべての画像は、前の 'SELECT *' 結果セットによって while ループでエコーされます。各イメージには、各入力name内に「イメージ ID」がエコーされるため、出力は次のようになります。

キャプション-2、説明-2、公開-2、画像位置-2、キャプション-3、説明-3

また、前の結果セットのデータ値が入力値に反映されるため、クライアントはデータベースに存在する現在のデータを編集できます。送信ボタンは1つだけです。

私の質問:

変更されたすべての画像データを 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 に答える