Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Два while и итерация 
:(
    Опции темы
Jops
Дата 27.3.2013, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 31.1.2013

Репутация: нет
Всего: нет



Здравствуйте уважаемые!
Проблема в следующем:
Есть два while (один в другом). 
Первый строит первые две ячейки таблицы в строке.
Второй наполняет третью ячейку данными на основе ID (сверяется с данными из первого while) из выборки.
Ну а суть проблемы очевидна:
Второй while начинает итерацию со второй строки (следовательно, данные из первой строки, относящиеся по ID, не выводятся), а при последующих с третьей (и не меняя строки идёт до конца)
Надо поменять конструкцию. Полдня перебирал статьи, но ни чего так и не смог примастрячить. 
Работа с pg_fetch_array на лицо и всем известна (отсюда и проблемы), но на что заменить, не доходит
Помогите советом, а лучше кодом, если есть желание.
Ниже код и рисунок таблицы (как есть и как надо).
Благодарю, всех кто откликнется!

Код

while ($data = pg_fetch_array($res)) {
            $idsu = $data['user_id'];
                echo "<tr>
                        <td>{$data['count']}</td>
                        <td>" . sprintf($links[$data['call_type']]['user'], $data['user_id'], $data['user_name']) . "</td>";
            ?>
            <td>
                <? 
                while($data = pg_fetch_array($res)){
                    
                    if (in_array($data['call_type'], array(1, 2 ))) {
                $xml = simplexml_load_string($data['comm']);
                $data['comm'] = array();
                foreach ($xml->phrase as $phrase) {

                    if (!empty($phrase->comm)) {
                        $data['comm'][] = sprintf('<span title="%s" class="t-line">%s</span>', $phrase->comm, $phrase->title);
                    } else {
                        $data['comm'][] = $phrase->title;
                    }
                }
                $data['comm'] = implode(', ', $data['comm']);
            }
                    if($idsu === $data['user_id'] ){
                        echo " {$data['comm']} <br>";
                    }else{
                        break;
                    }
                }?>
            </td>
            <?
            echo"<td><a href='?action=report&type=inc_calls_period_info&id=$idsu&start=$start&end=$end' 
                target='_blank'>Просмотр</a></td>";
    }


Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  Таблица.jpg 81,14 Kb
PM MAIL   Вверх
bars80080
Дата 27.3.2013, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



надо всего лишь отделить сбор данных от выдачи

вначале сливаете в массив всю выборку, а потом уже крутитесь с ней как хотите
PM MAIL WWW   Вверх
Jops
Дата 27.3.2013, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 31.1.2013

Репутация: нет
Всего: нет



Пожалуйста, если не сложно, по подробнее. Беда с массивами)
PM MAIL   Вверх
bars80080
Дата 27.3.2013, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Код

$result = array(); $i = 0;
while ($data = pg_fetch_array($res)) {
    $result[$i] = $data; $i++;
}
$result_count = $i;


и далее идёт твой кусок кода, где первый while меняешь на

Код

for($i = 0; $i < $result_count; $i++) {
    $data = $result[$i];


а второй на 

Код

for($j = 0; $j < $result_count; $j++) {
    $data2 = $result[$j];


и далее суёшь их как надо, куда надо и т.п.
PM MAIL WWW   Вверх
Jops
Дата 27.3.2013, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 31.1.2013

Репутация: нет
Всего: нет



Спасибо! Попробую!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0881 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.