Попытка найти способ отображения из 2-х таблиц и 4-х строк и отображения за сегодня и порядка времени начала - PullRequest
0 голосов
/ 24 марта 2012

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

  • Таблица entry:

    id
    start_time
    End_time
    entry_type
    repeat_id
    room_id
    timestamp
    creat_by
    name
    
  • Таблица room:

    id
    disabled
    area_id
    room_name
    sort_key
    

В идеале я хочу прочитать столбцы start_time, room_id и name из таблицы entry. А также room_name из таблицы room.

Я все еще сплю, поэтому теперь я хотел бы, чтобы они были сгруппированы по соответствующим и записанным в html-таблице, сгруппированы как имя в одну строку / таблицу, а три других - в таблицу на одну строку ниже

         room name| start time |-|end_time|

Я пытался с этим, но не могу заставить его делать то, о чем я мечтаю.

 if (!mysql_connect($db_host, $db_user, $db_pwd))
    die("Can't connect to database");

if (!mysql_select_db($database))
    die("Can't select database");

// sending query
$result = mysql_query("SELECT * 
       FROM  $bookings
       WHERE start_time >= UNIX_TIMESTAMP(CURRENT_DATE) 
       AND   start_time < UNIX_TIMESTAMP(CURRENT_DATE + INTERVAL 1 DAY) 
       ORDER BY start_time, room_id");

if (!$result) {
    die("Query to show fields from table failed");
}

$fields_num = mysql_num_fields($result);

echo "<h1>Table: {$table}</h1>";
echo "<table border='1'><tr>";
// printing table headers
for($i=0; $i<$fields_num; $i++)
{
    $field = mysql_fetch_field($result);
    echo "<td>{$field->name}</td>";
}
echo "</tr>\n";
// printing table rows
while($row = mysql_fetch_row($result))
{
    echo "<tr>";

    // $row is array... foreach( .. ) puts every element
    // of $row to $cell variable
    foreach($row as $cell)
        echo "<td>$cell</td>";

    echo "</tr>\n";
}
mysql_free_result($result);
?>
</body></html>

Пожалуйста, помогите

1 Ответ

0 голосов
/ 24 марта 2012

Я не знаю про php, но думаю, что запрос должен выглядеть так:

SELECT start_time, bookings.name, rooms.room_name
FROM bookings
   inner join rooms
      on bookings.RoomID = rooms.RoomID
WHERE start_time >= UNIX_TIMESTAMP(CURRENT_DATE) 
AND start_time < UNIX_TIMESTAMP(CURRENT_DATE + INTERVAL 1 DAY) 
ORDER BY start_time, room_id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...