Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: создание файлов для каздых 10 записей
Покинул форум
Сообщений всего: 481
Дата рег-ции: Окт. 2011
Помог: 0 раз(а)
в общем из базы выводится 735 строк......нужно разбить все эти строки по 10 строк и создать столько файлов......то есть должно получится 74 файла......во всех кроме последнего будет по 10 строк записано, а в последний 5......тут нужно как то через циклы сформировать и создать эти файлы......помогите плз...
я так понимаю нужно пройти 10 строк, и создать файл, потом опять 10 строк и файл и так до конца....
Denkill
Отправлено: 12 Августа, 2013 - 12:44:51
Посетитель
Покинул форум
Сообщений всего: 330
Дата рег-ции: Янв. 2013 Откуда: Барнаул
тут мы проходим по всем 735 записям.....
дале в этом цикле доходя до каждой 10 записи мы создаем файл, ну и для последних 5 записей тоже файл, ведь у нас 735 записей......кстате в базе постоянно записи добавляются......по этому щас записей 735, а завтра уже может быть 843...... (Добавление) avtor.fox ого) как то сложно написали)
avtor.fox
Отправлено: 12 Августа, 2013 - 12:56:32
Постоянный участник
Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012 Откуда: Воронеж
Помог: 50 раз(а)
MBmusic пишет:
как то сложно написали)
немного упростил. и что сложного?
MBmusic
Отправлено: 12 Августа, 2013 - 12:59:22
Посетитель
Покинул форум
Сообщений всего: 481
Дата рег-ции: Окт. 2011
Помог: 0 раз(а)
а вот такой вопрос......вот у меня в цикле теперь по 10 записей будет добавлятся......то есть 10, 20, 30 ......и мне терь нужно давать имена файлам, ну то есть для первых 10 это файл №1, для вторых 10 файл №2 и так далее......то есть у меня будет так: 1, 2, 3 ... 75
avtor.fox
Отправлено: 12 Августа, 2013 - 13:03:53
Постоянный участник
Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012 Откуда: Воронеж
Помог: 50 раз(а)
MBmusic, в чём собственно вопрос? В моём примере всё это есть. И ежели имеется остаток больше нуля и меньше 10, то он тоже запишется в файл.
DelphinPRO
Отправлено: 12 Августа, 2013 - 13:17:08
Активный участник
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Когда нормальный человек, уезжая из дома одевает на жену пояс верности, веб-дизайнер ставит на нее счетчик...
EuGen
Отправлено: 12 Августа, 2013 - 13:45:22
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
avtor.fox пишет:
надо углубиться в ресурсозатраты рекурсивного обхода и прочих штук, которые работают с массивами и тому подобным. а то советую тут)
Что тут углубляться. Вы создаёте:
* Копию данных в array_chunk (по объёму чуть больше, чем сами данные, за счёт накладных расходов)
* Полный диапазон чисел от 0 до максимума (в range)
* Копию куска данных в каждой итерации по разбиению через array_chunk
Итог: данные + копия + K * копия/K + диапазон = O(4N)
Для небольших объемов это подойдёт, но при счёте хотя бы на сотни тысяч стоит задуматься.
Работа с набором записей, работа с файлами, работа с потоками - всё это те случаи, когда обрабатывать их массивами, в общем случае (то есть при неизвестных объемых входных данных) - плохая идея.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
avtor.fox
Отправлено: 12 Августа, 2013 - 14:17:34
Постоянный участник
Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012 Откуда: Воронеж
Помог: 50 раз(а)
EuGen пишет:
Для небольших объемов это подойдёт, но при счёте хотя бы на сотни тысяч стоит задуматься.
Естественно. Но думаю, что нужды ТС до этого не дойдут.
Но мой вопрос немного в другом.
Я всегда отталкиваюсь от количества данных, которые необходимо обработать. Знаю, что вывод постов идёт по 10 штук на страницу (например) и обрабатываю пришедшие данные, допустим, функцией array_walk. А большее количество данных уже обхожу foreach, так как он работает не с их копией, а с исходным массивом (насколько я знаю).
Так вот. Как работать и с чем работать — непосредственный выбор разработчика? Панацея ли следить за лишними тремя или четырьмя тысячными секунды и 20kB в пользу более "неинтересной" обработки данных? Не говорим о многомиллионных записях, а так, пара тысяч.
EuGen пишет:
то есть при неизвестных объемых входных данных
В нашем же случае неизвестно сколько будет строк на выходе, но мы можем контролировать их поведение условием. Наверно вопрос о возможном количестве строк и получается, что лучше их обработать в
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.