如何在php中将具有相同值的行显示为一个组
数据库结构:如何在php中将具有相同值的行显示为一个组,php,mysql,sql,grouping,Php,Mysql,Sql,Grouping,数据库结构: ID | USERID | ENTRYDATE | EXITDATE | PRICE | ROOMID ----------------------------------------------------- 1 | 2 | 2012-10-1 | 2012-10-4| 100 | 1 2 | 2 | 2012-10-1 | 2012-10-4| 100 | 2 3 | 2 | 2012-10-1 | 2012-10-4| 100
ID | USERID | ENTRYDATE | EXITDATE | PRICE | ROOMID
-----------------------------------------------------
1 | 2 | 2012-10-1 | 2012-10-4| 100 | 1
2 | 2 | 2012-10-1 | 2012-10-4| 100 | 2
3 | 2 | 2012-10-1 | 2012-10-4| 100 | 3
4 | 2 | 2012-10-6 | 2012-10-9| 100 | 4
5 | 2 | 2012-10-6 | 2012-10-9| 100 | 55
我需要一些帮助。我想显示此数据库中的一组记录。我想显示所有具有相同用户ID的用户,但将具有相同ENTRYDATE和EXITDATE的用户分组到同一个DIV中
ID | USERID | ENTRYDATE | EXITDATE | PRICE | ROOMID
------------------------------------------------------
1 | 2 | 2012-10-1 | 2012-10-4| 100 | 1
2 | 2 | 2012-10-1 | 2012-10-4| 100 | 2
3 | 2 | 2012-10-1 | 2012-10-4| 100 | 3
我不确定我是否正确理解了你的问题。我假设您有一个字符串索引数组,并且希望根据ENTRYDATE和EXITDATE值对其进行拆分。也许是这样的:
$currentEntry = $data[0]['ENTRYDATE'];
$currentExit = $data[0]['EXITDATE'];
$splitted = array();
$i = 0;
foreach ($data as $row) {
if ($row['ENTRYDATE'] == $currentEntry && $row['ENTRYDATE'] == $currentExit) {
$splitted[$i] []= $row;
} else {
$currentEntry = $row['ENTRYDATE'];
$currentExit = $row['EXITDATE'];
$i++;
}
}
请查看mysqlk中的groupby,以获取您的建议。。我试着去看看链接谢谢你的回复先生。。我会尽量利用你的建议,希望能奏效
$currentEntry = $data[0]['ENTRYDATE'];
$currentExit = $data[0]['EXITDATE'];
$splitted = array();
$i = 0;
foreach ($data as $row) {
if ($row['ENTRYDATE'] == $currentEntry && $row['ENTRYDATE'] == $currentExit) {
$splitted[$i] []= $row;
} else {
$currentEntry = $row['ENTRYDATE'];
$currentExit = $row['EXITDATE'];
$i++;
}
}