Как я могу показать этот результат MySQL в HTML-таблице?

Редактировать: эй люди, я уже использую php, я не хотел это спрашивать. Я спрашивал, как я могу отобразить 3-колонный результат MySQL в 8-колоночной HTML-таблице

--work table--                                               --crew table--

date           |   hours                                     date   |    name   
2013-02-03(Sun)     8                                    2013-02-03     john
2013-02-04(Mon)     7                                    2013-02-03     sam 
                                                         2013-02-03     peter
                                                         2013-02-04     john
                                                         2013-02-04     sam

У меня есть эти 2 таблицы, чтобы вести учет часов, отработанных сотрудниками.
мне нужно показать эти данные в виде расписания.

Но как мне показать 8 столбцов в этой HTML-таблице ниже?

Я имею в виду, предположим, если вы запустите этот запрос:

SELECT hours, name, DAYNAME(work.date) day
FROM work 
LEFT JOIN crew ON work.date = crew.date
WHERE WEEK(work.date) = 5

это покажет 3 столбца. Так как мне построить эту HTML-таблицу?

Этот результат MySQL для

hours    name    day
  8      john   Sunday
  8      Sam    Sunday
  8      Peter  Sunday
  7      John   Monday
  7      Sam    Monday

это HTML-таблица (как?)

Name    Sunday   Monday  Tuesday..(day name can be written in html)
John      8        7       ...
Sam       8        7       ...
Peter     8        -       ...

2 ответа

Изменить это....... если вы используете php

<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("my_db", $con);

$result = mysql_query("SELECT * FROM Persons");

while($row = mysql_fetch_array($result))
  {
  echo $row['FirstName'] . " " . $row['LastName'];
  echo "<br />";
  }

mysql_close($con);
?>

Предупреждение: я не программист PHP, поэтому ниже приведен псевдокод, в лучшем случае содержащий много синтаксических ошибок (не говоря уже о пропущенной обработке ошибок или даже HTML-разметке). Я надеюсь, что в любом случае идея приходит в голову. Любой, не стесняйтесь редактировать

$result = mysql_query("query here");

// a double nested array
// $weekdays['Sunday']['Peter'] will be the hours peter working on sunday 
$weekdays = [];
// a list of all persons in the table
$persons = [];

while($row = mysql_fetch_array($result))
{
  $hours = $row[0];
  $person = $row[1];
  $weekday= $row[2];

  if (!$weekdays[$person]) {
     $weekdays[$person] = [ $person => $hours ];
  } else {
     $weekdays[$person][$weekday] = $hours;
  }
  if (! $person in $persons) {
    $persons[] = $person;
  }
}

// then unroll in two loops
for ($person in $persons) {
  print '<tr><td>'.$person.'</td>'
  for ($weekday in [ "Sunday", "Monday", ...]) {
     print '<td>'.$weekdays[$weekday][$person].'</td>'
  }
  print '</tr>'
}
Другие вопросы по тегам