checkbox+удаление MySQL+сервер

$lider

Бывает
checkbox+удаление MySQL+сервер

Привет всем!
У меня есть код выборки из базы:
PHP:
<?
printf ("<td><input type=checkbox name=c[] value=%s>&nbsp;$x</td><td>&nbsp;&nbsp;<a href=\"../admin/forms/%s\">%s</a></td><td>&nbsp;%s</td></tr>\n", $myrow['id'], $myrow['file'], $myrow['subj'], $myrow['date']);
	$x++;
	}
	while ($myrow = mysql_fetch_array($result));
	};
	?>
Все это передается формой php скрипту, в котором нужно удалить из базы все строки где `id`=значениям из $c[], а так-же удалять с сервера файл $myrow['file'] (я думаю запрос по пришедшему id в $c[])
Вот мучаюсь, ну никак.
Наверно надо через if..do..while, но как подсчитать я не знаю.
Помогите плиз.
PHP:
$result = mysql_query("DELETE FROM `forms` WHERE `id`='$c[]'",$db);
unlink("../admin/forms/".$myrow['file']);
 

Crazy

Developer
вместо "$c[]" попробуй слить join'ом элементы массива в строку, разделив их запятыми.
 

shingrus

Guest
$query = "delete from table where id in (" .join(',',$c).")";
например
 

$lider

Бывает
$query = "delete from table where id in (" .join(',',$c).")";
Опаньки, этот запрос выгорел, теперича надо с удаление файлов разобраться.
Как посоветуете-
-передавать в скрытом поле из формы в масиве имена
-или делать выборку уже в скрипте перед удалением из базы
????
(удалять буду через unlink("../admin/forms/".здеся имя);
 

shingrus

Guest
Автор оригинала: $lider
Как посоветуете-
-передавать в скрытом поле из формы в масиве имена
-или делать выборку уже в скрипте перед удалением из базы
????
(удалять буду через unlink("../admin/forms/".здеся имя);
имена файлов передавать от клиента!!!!!!!!!!:eek:
изыди!!!! чур меня, чур!!!!!!!!!!
 

$lider

Бывает
просто инфа.

Автор оригинала: Demiurg
[m]join[/m]
[m]implode[/m]
Я почитал.
Раньше я пользовал implode для разбития имя файла на куски, шоб на сервак не аплодили всякого мусора, акромя картинок.
 

Demiurg

Guest
>Раньше я пользовал implode для разбития имя файла на куски,
может explode ?
>Как посоветуете-
>-передавать в скрытом поле из формы в масиве имена
>-или делать выборку уже в скрипте перед удалением из базы
явно второе.
 

shingrus

Guest
Re: просто инфа.

Автор оригинала: $lider
Я почитал.
Раньше я пользовал implode для разбития имя файла на куски, шоб на сервак не аплодили всякого мусора, акромя картинок.
а это как тебе помогало-то?
 

$lider

Бывает
имена файлов передавать от клиента!!!!!!!!!!
изыди!!!! чур меня, чур!!!!!!!!!!
Значиться еще один запрос к базе перед $query = "delete from table where id in (" .join(',',$c).")";, где я имена выцеплять буду.
 

$lider

Бывает
Re: Re: просто инфа.

Автор оригинала: shingrus
а это как тебе помогало-то?
$tp=explode(".", $userfile_name);
$x = strtolower($tp[1]);
Переменная возвращает все, что есть в $tp[1](тоесть расшерение)
Я согласен, если у файла двойное расшерение, то его отфудболят.
Но все проходит через админа, так-что для защиты от "супер" хацкеров прокатит ;)
 

shingrus

Guest
Re: Re: Re: просто инфа.

Автор оригинала: $lider
$tp=explode(".", $userfile_name);
$x = strtolower($tp[1]);
Переменная возвращает все, что есть в $tp[1](тоесть расшерение)
во-первых взять можно preg()'ом
проверять тип файла по его названию - это есть архинеправильно!!!!
 

$lider

Бывает
Re: Re: Re: Re: просто инфа.

Автор оригинала: shingrus
во-первых взять можно preg()'ом
проверять тип файла по его названию - это есть архинеправильно!!!!
Ну ведь все функции знать неможливо.
Что знал на то время, то и использовал ;-)
А вообще у наших людей с фантазией всегда все 100%
 

$lider

Бывает
Шота я от темы ушел.
Значит так:
скрипт получает массив с id, потом я
PHP:
if (!empty($с))//есть ли шота в масиве
{
//$t=count($c);//посчитали скока элементов в масиве(а зачем???)
$result = mysql_query("SELECT * FROM `forms` WHERE `id` in (" .join(',',$c).")",$db);
$myrow = mysql_fetch_array($result);
unlink("../admin/forms/".$myrow[file]);
}
else
{
};
Верна-ли конструкция????????
 

shingrus

Guest
Автор оригинала: $lider
Шота я от темы ушел.
Значит так:
скрипт получает массив с id, потом я
PHP:
if (!empty($с))//есть ли шота в масиве
{
//$t=count($c);//посчитали скока элементов в масиве(а зачем???)
$result = mysql_query("SELECT * FROM `forms` WHERE `id` in (" .join(',',$c).")",$db);
$myrow = mysql_fetch_array($result);
unlink("../admin/forms/".$myrow[file]);
}
else
{
};
Верна-ли конструкция????????
неа... удалится только один файл...
мануал посмотри... там написано как в цикле выбоать все строки
 

$lider

Бывает
неа... удалится только один файл...
мануал посмотри... там написано как в цикле выбоать все строки
У меня ваще ничего не удаляет.
а как бы исхитриться через if..do..while, где в качестве щета использовать $t=count($c);
???
 
Сверху