2015-04-04 71 views
0

我有如下表MySQL的GROUP_BY在笨

batch_id time_start time_end day  branch_id 
1   4:30 PM  5:30 PM Monday 5 
2   5:30 PM  6:30 PM Monday 4 
1   4:00 PM  5:00 PM Tuesday 5 

我已經在我的PHP下表代碼

<table><tr><th><div><?php echo 'Batch Code';?></div></th> 
      <th><div><?php echo 'Mon';?></div></th> 
      <th><div><?php echo 'Tue';?></div></th> 
      <th><div><?php echo 'Wed';?></div></th> 
      <th><div><?php echo 'Thu';?></div></th> 
      <th><div><?php echo 'Fri';?></div></th> 
      <th><div><?php echo 'Sat';?></div></th> 
      <th><div><?php echo 'Sun';?></div></th> 
      </tr> 
<tr> 
<td>1</td><td>4:30 PM - 5:30 PM</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td> 
</tr> 
<tr> 
<td>2</td><td>5:30 PM - 6:30 PM</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td> 
</tr> 
<tr> 
<td>1</td><td> </td><td>4:00 PM - 5:00 PM </td><td> </td><td> </td><td> </td><td> </td><td> </td> 
</tr> 
</table> 

我想

我想的時間相同BATCH_ID &相同branch_id將在相應的日子顯示

正如在abo中給出的我有兩個相同的batch_id記錄,即我想星期一的數據將顯示在星期一列和星期二的數據將顯示在相同的batch_id &相同branch_id的星期二列。

感謝您的幫助

UPDATE 檢查圖像 enter image description here

+0

你能粘貼最後的輸出嗎?看看你想怎麼看桌子。 – xsami 2015-04-04 13:17:27

+1

@xsami,更新與圖像的問題,檢查 – 2015-04-04 13:26:07

回答

1

讓我假設你有結果設置爲下列的陣列。像這樣嘗試

<?php  
    $table = array( 
         0 => array(
          'batch_id' => 1 , 
          'time_start' => '4:30 PM', 
          'time_end' => '5:30 PM', 
          'day' => 'Monday' 
         ), 
         1 => array(
          'batch_id' => 2 , 
          'time_start' => '5:30 PM', 
          'time_end' => '6:30 PM', 
          'day' => 'Monday' 
         ), 
         2 => array(
          'batch_id' => 1 , 
          'time_start' => '4:00 PM', 
          'time_end' => '5:00 PM', 
          'day' => 'Tuesday' 
         ) 
     ); 

    //Arrange the array according to the batch number  
    $arrange_array = array(); 
     foreach($table as $vals){ 
      $arrange_array[$vals['batch_id']][] = $vals;    
     }  
?> 

<table> 
    <tr> 
     <th> 
      <div><?php echo 'Batch Code'; ?></div> 
     </th> 
     <th> 
      <div><?php echo 'Mon'; ?></div> 
     </th> 
     <th> 
      <div><?php echo 'Tue'; ?></div> 
     </th> 
     <th> 
      <div><?php echo 'Wed'; ?></div> 
     </th> 
     <th> 
      <div><?php echo 'Thu'; ?></div> 
     </th> 
     <th> 
      <div><?php echo 'Fri'; ?></div> 
     </th> 
     <th> 
      <div><?php echo 'Sat'; ?></div> 
     </th> 
     <th> 
      <div><?php echo 'Sun'; ?></div> 
     </th> 
    </tr> 

    <?php 
     foreach($arrange_array as $key => $days){ 
      echo '<tr> 
        <td>'.$key.'</td>';       
        foreach($days as $batch){ 
         echo '<td>'.$batch['time_start'].' - '.$batch['time_end'].'</td>'; 
        }      
      echo '</tr>'; 
     }  
    ?>     
</table> 
+0

我想這樣,但我怎麼可以實現這一點使用mysql數據庫 – 2015-04-04 14:55:26

+0

只是做簡單的查詢,其餘的數組功能將做。 – Raja 2015-04-04 14:57:01

+0

如何從數據庫檢索數據你應該對​​結果數組進行一些更改以獲得預期結果 – Raja 2015-04-04 14:58:10