1-Сканирование директории + запись

Печать RSS
176

М
Автор
Пацак
0
Как сделать сканирование папки красиво?)
Тоесть надо содержимое папки занести в бд.
А в папке еще папки и файлы.

И чтобы не заносить по одной папке в бд, как сделать чтобы просканировал,
а потом запросом занес?
Ну тоесть, чтобы неделать тысячи запросов

Добавлено через 00:27 сек.
Чтобы было меньше вопросов
13:54]anabolik
пиши в массив, потом заимплодь и вставь в запрос

13:57]ofRoke
это то, что мне первое пришло в голову.
но, вот у меня вложенность указывается по id.
тоесть
papka - id1
и если в папка `papka` содержит файлы / папки, то им присваивается в поле `fid` - id от `papka`

13:57]ofRoke
и тем самым мне надо, узнать insert_id и потом заносить) вот в чем проблемка
K

Транклюкаторщик
0
в сеа хорошая функция, до сих пор ничего лучшего не придумал
<?
# листинг папки
function scaner($path)
{

static $f_arr;
$arr = glob($path.'/*');

foreach($arr as $vv){

if(is_dir($vv)){
$f_arr[] = $vv.'/';
scaner($vv);
}
else{

$f_arr[] = $vv;

}
}

return $f_arr;
}
?>
Изменил: KOZZ (15.01.2011 / 16:46)
М
Автор
Пацак
0
ты видимо внятно невчитался в вопрос)
я некак сканировать спрашиваю, а как это все просканированное в бд занести? тоесть при сканировании..
и обойдясь 1-2 запросами.. но не тысячами
K

Транклюкаторщик
0
3, правда не вник...
имхо никак ... если только как то эти записи записать в файл как дамп, а потом импортить автоматически, но только в принципе это одно и тоже выйдет
----
а то что тебе тот парень предложил - это сделать один офигенный запрос типа:
mysql_query("insert into table values(`id1`,`name1`...);insert into table values(`id2`,`name2`...);");
----
смысл менять рыло на мыло?
Изменил: KOZZ (15.01.2011 / 17:00)
В

Чатланин
0
Дык ты хочешь, чтоб в базе как оно выглядело вообще?
Если одна папка = одна запись, то в любом случае придётся для каждой записи запрос INSERT выполнять. И если 1000 папок = 1000 записей, то будет 1000 запросов INSERT
М
Автор
Пацак
0
5, в том и дело. а мне ненадо, чтобы было 1000запросов. +)
Представь школохост, что с ним будет?)) xD
K

Транклюкаторщик
0
6. ofroke, никак не избежать этого
mysql_query() то может быть и один, а insert'ов 1000, суть если и изменится то немного ))
юзай sleep(), давай хосту передохнуть E
Изменил: KOZZ (15.01.2011 / 17:03)
В

Чатланин
0
А что школохост? Такие операции чаще одного раза в день(,месяц,год) делать не нужно.. если нужно, то скрипт паршиво написан значит..
А с одного раза ничего не будет.
М
Автор
Пацак
0
sleep самый вариант добавить ;/
больше хз
В

Чатланин
0
ну как вариант, сделай, чтоб после добавления 100 папок в базу, скрипт выключался. А при следующем включении, чтоб продолжил с того же места работу. И запускай его по cron раз в час.
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск