2012-04-12 15 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) 

私はデータを表示したい道ます:私は、次のようになり、各行に1つのオブジェクトの配列を取得しています、私のデータベースから引っ張ってるとにかく

、行があり、そのテーブルの列はユーザ​​ー、月曜日、火曜日などになります。私はそれをどうやってやっていくのに問題がありますか?

誰かが正しい方向に私を指し示すか、このアイデアにいくつかの考えを与えることができれば、それは素晴らしいことでしょう。ありがとう。

編集:

私は、各ユーザーは、彼らがその曜日に予定された時間を示す、行を持っている

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などです。 –

答えて

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

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> 

これは、すべてのユーザーのために、毎日のレコードを持っていると仮定し - 私はそれがだかどうかわかりません実際にあなたがあなたのデータベースに持っているものもあります。

関連する問題