0

ヘルプ!

「イベント」と呼ばれる MySQL データベース テーブルを使用して、CI Web サイトの「過去のイベント」ページを生成しようとしています。イングランド、アイルランド、北アイルランド、スコットランド、ウェールズの 5 つの主要国にまたがる 100 行以上のデータがあり、いくつかは重複しており、多くの異なる主要都市 (ここでも重複エントリを含む) と開催地にまたがっています。

次の形式でデータをクエリして返す方法に数週間苦労しました。

<h1>** grouped country **</h1>
<h2> ** grouped city **</h2>
<p>** grouped venue **</p>

そのような:

<h1>England</h1>
<h2>London</h2>
<p>Tower of London</p>
<h2>Manchester</h2>
<p>Canal Street</p>
<p>Old Trafford</p>
<h1>Ireland</h1>
<h2>Dublin</h2>
<p>St. James' Gate</p>
<h1>Scotland</h1>
<h2>Glasgow</h2>
<p>Buchanan Street</p>
<p>Tron Theatre</p>

モデル、ビュー、およびコントローラーのコードを意図的に含めていません。そして、私はこれをまったく間違った角度から攻撃している可能性があるという事実にオープンです...私は上記の結果を得る必要があります!

これは達成するのがかなり簡単なことであるかのように感じますが、助けが必要です!

4

2 に答える 2

0

Flashin の回答に追加して (および非推奨のメソッドの使用を無視して)、手続き型ソリューションは次のようになります...

$query = "
SELECT
     *
  FROM venues
 ORDER
    BY country
     , city
     , venue;
";

$lastCountry = null;
$lastCity = null;
$result = mysql_query($query);
while($row = mysql_fetch_assoc($result)) {
    if($row['country'] != $lastCountry) {
        $lastCountry = $row['country'];
        print "<h1>".$row['country']."</h1>";
    }
    if($row['city'] != $lastCity) {
        $lastCity = $row['city'];
        print "<h2>".$row['city']."</h2>";
    }
    print "<p>".$row['venue']."</p>";
}
于 2013-07-01T12:24:43.750 に答える