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

每个用户都有一行,显示他们被安排在一周中的那一天的时间。

4

2 回答 2

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";
于 2012-04-12T06:45:30.207 回答
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>

这假设您每天都有每个用户的记录 - 我不知道这是否真的是您数据库中的记录。

于 2012-04-12T06:47:40.387 回答