Показать полную графическую версию : [решено] Удаление файлов из БД и сервера
darksmoke
17-08-2008, 22:11
передаем в этот скрипт такие значения Array ( [check] => Array ( [0] => 16 ) [del] => Удалить )
чек - это чекбоксы выбранные .
Мне надо удалить те файлы которые выбраны в чекбоксах с сервера и из БД.
не как не могу это реализовать, помогите!
if(isset($_POST['del']))
{
if(!isset($_POST['check']))
{
echo "Не выбрана не одна книга!";
}
else
{
$del = "./books/";
foreach($_POST['check'] as $ID)
{
//удаляем записи
$result = mysql_query("select from `books` where `ID`='$ID'");
while ($row = mysql_fetch_array($result)) {
echo $row['Path'];
}
unlink($del.$row['Path']);
$sql_books_del = mysql_query("delete from `books` where `ID`='$ID'");
echo "Книга удалена.";
}
}
dima1981
17-08-2008, 23:09
Не знай, что сказать darksmoke, может подскажут знающие, ребята отзовитесь ооогромная просьба.
vadimiron
18-08-2008, 00:13
darksmoke,
А в чём проблема то?? Всё выглядет на первый взгляд ОК..... Опишите проблему конкретней: что не получается...какие ошибки PHP показывает??
darksmoke
18-08-2008, 00:58
то что в while должно стоять не echo, а unlink и должно удалять ровно столько записией иф айлов сколько выбрано чекбоксов, а оно через while удалят все записи.
Или если оставить так, то тогда $row['Path'] который после while, не знает он его . Нет такой переменной, пустая она. И как результат с базы удаляет, а файл нет.
timon4ik
18-08-2008, 09:22
$row['Path'] который после while, не знает он его . Нет такой переменной, пустая она. »
Правильно, ведь когда функцией mysql_fetch_array($result) достигается конец массива, в $row записывается false.
то что в while должно стоять не echo, а unlink »
Ну а если так и написать, вместо echo $row['Path'] написать unlink($del.$row['Path']), то что происходит?
darksmoke
18-08-2008, 10:37
foreach($_POST['check'] as $ID)
{
$result = mysql_query("select from `books` where `ID`='$ID'");
//удаляем записи
while ($row = mysql_fetch_array($result)) {
unlink($del.$row['Path']);
$sql_books_del = mysql_query("delete from `books` where `ID`='$ID'");
echo "Книга удалена.";
}
}
пишет: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in Z:\home\allbooks\www\books_delete.php on line 28
строка 28: $result = mysql_query("select from `books` where `ID`='$ID'");
vadimiron
18-08-2008, 13:47
select from `books` where `ID`='$ID »
может
select * from `books` where `ID`='$ID »
darksmoke
18-08-2008, 15:01
Точно, спасибо большое!!!
vadimiron
18-08-2008, 15:58
darksmoke,
А для оптимизации лучше выберайте только те столбцы, которые нужны, то есть
select ID, Path from `books` where `ID`='$ID
darksmoke
19-08-2008, 00:10
еще раз спасибо!
я новичек.. разбираюсь по книги, за любой совет благодарен!
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.