Создайте HTML-таблицу, подобную этой - PullRequest
1 голос
/ 10 января 2010

У меня есть таблица в БД, в которой есть сообщения, которыми обмениваются группы, и мне нужно создать такую ​​таблицу (сообщения, которыми обмениваются две группы):

Таблица таблиц с именами групп и количеством сообщений между именами групп http://www.freeimagehosting.net/uploads/10b1fb8eeb.jpg

зная, что Gr1, .... являются именами групп из БД, а номера тоже из БД.

Отредактировано для добавления запроса sQL (заданного Сарой в комментариях ниже):

(SELECT COUNT( Msg_ID ) AS msgcount, Group_ID, To_Group_ID FROM messages GROUP BY Group_ID, To_Group_ID)

Ответы [ 3 ]

0 голосов
/ 11 января 2010

Поместите результаты вашего запроса в массив как

$query = mysql_query('SELECT from_group, to_group, value FROM table')
while($row = mysql_fetch_array($query))
    $results[$row['from_group']][$row['to_group']] = $row['value'];

Затем выполните итерацию по массиву, чтобы сгенерировать заголовок таблицы, например

echo "<table><tr>'"
foreach ($results as $group => $group_array)
  echo "<td>$group</td>";
echo "</tr>";

Затем повторите итерацию для построения полей:

foreach ($results as $from_group => $from_group_array)
{
  echo "<tr><td>$from_group</td>";
  foreach ($from_group_array as $cell_value)
     echo "<td>$cell_value</td>";
  echo "</tr>";
}

Наконец-то закончим стол, конечно.

Этот пример быстро составлен, чтобы дать представление о том, как действовать, и, вероятно, содержит ошибки ... И наверняка его можно написать намного лучше!

0 голосов
/ 11 января 2010

Если ваша проблема связана с HTML, вы можете использовать атрибут "colspan". Я сделал пример здесь:

        <table border="1px" cellpadding="4">
            <tr>
                <th colspan="2">Global status</th>
                <th>Title here</th>
                <th>Title here</th>
                <th>Title here</th>
                <th>Title here</th>
            </tr>
            <tr>
                <td>text</td>
                <td>text</td>
                <td>text</td>
                <td>text</td>
                <td>text</td>
                <td>text</td>
            </tr>
            <tr>
                <td>text</td>
                <td>text</td>
                <td>text</td>
                <td>text</td>
                <td>text</td>
                <td>text</td>
            </tr>
        </table>

Вы можете стилизовать больше, используя CSS, но это вторая часть. Я надеюсь, что я помог вам. Удачи

0 голосов
/ 10 января 2010

Здесь, без наворотов. Замените «CELL» своим содержанием:

<table>
  <tr>
     <td>CELL</td>
     <td>CELL</td>
     <td>CELL</td>
     <td>CELL</td>
  </tr>
  <tr>
     <td>CELL</td>
     <td>CELL</td>
     <td>CELL</td>
     <td>CELL</td>
  </tr>
  <tr>
     <td>CELL</td>
     <td>CELL</td>
     <td>CELL</td>
     <td>CELL</td>
  </tr>
</table>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...