内の項目を「eachingため」、それが動作します:というのforeach()ではない、私はこれを行う場合は、配列PHP
$data_array2 = mysql_query("SELECT pic_loc FROM pictures WHERE user_id = '".$id."'");
$cell_pictures = mysql_fetch_array($data_array2);
foreach($cell_pictures as $pics_being_deleted)
{
unlink($pics_being_deleted);
}
問題は、上記のコードは、それが毎回それのための新しいMySQLクエリを実行意味でネストされていることですリンク解除機能を実行するので、私はそれはそれをしないにするために以下のコードを作っ:
$the_pics_raw_2 = array();
$data_array2 = mysql_query("SELECT pic_loc FROM pictures WHERE user_id = '".$id."'");
while($cell_pictures = mysql_fetch_array($data_array2))
{
$the_pics_raw = $cell_pictures['pic_loc'];
$the_pics_raw_2[] = $the_pics_raw;
}
$the_pics_raw_3 .= " \"../../". implode("\" , \"../../" ,$the_pics_raw_2)."\"";
$the_pics = array($the_pics_raw_3);
foreach($the_pics as $pics_being_deleted)
{
unlink($pics_being_deleted);
}
私はお返しにこのエラーが表示されます。
Warning: unlink("../../users/biondizzle/photos/pic_3387677.png" , "../../users/biondizzle/photos/pic_1581185.png") [function.unlink]: No such file or directory
foreach()
は "foreaching"ではないので、それは明らかに"../../users/biondizzle/photos/pic_3387677.png" , "../../users/biondizzle/photos/pic_1581185.png"
ディレクトリを見つけることはないでしょう。
unlink()
を別々に実行する方法は、配列にリストされているディレクトリごとに、implode()
でカンマと引用符を追加して動作させると思いますか? おかげでたくさんは、私はそれが十分 -Mike
我々がループしている正確に何を見ることができるようにあなたは、foreachループの前に$ the_pics上のvar_dumpを行うことができますか? –
'$ the_pics_raw = $ cell_pictures ['pic_loc'];を' $ the_pics_raw = '../../'.$ cell_pictures [' pic_loc ']; 'に変更する' $ the_pics_raw_2 [] = $ the_pics_raw; ' $ the_pics_raw_3。= "\" ../../ "。implode(" \ "、\" ../../ "、$ the_pics_raw_2)を削除します。 \ ""; $ the_pics = array($ the_pics_raw_3); 'あなたのコードはうまくいくはずです。 – DaveRandom
VAR DUMP:array(1){[0] =>文字列(98) "" ../../users/biondizzle/photos/pic_3387677.png "、" ../../users/biondizzle/photos/ pic_1581185.png ""} – user1053263