0

在庫に車のリストがあり、それぞれに最大 12 枚の写真を含めることができます。必要に応じて車をうまく消去できますが、問題は写真も消去することです。

したがって、次のようなクエリを実行できます。

$pictures = "picture1, picture2, picture3, picture4, picture5, picture6, picture7, picture8, picture9, picture10, picture11, picture12";
$data = mysql_fetch_assoc(mysql_query("SELECT $pictures FROM `auto` WHERE `auto_id` = $autoid"));

$data変数を使用すると、次のように写真の名前にアクセスできますecho $data['picture1'];

データベース内のフィールドが空でない限り、各画像をループする for ループを作成しようとしています。データからこれらのファイル パスの配列を作成し、配列をループして、unlink()?

SO FAR SOLUTION [動作しますが、改善が必要ですか?]

if (isset($_POST['delete']) === true)
{

    $pictures = "picture1, picture2, picture3, picture4, picture5, picture6, picture7, picture8, picture9,
    picture10, picture11, picture12";
    $data = mysql_fetch_assoc(mysql_query("SELECT $pictures FROM `auto` WHERE `auto_id` = $autoid"));
    $a = 1;
    while ($a <= 12)
    {
        $picturepath = $data['picture'.$a];
        if (empty($picturepath) !== true)
        {
            unlink('../../' . $picturepath);
        }
        $a++;
    }

    mysql_query("DELETE FROM `auto` WHERE `auto_id` = $autoid");
    header('Location: ../../admin.php?manage_vehicles');
    exit();
}
4

2 に答える 2

0

クエリの後に foreach ループを追加します。

    foreach($data AS $photo)
    {
         if (!empty($photo) && file_exists($photo)) unlink($photo);
    }

回答を更新し、file_exists() を追加しました

于 2013-07-24T23:13:12.720 に答える