サーバーにアップロードしたい画像が 2 つあります。両方のファイルが html に設定されている場合、最初のクエリを実行する必要があります。image1 が選択されていて、image2 が 2 番目のクエリではない場合、image1 が選択されておらず、inage2 が選択されている場合は、3 番目のクエリが実行されます。画像が選択されていない場合は、3 番目のクエリが実行されます。 image1 と image2 の両方で、クエリ 4 を実行する必要があります。
image1 または image2 が選択されているかどうかに関係なく、更新される 3 つのテキスト ボックスもあることに注意してください。
私が抱えている問題は、
image1とimage2の両方でファイルを選択しないと、最初のコードが実行され、image1とimage2のemoty値が挿入されますが、これは意図されたものではありません。
コードの重複を減らすためのよりクリーンで効率的な方法はありますか。
if (isset($_FILES['newsthumb']) && isset($_FILES['newsmain'])) {
$title = mysql_real_escape_string(trim($_POST['title']));
$body = mysql_real_escape_string(trim($_POST['body']));
$mainimage_title = mysql_real_escape_string(trim($_POST['mainimage_title']));
$thumbimage = $_FILES['newsthumb'];
$mainimage = $_FILES['newsmain'];
$unique = time();
$thumbname = strtolower($thumbimage['name']);
$mainmane = strtolower($mainimage['name']);
$thumbname = preg_replace("/[^A-Z0-9._-]/i", "_", $thumbname);
$mainmane = preg_replace("/[^A-Z0-9._-]/i", "_", $mainmane);
$thumbname = mysql_real_escape_string($thumbname);
$mainmane = mysql_real_escape_string($mainmane);
$uploaddir = "images/newsimage/";
$thumbsuccess = move_uploaded_file($thumbimage["tmp_name"], $uploaddir.$thumbname);
$mainsuccess = move_uploaded_file($mainimage["tmp_name"], $uploaddir.$mainmane);
$newsarticle = "UPDATE news
SET title = '$title',
body = '$body',
mainimage_title = '$mainimage_title' ,
thumbnail = '$thumbname',
mainimage = '$mainmane',
editdate = NOW()
WHERE id = '$article_id'";
mysql_query($newsarticle) or die (mysql_error());
}
if (!isset($_FILES['newsthumb']) && isset($_FILES['newsmain'])) {
$title = mysql_real_escape_string(trim($_POST['title']));
$body = mysql_real_escape_string(trim($_POST['body']));
$mainimage_title = mysql_real_escape_string(trim($_POST['mainimage_title']));
// Commented out since it is not defined anywhere in your original posted code.
// You will have to implement that in.
$mainimage = $_FILES['newsmain'];
$unique = time();
$mainmane = strtolower($mainimage['name']);
$mainmane = preg_replace("/[^A-Z0-9._-]/i", "_", $mainmane);
$mainmane = mysql_real_escape_string($mainmane);
$uploaddir = "images/newsimage/";
$mainsuccess = move_uploaded_file($mainimage["tmp_name"], $uploaddir.$mainmane);
$newsarticle = "UPDATE news
SET title = '$title',
body = '$body',
mainimage_title = '$mainimage_title' ,
mainimage = '$mainmane',
editdate = NOW()
WHERE id = '$article_id'";
mysql_query($newsarticle) or die (mysql_error());
}
if (isset($_FILES['newsthumb']) && (!isset($_FILES['newsmain']))) {
$title = mysql_real_escape_string(trim($_POST['title']));
$body = mysql_real_escape_string(trim($_POST['body']));
$mainimage_title = mysql_real_escape_string(trim($_POST['mainimage_title']));
// Commented out since it is not defined anywhere in your original posted code.
// You will have to implement that in.
$thumbimage = $_FILES['newsthumb'];
$unique = time();
$thumbname = strtolower($thumbimage['name']);
$thumbname = preg_replace("/[^A-Z0-9._-]/i", "_", $thumbname);
$thumbname = mysql_real_escape_string($thumbname);
$uploaddir = "images/newsimage/";
$thumbsuccess = move_uploaded_file($thumbimage["tmp_name"], $uploaddir.$thumbname);
$newsarticle = "UPDATE news
SET title = '$title',
body = '$body',
mainimage_title = '$mainimage_title' ,
thumbnail = '$thumbname',
editdate = NOW()
WHERE id = '$article_id'";
mysql_query($newsarticle) or die (mysql_error());
}
if (!isset($_FILES['newsthumb']) && (!isset($_FILES['newsmain']))) {
$title = mysql_real_escape_string(trim($_POST['title']));
$body = mysql_real_escape_string(trim($_POST['body']));
$mainimage_title = mysql_real_escape_string(trim($_POST['mainimage_title']));
$newsarticle = "UPDATE news
SET title = '$title',
body = '$body',
mainimage_title = '$mainimage_title' ,
editdate = NOW()
WHERE id = '$article_id'";
mysql_query($newsarticle) or die (mysql_error());
}