Проблема в следующем:
Есть два 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>";
}