0

カンマ区切り形式の画像名をデータベースから削除する必要があります

以下のアプローチを使用しました。

名前はデータベースにあります:31.jpg、31 copy.jpg、110 copy.jpg、110.jpg、110 copy-1.jpg、

それを爆発させた後:

Array
(
    [0] => 31.jpg
    [1] => 31 copy.jpg
    [2] => 110 copy.jpg
    [3] => 110.jpg
    [4] => 110 copy-1.jpg
    [5] => 
)

カンマでimg名を削除するには:110.jpg、

結果:31 copy.jpg、110 copy.jpg、110.jpg、110 copy-1.jpg、

しかし、なぜ110.jpg結果になるのでしょうか?

上記のアプローチのコード。

<?php

    require("include/config.inc.php");

    $parent_img_id = 184;
    $child_imgs_id = 1221;
    $delimg = '110.jpg';

    $getInfoChild_imgs = mysql_query("select * from parent where parent_img_id = '$parent_img_id' and child_imgs_id = '$child_imgs_id' and child_imgs like '%$delimg%'") or die(mysql_error());

        if(mysql_num_rows($getInfoChild_imgs)>0){
            $result = mysql_fetch_array($getInfoChild_imgs);

            $child_imgs_name =$result['child_imgs'];
            $child_imgs_name = explode(',', $child_imgs_name); // Explode into array


            $deleteImgName = $delimg.',';

            unset($child_imgs_name[ array_search($deleteImgName, $child_imgs_name) ]);

            $child_imgs_name = implode(',',$child_imgs_name); 

     }
?>
4

3 に答える 3

4

$deleteImgName110.jpg,

配列にはがありません110.jpg,。それは持っています110.jpg

を使用して展開する場合,、要素にはコンマが含まれていません。

に変更$deleteImgName = $delimg.','します$deleteImgName = $delimg;

于 2012-12-06T08:24:59.197 に答える
1

画像削除変数からコンマを削除します。確認していませんが、カンマを分解すると配列から削除されます

$deleteImgName = $delimg; #.',';
于 2012-12-06T08:30:15.497 に答える
0

$deleteImgName文字列を展開した後、配列エントリの一部ではない「、」を追加した場所を検索しています。

于 2012-12-06T08:28:54.370 に答える