Показать сообщение отдельно
  #1 (permalink)  
Старый 28.09.2012, 10:52
Аспирант
Отправить личное сообщение для Allan Stark Посмотреть профиль Найти все сообщения от Allan Stark
 
Регистрация: 24.04.2010
Сообщений: 87

Определение последней итерации цикла.
Здравствуйте.
Имеется сценарий php, он делает ряд запросов к БД Firebird, на основании которых формирует довольно сложный (большое кол-во вложенности, разная структура "чилдренов") json вывод для скрипта на стороне клиента.

Вывод ведется на основании echo() из выборки по ibase_fetch_row(), т.е. сразу в поток, без предварительного формирования массивов и json_encode().

Вопрос.
Как исхитриться и определить конец последней итерации в каждом из циклов вида while ($row = ibase_fetch_row($db_fb_query)) {...} ?
Управляющие конструкции и условие по сравнению типа end() или next() по примеру http://dycore.blogspot.com/2010/03/foreach-php.html тут не катят, т.к. работаем не с массивом.

Определение последней итерации необходимо, чтобы выяснить, ставить ли в конце после некоторых "}" символ запятой или нет.

Создавать многомерные вложенные массивы и строить деревья будет сложновато, т.к. сценарий будет в будущем неоднократно модифицироваться. Выводить сперва в строку, а затем тримить ее справа на "," и затем отдавать в эху - тоже не совсем хорошо, строки могут быть очень длинные, потенциально можно упереться в прекомпиленное значение длины строкового типа 65539 на каком-нибудь хостинге...
Ответить с цитированием