0

我有一个类似的表:product_id - code - name - img - ...

我已经制作了一个页面来显示所有产品。单击一个后,您将转到该产品的详细信息页面。">

在详细信息页面的第一部分中,所有数据都引用了所选代码,这是正常的。

$var1_getProduct = "unavailable";
if (isset($_GET['code'])) {
$var1_getProduct = $_GET['code'];
}
...
$query_getProduct = sprintf("SELECT * FROM product WHERE product.code = %s", GetSQLValueString($var1_getProduct, "text"));

在页面底部,我想显示所有其他具有相同名称的产品。我做了类似的颤音,但似乎没有人工作,我不明白我应该如何处理这个......

我应该做一个不同的查询吗?我试过但没用... $query_getProducts = "SELECT * FROM product WHERE product.code = getProducts['code']"

还是我应该尝试自行加入表格,例如 2 个不同的表格?这也没有用... $query_getProducts = "SELECT t2.name FROM productt1 JOIN productt2 ON (t2.name = t1.name) WHERE t1.name = '$name' AND t1.name != '0'" ;

问题是我不知道如何达到我需要的结果,我的意思是达到的方式(还有代码......,但这将是一个不同的问题!)

编辑我没有提到我发现的更接近我需要的解决方案,即:

SELECT product.name
FROM product 
INNER JOIN ( 
SELECT product.name
FROM product
WHERE product.code = var1 
) pname ON pname.name = product.name

问题在于它显示了所有具有该名称的产品,包括活动产品。所以我也无法放置一个 IF '同名产品存在' Echo the parent DIV ...

4

1 回答 1

0

我认为code这是您产品的唯一密钥。好吧,首先我猜您已经在第一个语句的结果中获得了产品的名称,所以也许您可以在第二个查询中重用它,例如select * from product where name='%s' and code!='%s'. 如果您不能这样做,在子查询中获取名称可能会起作用,例如:

select * from product 
    where name = (select name from product where code='%s')
    and code != '%s';

select name from product where code='%s'如果您从then 可能使用的结果中获得多个结果,where name in (select name from product where code='%s')但我认为code识别产品的假设是错误的,并且此解决方案可能根本不起作用。

于 2013-02-07T18:57:37.690 回答