gpt4 book ai didi

php - 重复值不断删除其他产品页面

转载 作者:行者123 更新时间:2023-11-30 21:28:35 24 4
gpt4 key购买 nike

我不知道如何输入标题,所以我会在这里解释一下。首先,这是我的数据库。 (我将 'product' 替换为 'p' 以节省数据库空间。

p_id|p_name|p_image      | p_category  | p_col | p_size
1 | Xs |xsmax.png | Smartphones | Coral | 64GB
2 | Xs |xsmax.png | Smartphones | Coral | 128GB
3 | Xs |xsmax.png | Smartphones | Coral | 256GB
4 | Xs |xsmax.png | Smartphones | Blue | 64GB
5 | Xs |xsmax.png | Smartphones | Blue | 128GB
6 | Xs |xsmax.png | Smartphones | Blue | 256GB
7 | Xs |xsmax.png | Smartphones | Black | 64GB
8 | Xs |xsmax.png | Smartphones | Black | 128GB
9 | Xs |xsmax.png | Smartphones | Black | 256GB
10 | Xr |xrmax.png | Smartphones | Silver| 64GB
11 | Xr |xrmax.png | Smartphones | Silver| 128GB
12 | Xr |xrmax.png | Smartphones | Silver| 256GB
13 | Xr |xrmax.png | Smartphones | Black | 64GB
14 | Xr |xrmax.png | Smartphones | Black | 128GB
15 | Xr |xrmax.png | Smartphones | Black | 256GB
16 | Xr |xrmax.png | Smartphones | Gold | 64GB
17 | Xr |xrmax.png | Smartphones | Gold | 128GB
18 | Xr |xrmax.png | Smartphones | Gold | 256GB


<?php
include("dataconnection.php");

if(isset($_GET['view']))
{
$name = $_GET["proid"]; //name of the product (example:Xr)
$result = mysqli_query($connect, "SELECT * FROM products WHERE product_name = '$name' ");
$row=mysqli_fetch_assoc($result);
}
?>



<?php $result1 = mysqli_query($connect, "SELECT * FROM products WHERE (product_id, product_col) in ( SELECT MIN(product_id), product_col FROM products GROUP BY product_col ) AND product_name='$name' "); ?>


<div class="product-color">
<span>Color</span>
<div class="color-choose">
<div>
<?php while($row1=mysqli_fetch_assoc($result1)) {
echo $row1['product_col'];
?>
<?php
}
?>
</div>

</div>

</div>

我想显示每个产品可用的颜色,而不显示重复项。我以为我设法通过使用上面的查询来做到这一点,但查询也适用于第二个产品。显示是这样的。

当我点击 Xs(第一个产品)

Color I need = Coral, Blue, Black
Color shown = Coral, Blue, Black

当我点击 Xr(第一个产品)

Color I need = Silver, Black, Gold
Color shown = Silver,Gold

查询适用于所有产品,因此删除了所有重复项,我希望它仅从名称中删除重复的颜色,这是从 proid 获得的。

更新:由 jameson2012 解决

最佳答案

您的第一个查询是多余的。您只需要第二个查询(减去末尾无意义的部分)。顺便说一句,我怀疑您的第二个查询的效率低于其中一种更正常的形式,例如:

SELECT c.olumns
, y.ou
, a.ctually
, w.ant
FROM products x
JOIN
( SELECT MIN(product_id) product_id
, product_name
FROM products
WHERE product_name = :name -- optional line
GROUP
BY product_name ) x
ON y.product_name = x.product_name
AND y.product_id = x.product_id

另请参阅准备好的和绑定(bind)的查询的重要性

关于php - 重复值不断删除其他产品页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57520380/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com