我有两张桌子:
客房
ROOM_ID>>> ROOM_NAME
1 foot massage 2 face massage 3 back massage
订单
room_id>>> start_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
答案 0 :(得分: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;
}
所以你在获取后立即得到了排序结果。