私はこのようないくつかの質問を見てきましたが、これのバリエーションはありましたが、私はこれをやり遂げる方法としてまだ混乱しています。私はさまざまな地域に異なるディーラーを抱えていて、1つの長いリストに地域別にリストしたいと考えています。子ども、親、子どもなどが続くループ親レコード
西海岸
ディーラー1
ディーラー2
ディーラー3
東海岸
ディーラー1
ディーラー2
ディーラー3
のように...
私は地域のリストとディーラーのリストを持つ別のテーブルを持つデータベーステーブルを持っています。
ディーラーテーブルには、regionsテーブルのリージョンIDを含む列があり、テーブルを結合できます。
$stmt = $link->prepare("SELECT `region_name`, `dealer_name` FROM `dealer_region` as `dr` INNER JOIN `dealers` as `d` ON dr.`id` = d.`region_id` GROUP BY `region_name`");
$stmt->execute();
$result = $stmt->get_result();
$numRows = $result->num_rows;
if($numRows > 0) {
while($row = $result->fetch_assoc()) {
$dealer_name = $row['dealer_name'];
$region_name = $row['region_name'];
echo $region_name . "<br />" . $dealer_name . "<br />";
}
}
$stmt->close();
しかし、一つの販売店で、この結果だけではなく、すべての各領域の下に表示されている:
は、私はこれを試してみました。
ORDER BYを使用する際の問題は、地域名、1つのディーラー名、地域名、2番目のディーラー名などを教えてくれます。 2つのループが必要なため、各地域は1回だけ表示し、次にその地域の下に表示されているすべてのディーラー – user8463989
を表示する必要があります。リージョンの結果をループするもの、ディーラーの結果をループするものなどがあります。 – Jeffrey
リージョンが変更されたときにPHPコードをチェックインしてそのコードを実行するだけです。 ORDER BYを使用すると、地域内のすべてのディーラーがお互いに後に来て、地域が変わると、それを表示することができます。シリアライズされたSQLよりもはるかに効率的です。 – slaakso