私は現在、ユーザーが自分のサイトの画像を置き換えることができる「プロジェクトの編集」スクリプトに取り組んでいます。この部分はうまく機能します。
ただし、新しい画像をアップロードできるようにするオプションも必要です。これらは既存の画像を置き換えるものではありません。したがって、要約すると、ユーザーはフォームを使用して既存の画像を置き換え、新しい画像をアップロードできます。
質問:一部の画像は 新しいものであり、置き換えられたものではないことをPHPに伝えるにはどうすればよいですか?新しい画像に対してINSERTINTOクエリを実行できるように、これを行う必要があります。
以下にコードの一部を添付しました。
既存のファイルの置換を処理するPHP:
// get original name for ProjectImage update
$query3 = "SELECT * FROM ProjectImage as pi WHERE pid = '$id' ORDER BY pi.id";
$result3 = mysql_query ($query3); // Run the Query
$row3 = mysql_fetch_array($result3);
$originalname = $row3[1];
$number_of_file_fields = 0;
$number_of_uploaded_files = 0;
$number_of_moved_files = 0;
$uploaded_files = array();
$upload_directory = dirname(__file__) . '/uploaded/'; //set upload directory
for ($i = 0; $i < count($_FILES['images']['name']); $i++) {
$number_of_file_fields++;
if ($_FILES['images']['name'][$i] != '') { //check if file field empty or not
$number_of_uploaded_files++;
$uploaded_files[] = $_FILES['images']['name'][$i];
if (move_uploaded_file($_FILES['images']['tmp_name'][$i], $upload_directory . $_FILES['images']['name'][$i])) {
$number_of_moved_files++;
$url = $_FILES['images']['name'][$i];
list($width, $height, $type, $attr) = getimagesize("uploaded/".$_FILES["images"]['name'][$i]);
$pieces = explode("_", $url);
$ImageName = $pieces[1];
mysql_query("UPDATE ProjectImage SET Name = '$ImageName', Url = '$url', UrlHeight = '$height' WHERE Name = '$originalname' AND Pid = '$id'");
}
}
}
&
既存の画像のリストを生成するために使用されるPHP:
$query2 = "SELECT * FROM ProjectImage as pi WHERE pid = '$id' ORDER BY pi.id";
$result2 = mysql_query ($query2); // Run the Query
while ($row2 = mysql_fetch_array($result2))
{
?>
<div id="file_container" class="control-group">
<label for="image" class="control-label">Image:</label>
<div class="controls">
<input name="images[]" type="file" />
<img src="uploaded/<?php echo $row2['Url']; ?>" />
<a href="delete.php?id=<?php echo $row2['id']; ?>">Delete</a>
<br />
</div>
</div>
<?php
}
?>
<a href="javascript:void(0);" onClick="add_file_field();">Add another</a><br />
ポインタをありがとう:-)