2012-09-12 33 views
2

分组我有两个表:PHP回波记录由特定的记录

客房
ROOM_ID >>> ROOM_NAME

 
1  foot massage 
2  face massage 
3  back massage

订单
ROOM_ID >>> START_DATE >>>>>>> END_DATE >>>>>>>>价格

 
1  2012.09.10  2012.09.11  100 
1  2012.09.11  2012.09.13  200 
2  2012.11.11  2012.11.13  100 
3  2012.12.11  2012.12.13  500

我想出来把结果是这样的:

房间号码1:

 
2012.09.10  2012.09.11  100 
2012.09.11  2012.09.13  200

房间号2:

 
2012.11.11  2012.11.13  100

房间号3:

 
2012.12.11  2012.12.13  500

代码:

$query_spa = "SELECT 
rooms.room_id, 
rooms.room_name, 
orders.start_date, 
orders.end_date, 
orders.price 
FROM rooms 
INNER JOIN orders 
ON 
rooms.room_id =orders.room_id"; 

$spa = mysql_query($query_spa, $localhost) or die(mysql_error()); 
$results = array(); 
while($line = mysql_fetch_array($spa, MYSQL_ASSOC)){ 
$results[] = $line; 
    } 


    $groups = array(); 
foreach($results as $item) 
$groups[$item['room_id']][] = $item; 
    foreach($groups as $value => $items) 
     echo 'room number ' . $value . ' : ' ; 
for ($i=0; $i< count($items);$i++) 
{ 
echo $items[$i]['start_date'] ; 
echo $items[$i]['end_date'] ; 
echo $items[$i]['price'] ; 
} 

输出:

房间号1:房间号2:房间号3:2012年12月11日2012年12月13日500

回答

4

尝试了这一点:

$groups = array(); 
foreach($results as $item) 
    $groups[$item['room_id']][] = $item; 

foreach($groups as $value => $items) 
{ 
    echo 'room number ' . $value . ' : ' ; 
    foreach ($items as $item) 
    { 
     echo $item['start_date'] ; 
     echo $item['end_date'] ; 
     echo $item['price'] ; 
    } 
} 

你可以通过分项与环简单的foreach。但更好的做出取得步骤的组排序:

while($line = mysql_fetch_array($spa, MYSQL_ASSOC)){ 
    $groups[$line['room_id']][] = $line; 
} 

所以你得到排序后立即取得结果。

+0

工作,非常感谢你! – Christine