私は自分の仕事をするために質問をしました。しかし、それはいくつかのエラーで動作します。
1)mysqlテーブルに6つの画像フィールドと他のいくつかのフィールドがあります
2)更新するには、6つのファイルをアップロードしてimage1image2..としてラベル付けされたhtmlフォームを使用します。
3)5番目の画像のみを更新したい場合は、フォームに提出されたimage5に新しい画像をアップロードする必要があります。
mysqlテーブルを更新するために、このクエリを実行しました。
$image=array(
1 =>$_FILES['image1']['name'],
2 =>$_FILES['image2']['name'],
3 =>$_FILES['image3']['name'],
4 =>$_FILES['image4']['name'],
5 =>$_FILES['image5']['name'],
6 =>$_FILES['image6']['name'],
);
$i=1;
$sql = "UPDATE salehotel ";
$sql .="SET"." ";
foreach($image as $value){
if(!$value==""){
$sql .= "`image".$i."`"."="."'". $value ."'".",". " ";
$i++;
}
}
$sql .="
`name`='$name',
`status`='$status',
`type`='$type',
`location`='$location',
`price`='$price',
`description`='$description'
WHERE
`property_id`='$edit'
";
3)これを使用して6つの画像すべてを更新すると、エラーは発生せず、すべてが更新されます。
4)しかし、単一の画像を更新しようとすると(例:image5を更新したい場合は考えてください)、image5フィールドからファイルを選択すると、このクエリは常にテーブルの最初の画像を更新します。
5)なぜそれが起こるのか知っています。foreachループ内のクエリでは、「」に等しくない$valuesのみを探しています。次に、$iをインクリメントします。したがって、1回だけ増分しました。したがって、image1を更新します。image5を更新したかったのです。
6)では、どうすればこのエラーに乗ることができますか?
前もって感謝します。