2012-04-12 3 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, Monday, Tuesday 등이 될 것입니다. 그런데 어떻게 할 것인가에 대한 문제가 있습니다.

누군가가 올바른 방향으로 나를 가리킬 수 있거나이 아이디어에 대해 나에게 어떤 생각을 주면 좋을 것입니다. 감사.

편집 :

나는 그들이 일주일의 날짜에 예약 된 시간을 보여주는, 각 사용자가 행을 갖는 경우

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> 

이렇게하면 모든 사용자에 대한 매일의 기록을 가지고 가정 그렇다면, 이것은 당신이 원하는 아마 가까운 실제로 데이터베이스에있는 것입니다.

관련 문제