2016-07-26 4 views
0

私は、mysqlテーブルからイメージ名と実際のイメージをサーバーフォルダから削除するはずのコードを持っています。名前はデータベースから削除されますが、実際のイメージは削除されません。ループを使用して複数の画像のリンクを解除する

$sql_queryy = "SELECT imImage FROM gimage WHERE imID = '$chkbxk'"; 
$photoresultt = mysqli_query($connBiscup, $sql_queryy); 
//$row_album_images = mysqli_fetch_assoc($photoresultt); 

while ($row = mysqli_fetch_assoc($photoresultt)) { 

     unlink($target . $row[0]); 
     unlink($targett . $row[0]); 
} 

すべてのヘルプしてください

これは最初のコードだった:以下のコードです。

for($i=0; $i<$N;$i++){ 

      $chkbxk = $_POST['checkbox'][$i]; 

      $sql_queryy = "SELECT imImage FROM gimage WHERE imID = '$chkbxk'"; 
      $photoresultt = mysqli_query($connBiscup, $sql_queryy); 
      //$row_album_images = mysqli_fetch_all($photoresultt); 
      foreach ($row_album_images as $row) 
      { 
       unlink($target . $row[0]); 
       unlink($targett . $row[0]); 
      } 
} 

しかし、mysqlndの問題のため、私はwhileループに変更されました。

+0

$ targetと$ targettが正しいパスである場合、checoutフォルダのパーミッション。 –

+0

あなたのパスをエコーし​​て、正しい位置を指していることを確認することをお勧めします。 –

+1

そして 'mysqli_fetch_assoc'は連想配列btwを取り出します。 –

答えて

1

あなたは連想配列を返しますmysqli_fetch_assoc

mysqli_fetch_assocmysqli_fetch_arrayに変更する必要がある(すなわち['imImage'=>'img1']

mysqli_fetch_arrayは連想し、数値配列(すなわち[0=>'img1','imImage'=>'img1'])の両方を返します。

その他の場合 連想配列を使用するようにループ本体を書き換えることができます。

while ($row = mysqli_fetch_assoc($photoresultt)) { 

     unlink($target . $row['imImage']); 
     unlink($targett . $row['imImage']); 
} 
+0

ありがとう@アレイは配列をうまく動かしました。 –

関連する問題