Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php中将具有相同值的行显示为一个组_Php_Mysql_Sql_Grouping - Fatal编程技术网

如何在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++;
  }
}