【发布时间】:2011-08-10 09:32:00
【问题描述】:
我似乎不知道如何创建一个 SELECT 语句来对产品进行分组并在一种产品类型下显示产品。
我有一个名为 floor 的表,其中包含 15 种不同的地板产品,还有一个名为 floortypes 的表,其中包含 8 种不同的产品类型 (ftid) 和一个产品图片。 15 种产品中的每一种都有一个地板类型,用于定义它是哪种类型。有些产品几乎相同,但尺寸不同,但它给产品提供了不同的描述。
例子:
Product: Product 1 Product type: 1
Product: Product 2 Product type: 1
Product: Product 3 Product type: 2
Product: Product 4 Product type: 2
Product: Product 5 Product type: 3
Product: Product 6 Product type: 4
我想要的是在具有 1 个产品图像的产品组下显示的产品
Producttype 1 image
Product 1 description
Product 2 description
Producttype 2 image
Product 3 description
Product 4 description
Producttype 3 image
Product 5 description
Producttype 4 image
Product 6 description
希望有人能帮助我!
编辑
我使用了您的第一个示例,该示例完美无缺。 这是我的最终代码:
$sql = SQLHandling::SQLquery("SELECT A.fid, A.floorname, A.desc_dk, A.floortype, B.prodimage, GROUP_CONCAT(A.desc_dk SEPARATOR '|') AS descr, GROUP_CONCAT(A.floorname SEPARATOR '|') AS fname FROM floors A JOIN floortypes B ON A.floortype = B.ftid GROUP BY A.floortype, B.prodimage");
然后是我的while循环:
$counter = 0;
while($row = mysql_fetch_array($sql)) {
$delimiter = "|";
$descr = explode($delimiter, $row["descr"]);
$fname = explode($delimiter, $row["fname"]);
$markers["###FLOOR###"] .= '<div style="float: left; width: 200px; height: 425px; margin: 0px 10px 0px 10px; vertical-align: text-top; text-align: left;">';
$markers["###FLOOR###"] .= '<p><a href="index.php?page=sfp&room='. $_GET["room"] .'&floor='. $row["floorname"] .'&wall='. $_GET["wall"] .'&envi='. $_GET["envi"] .'&fpanel='. $_GET["fpanel"] .'"><img src="images/floors/'. $row["prodimage"] .'.jpg" width="200" /></a></p>';
for ($i = 0; $i < count($descr); $i++) {
$markers["###FLOOR###"] .= '<p><a href="index.php?page=sfp&room='. $_GET["room"] .'&floor='. $fname[$i] .'&wall='. $_GET["wall"] .'&envi='. $_GET["envi"] .'&fpanel='. $_GET["fpanel"] .'">'. $descr[$i].'</a></p>';
}
$markers["###FLOOR###"] .= '</div>';
if (++$counter % 4 == 0) {
$markers["###FLOOR###"] .= '<div style="clear: both;"> </div>';
}
}
给了我想要的东西!
【问题讨论】: