Спустя 5 минут, 42 секунды (13.04.2011 - 13:54) Krevedko написал(а):
наверное не из бд, а из папки ты хочешь.
попробуй unlink
попробуй unlink
Спустя 2 минуты, 24 секунды (13.04.2011 - 13:57) m4a1fox написал(а):
Krevedko
Да.... точно. Удалять картинки из папки, потому что из БД оно удаляется.
Да.... точно. Удалять картинки из папки, потому что из БД оно удаляется.
Спустя 5 минут, 26 секунд (13.04.2011 - 14:02) Krevedko написал(а):
у меня оно удалялось, но как-то через раз. может кто скажет, из-за чего так бывает ?
сделал дополнительно скриптик чистки, который смотрит, есть ли "левые" файлы в папке, которых нет в базе и тогда вычищает нормально. вот даже готовый скриптик могу дать
сделал дополнительно скриптик чистки, который смотрит, есть ли "левые" файлы в папке, которых нет в базе и тогда вычищает нормально. вот даже готовый скриптик могу дать
$sql = "SELECT * FROM `pics`";
$res = mysqlQuery($sql, CONNECT);
if(mysql_num_rows($res) > 0)
{
while($row = htmlChars(mysql_fetch_assoc($res)))
$arr[] = $row['name'];
}
//Собираем массив файлов в директории
$dir = "../pics/";
if (is_dir($dir))
{
if ($dh = opendir($dir))
{
while (($file = readdir($dh)) !== false)
{
if(($file !=".") && ($file !=".."))
$files[] = $file;
}
closedir($dh);
}
}
//Определяем файлы, которые есть в директории, но нет в базе и удаляем их как лишние
$delete_values = array_diff ($files, $arr);
$text = '';
if(!empty($delete_values))
{
$text .= '<strong>Лишние файлы:</strong> <br /><br />';
foreach($delete_values as $value)
{
$filename = '../pics/' . $value;
unlink($filename);
$text .= $value . '<br />';
}
}
else
$text .= '<strong>Лишних файлов нет</strong>';
Спустя 24 секунды (13.04.2011 - 14:02) UnWind написал(а):
if(is_file($file)) {
unlink($file);
}
else {
echo 'Удаляемый файл ненайден';
}
Спустя 5 минут, 57 секунд (13.04.2011 - 14:08) UnWind написал(а):
Krevedko
Через раз это как ? Объясни по подробней, что бы я знал, что в первую очередь смотреть.
Через раз это как ? Объясни по подробней, что бы я знал, что в первую очередь смотреть.
Спустя 32 секунды (13.04.2011 - 14:09) Krevedko написал(а):
ну из базы удаляет, а из папки нет.
причину я так и не понял.
причину я так и не понял.
Спустя 9 минут, 18 секунд (13.04.2011 - 14:18) m4a1fox написал(а):
Собственно получилось реализовать удаление только одного файла, а если выбрать насколько то появляется ошибка... Если кто знает в чем подскажите...
Собственно код
Но выше есть еще вот такой код
То есть выбираем chekсbox'ы и по отмеченным удаляем строки из БД.
Вот так попытался реализовать
но скрипт отказался работать...
Собственно код
if(sizeof($_POST['photo']) > 0)
{
foreach ($_POST['photo'] as $photo)
{
unlink($photo);
}
Но выше есть еще вот такой код
if(sizeof($_POST['id']) > 0) { // если выбраны чекбоксы
foreach($_POST['id'] as $data) { // проходим циклом, все чекбоксы
mysql_query("DELETE FROM `photo_day` WHERE `id` = {$data} "); // удаляем, что надо
}
}
То есть выбираем chekсbox'ы и по отмеченным удаляем строки из БД.
Вот так попытался реализовать
if(sizeof($_POST['id']) > 0) { // если выбраны чекбоксы
foreach($_POST['id'] as $data) { // проходим циклом, все чекбоксы
mysql_query("DELETE FROM `photo_day` WHERE `id` = {$data} "); // удаляем, что надо
}
foreach ($_POST['photo'] as $photo)
{
unlink($photo);
}
}
но скрипт отказался работать...
Спустя 10 минут, 6 секунд (13.04.2011 - 14:28) UnWind написал(а):
Krevedko
В общем я вечером гляну, отпишусь в личку и тут с листингом.
В общем я вечером гляну, отпишусь в личку и тут с листингом.
Спустя 6 минут, 2 секунды (13.04.2011 - 14:34) Krevedko написал(а):
Цитата (UnWind @ 13.04.2011 - 11:28) |
Krevedko В общем я вечером гляну, отпишусь в личку и тут с листингом. |
скрипт, что я дал выше, удаляет все как надо
а тот, который барахлит, вот:
//Если нажата кнопка удаления, удаляем файлы и записи из БД
if(isset($_POST['delete']))
{
unset($_POST['delete']);
if(!empty($_POST))
{
foreach($_POST as $key => $value)
{
$filename = '../pics/' . $key;
unlink($filename);
}
$data = implode(",", $_POST);
$sql = "DELETE FROM `pics` WHERE `id` IN (" . $data . ")";
$res = mysqlQuery($sql, CONNECT);
//Кешируем все записи в файл, т.к. произошло их изменение
$path = '../cache/all.txt';
cache_id('pics', $path);
header('location: /admin/?action=delete');
die();
}
}
Спустя 52 минуты, 11 секунд (13.04.2011 - 15:26) UnWind написал(а):
Krevedko
Я уже это заметил
Хорошо, по ковыряюсь в этом, интересно стало.
Переменная $key у тебя содержит на сколько я понял имя файла взятое из базы ?
Я уже это заметил

Хорошо, по ковыряюсь в этом, интересно стало.

Переменная $key у тебя содержит на сколько я понял имя файла взятое из базы ?
Спустя 13 минут, 8 секунд (13.04.2011 - 15:40) Krevedko написал(а):
да. поэтому я и очищаю $_POST['delete'], чтобы в массиве не было этого ключа. ну смысл ты понял...
это админка, где чекбоксами отмечаются картинки, которые надо удалить. удаляет криво, поэтому я подстраховался зачищающим скриптом )
это админка, где чекбоксами отмечаются картинки, которые надо удалить. удаляет криво, поэтому я подстраховался зачищающим скриптом )
Спустя 8 минут, 29 секунд (13.04.2011 - 15:48) m4a1fox написал(а):
И все же вот этот код
удаляет одну фотку и строку выбранную в checkbox. Но если строк несколько.... как вот это
в массив засунуть?
if($_POST['delete']) { // если нажата кнопка в форме
$url = 'http://' . $_SERVER['HTTP_HOST'] . '/admin/photo_day.php';
if(sizeof($_POST['id']) > 0) { // если выбраны чекбоксы
foreach($_POST['id'] as $data) { // проходим циклом, все чекбоксы
mysql_query("DELETE FROM `photo_day` WHERE `id` = {$data} "); // удаляем, что надо
unlink($_POST['photo']);
}
}
удаляет одну фотку и строку выбранную в checkbox. Но если строк несколько.... как вот это
unlink($_POST['photo']);
в массив засунуть?
Спустя 5 минут, 37 секунд (13.04.2011 - 15:54) Krevedko написал(а):
unlink($data);
если у тебя фотки названы как id )
если у тебя фотки названы как id )
Спустя 10 минут, 10 секунд (13.04.2011 - 16:04) m4a1fox написал(а):
Krevedko
Да вот не как id (к сожелению...).
Да вот не как id (к сожелению...).
Спустя 17 минут, 58 секунд (13.04.2011 - 16:22) m4a1fox написал(а):
Вроде разобрался... всем спасибо за участие...