0

データベース構造:

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

助けが必要です。このデータベースの一連のレコードを表示したいと考えています。同じ USERID を持つものをすべて表示したいのですが、同じ 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


ID | USERID | ENTRYDATE | EXITDATE | PRICE | ROOMID
----------------------------------------------------
4  | 2      | 2012-10-6 | 2012-10-9| 100   | 4
5  | 2      | 2012-10-6 | 2012-10-9| 100   | 5
4

1 に答える 1

0

あなたの質問を正しく理解しているかどうかわかりません。文字列インデックスの配列があり、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++;
  }
}
于 2013-01-22T19:10:41.760 に答える