Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 27.01.2013
Сообщений: 31
1

Два while и итерация

27.03.2013, 12:41. Показов 1009. Ответов 1
Метки нет (Все метки)

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

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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>";
    }
Миниатюры
Два while и итерация  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.03.2013, 12:41
Ответы с готовыми решениями:

Итерация полей объекта
&lt;?php $obj = (object) array('0s' =&gt; 'a', 1 =&gt; 'b', 2 =&gt; 'c'); foreach($obj as $key =&gt;...

Последняя итерация foreach
Как определить последнюю итерация foreach? Задача в операторе foreach определить последнюю...

Foreach - каждая вторая итерация с пустым значением
$request = 'SELECT `category` FROM `'.$table.'` GROUP BY `category` HAVING count(*)&gt;1;'; $result...

Объясните пожалуйста почему когда так ($_SESSION['count']++ ) итерация не продолжается?
Здравствуйте всем. объясните пожалуйста почему когда так ($_SESSION++ ) итерация не продолжается?...

1
Невнимательный
2597 / 974 / 321
Регистрация: 08.02.2013
Сообщений: 5,722
Записей в блоге: 2
27.03.2013, 16:56 2
Похоже на то что вместо вложенного while должно быть
PHP
1
2
3
4
5
do{
/*
.............
*/
}while($data = pg_fetch_array($res));
если правильно понял
0
27.03.2013, 16:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.03.2013, 16:56
Помогаю со студенческими работами здесь

Если ввести один символ, то итерация цикла выполняется сразу два раза подряд
while (getchar()) printf(&quot;Итерация цикла.\n&quot;); Если ввести 1-ин символ, то итерация цикла...

Итерация
Здравствуйте! for(i=0.1; i&lt;=n; i+=0.1) { cout &lt;&lt; i &lt;&lt; &quot; &quot;; } ...

Итерация
Есть программа для итерационного метода (вариант 2) Но неправильно условие until Не могли бы...

Итерация
Помогите пожалуйста! Задание. Составить программу вычисления значения функции, разложенной в ряд...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru