-
Вебмастеру
(
http://forum.oszone.net/forumdisplay.php?f=22)
darksmoke |
17-08-2008 22:11 877357 |
Удаление файлов из БД и сервера
передаем в этот скрипт такие значения Array ( [check] => Array ( [0] => 16 ) [del] => Удалить )
чек - это чекбоксы выбранные .
Мне надо удалить те файлы которые выбраны в чекбоксах с сервера и из БД.
не как не могу это реализовать, помогите!
PHP код:
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 877391 |
Не знай, что сказать darksmoke, может подскажут знающие, ребята отзовитесь ооогромная просьба.
|
vadimiron |
18-08-2008 00:13 877426 |
darksmoke,
А в чём проблема то?? Всё выглядет на первый взгляд ОК..... Опишите проблему конкретней: что не получается...какие ошибки PHP показывает??
|
darksmoke |
18-08-2008 00:58 877438 |
то что в while должно стоять не echo, а unlink и должно удалять ровно столько записией иф айлов сколько выбрано чекбоксов, а оно через while удалят все записи.
Или если оставить так, то тогда $row['Path'] который после while, не знает он его . Нет такой переменной, пустая она. И как результат с базы удаляет, а файл нет.
|
timon4ik |
18-08-2008 09:22 877570 |
Цитата:
Цитата darksmoke
$row['Path'] который после while, не знает он его . Нет такой переменной, пустая она. »
|
Правильно, ведь когда функцией mysql_fetch_array($result) достигается конец массива, в $row записывается false.
Цитата:
Цитата darksmoke
то что в while должно стоять не echo, а unlink »
|
Ну а если так и написать, вместо echo $row['Path'] написать unlink($del.$row['Path']), то что происходит?
|
darksmoke |
18-08-2008 10:37 877629 |
PHP код:
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 877771 |
Цитата:
Цитата darksmoke
select from `books` where `ID`='$ID »
|
может
Цитата:
select * from `books` where `ID`='$ID »
|
|
darksmoke |
18-08-2008 15:01 877819 |
Точно, спасибо большое!!!
|
vadimiron |
18-08-2008 15:58 877866 |
darksmoke,
А для оптимизации лучше выберайте только те столбцы, которые нужны, то есть
Код:
select ID, Path from `books` where `ID`='$ID
|
darksmoke |
19-08-2008 00:10 878215 |
еще раз спасибо!
я новичек.. разбираюсь по книги, за любой совет благодарен!
|
Время: 16:29.
© OSzone.net 2001-