我正在使用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。
我怎样才能正确地显示它呢?
发布于 2013-07-02 20:37:58
用ORDER BY prodSubType
代替GROUP BY prodSubType
-这样你就可以抓取所有的东西了。
然后,在您的代码中,使用一个之前和之后的变量来输出标题差异(我不擅长解释这一点)。参见示例(未测试):
<?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>";
}
?>
https://stackoverflow.com/questions/17435350
复制