我有一个表脚的风格,落入不同的,相应的鞋类。我正在尝试做的是在不同的(单独的)类别下列出样式。
凉鞋的款式有: Flip Flops Slide
可供选择的款式有:运动型系带乐福鞋、Moccasins
正如您在下面看到的,现在,我只是用不同的TYPEID重申我的问题。
有没有一种代码效率更高的方法,只用一个查询就能做到这一点?
正如我的问题的标题所述:我能否在一个列值中执行多个参数--一个查询?
先谢谢你,阿珍
+--------+---------+
| typeid | type |
+--------+---------+
| 1 | Shoes |
| 2 | Boots |
| 3 | Sandals |
+--------+---------+
+---------+--------+------------+
| styleid | typeid | style |
+---------+--------+------------+
| 1 | 1 | Athletic |
| 2 | 1 | Lace-up |
| 3 | 1 | Loafers |
| 4 | 1 | Moccasins |
| 5 | 2 | Combat |
| 6 | 2 | Hiking |
| 7 | 2 | Riding |
| 8 | 3 | Flip Flops |
| 9 | 3 | Slide |
+---------+--------+------------+Styles_in_Cat.php
echo " Styles available for SANDALS are: <br/>";
$query="SELECT DISTINCT style, style.typeid, type
FROM style, type
WHERE style.typeid=3
AND style.typeid=type.typeid";
if ($result = mysqli_query($con,$query))
{
while ($row = mysqli_fetch_assoc($result))
{
$style = $row['style'];
$typeid = $row['typeid'];
$type = $row['type'];
echo " $style <br/>" ;
}
}
echo " Styles available for SHOES are: <br/>";
$query="SELECT DISTINCT style, style.typeid, type
FROM style, type
WHERE style.typeid=1
AND style.typeid=type.typeid";
if ($result = mysqli_query($con,$query))
{
while ($row = mysqli_fetch_assoc($result))
{
$style = $row['style'];
$typeid = $row['typeid'];
$type = $row['type'];
echo " $style <br/>" ;
}
}更新:我想我快到了。我把它们放在foreach循环中,得到:
现在只需要尝试将它们分开,并在不同的标题下显示,比如“SHOES available for SHOES:
更新2:
在过去的4个小时里,我一直在尝试将结果放在数组中,但到目前为止还没有成功:(。
我的结果来自(根据xpy的建议):
SELECT DISTINCT type, style.typeid, style FROM style, type
WHERE style.typeid IN ( 1,3)
AND style.typeid=type.typeid
+---------+--------+------------+
| type | typeid | style |
+---------+--------+------------+
| Shoes | 1 | Athletic |
| Shoes | 1 | Lace-up |
| Shoes | 1 | Loafers |
| Shoes | 1 | Moccasins |
| Sandals | 3 | Flip Flops |
| Sandals | 3 | Slide |
+---------+--------+------------+但我想要做的是控制哪种类型出现(即使WHERE子句声明1,3,5 (typeid) --也许我只想显示1和3)。
我已经读了一些帖子,但它们的结果和我一样。
stackoverflow.com/questions/3936073/mysql-php-selecting-only-unique-values-from-multiple-columns-and-put-them-into-s?rq=1
stackoverflow.com/questions/5345011/fetch-all-ids-and-put-them-into-an-array-in-php
我希望我问的问题是正确的。我知道我可能听起来很迷茫,因为我确实是
“您必须将结果放入单独的数组中,每个数组对应一个类型,或者放入一个多维数组,每个类型对应一个索引。当然,您必须检查结果,然后将其放入特定的数组中。”
因此,我的浏览器视图将如下所示:
我们提供的鞋子款式:运动型系带便鞋
我们提供的长统靴款式:战斗徒步骑行
我可以坚持我原来拥有的东西(第一个问题),但作为一个编程新手,我真的很想学习。
再次感谢。Jen
发布于 2013-04-03 00:51:26
您必须使用GROUP BY
就像这样
SELECT style.style, type FROM style, type where type.typeid=style.typeid
GROUP BY type, style您应该有一个如下所示的结果集
Shoes Athletic
Shoes Lace-up
Shoes Loafers
Shoes Moccasins
Boots Combat。。
简单地循环‘直到类型改变来读取所有不同的样式。这样你可以用一个查询来读取所有的样式和类型
发布于 2013-04-03 00:25:37
您可以尝试:
SELECT DISTINCT style, style.typeid, type
FROM style, type
WHERE style.typeid IN (1,3)
AND style.typeid=type.typeid这将为您提供shoes和sandals 的所有行,但由于,由于DISTINCT,您将无法识别一个样式是否为这两个样式的通用样式(如果它将成为一个样式)。
https://stackoverflow.com/questions/15768887
复制相似问题