0
$SQL = "
    DELETE male_users from male_users
    LEFT JOIN
    (
        select id from male_users order by date_time DESC LIMIT 0, 100
    ) t1
    ON male_users.id=t1.id
    where t1.id is null
";

if($row_male[0] > 100){
    $result = $mysqli->query($SQL) or die($mysqli->error.__LINE__);
}

このクエリを使用して、リスト内の最新の 100 件を超えるすべての名前を削除しています。

ただし、それぞれの名前には、サーバー上の画像の URL が関連付けられています。forこのクエリを使用して、削除する各アイテムの名前を実際にループに取得して、対応する画像 URL を削除するにはどうすればよいですか?

通常、 unlink(URL) を使用したい

このような結合クエリを使用して、実際に返された行のユーザー名を取得するにはどうすればよいですか?

4

1 に答える 1

1

最初に SELECT を実行してすべてのイメージ ID を取得し、次に DELETE を WHERE IN と組み合わせて実行し、各イメージのリンクも解除します。

擬似コードは次のようになります。

SELECT image_id, image_path FROM table WHERE condition;

結果を配列に入力してから、次のようにします。

DELETE ... WHERE id IN (your ids) // (1, 2, 3, 5, 100)

次に、配列をループし、それぞれに対して次のことを行います。

unlink($image_path);

あなたはテーブル構造を見せてくれませんでしたが、おおむねそれができる方法です。また、unlink.

于 2013-08-14T14:53:50.727 に答える