ディーラーが一括して購入できる車のデータベースがあります。彼らは私たちのサイト上のフォームを記入し、署名注文の注文書を送ります。HTMLテーブルの "ユニークな"行を作成するためのPHPオブジェクトのグループ化
この注文書には、契約書に署名すれば配送される車の概要を示す表があります。
私はデータベースに複数のクエリを実行せずに車をグループ化しようとしています。ここ 表の簡単なレイアウトで
<tbody>
<tr>
<td>Nissan</td>
<td>Altima</td>
<td>CVT</td>
<td>2</td>
<td>20000</td>
<td>40000</td>
</tr>
<tr>
<td>Nissan</td>
<td>Maxima</td>
<td>Automatic</td>
<td>3</td>
<td>30000</td>
<td>90000</td>
</tr>
<tr>
<td>Nissan</td>
<td>GTR</td>
<td>Automatic</td>
<td>1</td>
<td>130000</td>
<td>130000</td>
</tr>
<tr>
<td>Nissan</td>
<td>GTR</td>
<td>Manual</td>
<td>2</td>
<td>130000</td>
<td>260000</td>
</tr>
</tbody>
データを次のように私は(それが大きいため)データベースから1つのプルを行い、テーブル本体を製造できるようにする
<table>
<thead>
<tr>
<th>Make</th>
<th>Model</th>
<th>Transmission</th>
<th>Quantity</th>
<th>Price per Vehicle</th>
<th>Total Cost</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
8つの別々のオブジェクトとして私のテーブルから来る。私は、応答を取り込み、3つのキー属性でオブジェクトをグループ化する配列(簡単に表に変換できる)を返すスクリプトを作成しようとしています。
応じ数量列一致するテーブル内の1つの新しい行を表すべきである上記の属性のすべての3つに応答して別のオブジェクトに一致するオブジェクトを「モデル、及び送信を行います」。
私のアプローチのアプローチは、データベースのクエリを続けることでしたが、それはあまりにも無駄でした。 私は1つの属性
$noRepeatMake = [];
$i = 1;
foreach($cars as $car){
if(!in_array($car->make, $noRepeatMake)) {
$count .= Cars::where('BAID', $id)->where('make', $car->make)->where('model', $car->model)->where('trans', $car->trans)->count();
if ($i < $cars->count()) {
$count .= ",";
}
array_push($noRepeatMake, $car->make);
}
$i++;
}
$roomCount = explode(",", $roomCount);
この問題を解決する必要があります。これがSQLデータベースの場合、 'group by'を使用するクエリでテーブルの要素を生成できるはずです。 – trincot
@trincot yup ...そのトリックでした! –
OK、回答として投稿しました。 – trincot