0

PHP を使用して ODBC MS Access データベースに接続し、データを表示しています。select ステートメントを使用して必要なデータを表示できますが、このデータを別のデータセットに基づいてグループ化する方法を学習できていません。

これが私のコードです:

<?
$handle = odbc_connect("Potter","","");
$results = odbc_exec($handle, "SELECT DISTINCT prodModelNo, prodSubType, prodCAD FROM product WHERE prodType NOT LIKE 'Plus' AND prodType = 'Fire' AND prodCAD LIKE '%CAD Drawing%' GROUP BY prodSubType");

        // Results List
        odbc_fetch_row($results, 0);
        while(odbc_fetch_row($results)){
            $cadString1     = odbc_result($results, "prodCAD");
            $cadString2     = str_replace('<img src=images/i_drawing.gif> <a href=fire/', '', $cadString1);
            $cadURL         = str_replace(' target=_blank>CAD Drawing (zip format)</a>', '', $cadString2);
            echo "<div id='file'><div id='filelink'><ul><li><a href='$cadURL'><img src='../images/download.png'/> Download</a> (zip format)</li></ul></div>";
            echo odbc_result($results, "prodModelNo");
            echo "<div class='clear'></div></div>";
        }
?>

これにより、正確なデータのリストが出力されます。私がやりたいのは、共通のカテゴリを共有し、各グループ間でそのカテゴリ名が表示される結果をグループ化することです。データベース内のカテゴリ名の列は、prodSubType と呼ばれます。

これを正しく表示するにはどうすればよいですか?

4

1 に答える 1

0

GROUP BY prodSubType使用する代わりにORDER BY prodSubType- すべてのアイテムを取得できます。

次に、コードで、ヘッダーの違いを出力するための BEFORE 変数と AFTER 変数を使用します (これについては説明が苦手です)。例を参照 (未テスト):

<?php
$handle = odbc_connect("Potter","","");
$results = odbc_exec($handle, "SELECT DISTINCT prodModelNo, prodSubType, prodCAD FROM product WHERE prodType NOT LIKE 'Plus' AND prodType = 'Fire' AND prodCAD LIKE '%CAD Drawing%' ORDER BY prodSubType ASC");

// Results List
odbc_fetch_row($results, 0);
$oldHeader = "";
while(odbc_fetch_row($results)){
  $header = odbc_result($results, "prodSubType");
  if($header != $oldHeader) {
    $oldHeader = $header;
    echo "<h1>$header</h1>";
  }
  $cadString1     = odbc_result($results, "prodCAD");
  $cadString2     = str_replace('<img src=images/i_drawing.gif> <a href=fire/', '', $cadString1);
  $cadURL         = str_replace(' target=_blank>CAD Drawing (zip format)</a>', '', $cadString2);
  echo "<div id='file'><div id='filelink'><ul><li><a href='$cadURL'><img src='../images/download.png'/> Download</a> (zip format)</li></ul></div>";
  echo odbc_result($results, "prodModelNo");
  echo "<div class='clear'></div></div>";
}
?>
于 2013-07-02T20:37:57.583 に答える