как при помощи php и mysql это сделать

И всё прочее, что касается HTML
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Гость
проходил мимо

как при помощи php и mysql это сделать

Непрочитанное сообщение Гость » 2010-06-11 9:01:53

идет запрос в mysql сразу к 3-м таблицам. В цикле while выводится табличка с результатами запроса. Вся таблица представляет собой состояния некоторых событий(например событие №1 имеет несколько сток в результате запроса, событие №2 тоже произвольное кол-во строк). Каждое событие имеет свой ID, описание, время, статус, тип(это и есть ячейки таблицы). Для одного события статус и тип одинаковы. Что надо сделать, чтобы ячейки со статусом и типом отображались только один раз для одного ID?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: как при помощи php и mysql это сделать

Непрочитанное сообщение ProFTP » 2010-06-13 5:52:31

похоже вроде бы на

Код: Выделить всё

GROUP By id
чтоли?
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

rmn
старшина
Сообщения: 427
Зарегистрирован: 2008-10-03 18:52:02

Re: как при помощи php и mysql это сделать

Непрочитанное сообщение rmn » 2010-06-13 22:22:01

как-то так. Ячейки в первом столбце группируются по номеру id:

Код: Выделить всё

$result = mysql_query("... ORDER BY id");
$values = array();
while($row = mysql_fetch_assoc($result))
{
    $values[] = $row;
}

for ($i=0; $i<count($values); )
{
    $id_count = 1;
    $current_id = $values[$i]['id'];
    for($j=$i+1; $j<count($values); $j++)
    {
        if ($values[$j]['id'] == $current_id)
            $id_count++;
        else
            break;
    }

    echo "<tr>\n\t<td rowspan=" . $id_count . ">" . $values[$i]['id'] . "</td>\n";
    for($j=0; $j<$id_count; $j++)
    {
        echo "\t<td>" . $values[$i + $j]['col1'] . "</td>\n";
        echo "\t<td>" . $values[$i + $j]['col2'] . "</td>\n";
        ...
        echo "\t<td>" . $values[$i + $j]['colN'] . "</td>\n";
    }
    echo "</tr>\n";
    $i += $id_count;
}