2012-04-12 45 views
0

我遇到了將用戶的某些調度信息轉換爲管理員可以編輯的表的問題。轉換此調度信息

的方式我的數據庫安裝,現在,它看起來像:

user_id | day_of_week | start_time | end_time 
12  | Monday  | 8:00  | 12:00 
12  | Tuesday  | 8:00  | 12:00 
12  | Wednsday  | 8:00  | 12:00 
12  | Thursday  | 8:00  | 12:00 
12  | Friday  | 8:00  | 12:00 
12  | Saturday  | 8:00  | 12:00 

但隨着隨機的時間 - 不,這很重要。每個用戶在數據庫中有7行。

無論如何,當我從我的數據庫拉着我得到的對象的每一行,看起來像一個數組,一個:

stdClass Object ([user_id] => 12 [day_of_week] => Sunday [start_time] => 00:00:00 [end_time] => 00:00:00) 
stdClass Object ([user_id] => 12 [day_of_week] => Monday [start_time] => 00:00:00 [end_time] => 00:00:00) 

我想顯示的數據,每個用戶的方式有一行,該表的列將是用戶,星期一,星期二等。我有麻煩提出如何做到這一點,雖然?

如果有人能指引我正確的方向或給我一些關於這個想法的想法,那就太好了。謝謝。

編輯:

的我想要實現

User_id | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday | Sunday 
12  | 8 - 12 | 8 - 12 | 8 - 12 | 8 - 12 | 8 - 12 | 8 - 12 | 8 - 12 
13  | 6 - 11 | 8 - 13 | 8 - 15 | 6 - 14 | 9 - 11 | 8 - 22 | 8 - 23 

如果每個用戶都有一個一行,顯示當他們被安排在每週的那一天時的一個例子。

+0

列(或字段)應該是User,Monday_start_time,Monday_end_time,Tuesday_start_time等等,對吧? – 2012-04-12 03:13:27

回答

0

我不完全清楚你在問什麼。我想這可能是如何格式化和顯示查詢結果。如果是這樣,這可能是接近你想要什麼:

$sql = "SELECT * 
     FROM table 
     WHERE user_id = $userid"; // where $userid is, for example, 12 
$result = db -> query($sql); 
$a = $result->result(); 
$rows = $a[0]; 

$resultarray = array(); 
// convert each stdClass object to an array: 
foreach ($rows as $row_idx => $row) 
{ 
    $new_array = array(); 
    foreach ($row as $idx => $item) 
     $new_array[$idx] = $item; 
    $resultarray [$row_idx] = $new_array; 
} 

print_r ($resultarray); // to see what should be pretty easy to display. For example: 

echo "<table>\n"; 
echo "<tr>"; // create heading from field names 
foreach ($resultarray[0] as $colname => $col) 
     echo "<th>$colname</th>"; 
echo "</tr>"; 
// output all data rows 
foreach ($resultarray as $row) 
{ 
    echo "<tr>"; 
    foreach ($row as $col) // each column of row 
      echo "<td>$col</td>"; 
    echo "</tr>\n"; 
} 
echo "</table>\n"; 
+0

問題在於,我希望列的標題是一週中的某一天,而不是爲day_of_week設置一列。這就是我主要遇到的麻煩。 – Ben 2012-04-14 00:19:25

0

事情是這樣的:

<table> 
<thead> 
<tr><th>User</th><th>Monday</th><th>Tuesday</th><th>Wednesday</th><th>Thursday</th><th>Friday</th><th>Saturday</th><th>Sunday</th></tr> 
</thead> 
<tbody> 
<?php 

while($row = mysql_fetch_object($resource)) { 
    if($row->day_of_week == "Monday") { 
     echo "<tr><td>{$row->user_id}</td><td>{$row->start_time} - {$row->end_time}</td>"; 
    } 
    if($row->day_of_week == "Sunday") { 
     echo "<td>{$row->start_time} - {$row->end_time}</td></tr>"; 
    } 
    else { 
     echo "<td>{$row->start_time} - {$row->end_time}</td>"; 
    } 
} 
?> 
</tbody> 
</table> 

這裏假設你有每天爲每個用戶的記錄 - 我不知道這是否是實際上你的數據庫也有。