【发布时间】:2012-10-12 09:01:51
【问题描述】:
我正在尝试根据我所在产品的类别列出 4 个产品,所以如果我正在查看类别为“Awesome category”的“Cool product”,我想查看最新的“Awesome”中的 4 个该产品中的“类别”产品。
我知道这可以通过手动将每个产品的产品添加到特定块来实现,不幸的是,这种方法的产品太多了,不可行。
我已经到了可以根据当前产品类别获取最新 4 种产品的 id 的地步,但是我无法获取缩略图或产品的 URL,这是我目前所拥有的,
{php}
$pid = $this->get_template_vars("product");
$pid = $pid["product_id"];
$cid = db_get_field("SELECT category_id FROM cscart_products_categories WHERE product_id = '$pid' AND link_type = 'M';");
$prod_ids = db_get_fields("SELECT * FROM cscart_products_categories WHERE category_id = '$cid' LIMIT 4;");
foreach($prod_ids as $prod_id){
echo $prod_id;
}
print_r($prods);
{/php}
如您所见,我在配置中启用了 PHP。因此,总而言之,我想根据当前产品类别在我当前查看的产品中显示 4 个产品。
【问题讨论】:
-
cscart_products_categories 表是什么样子的?
-
为什么要将您的逻辑与您的演示文稿混为一谈?阻止它不是很聪明吗?
-
@Marcus cscart_products_categories 的表结构如下所示,
product_id(mediumint), category_id(mediumint), link_type(char), position(smallint)。 @Sammaye我对Smarty不太熟悉,所以我不确定最好的方法。我知道最好使用插件来达到预期的效果,但不幸的是我时间紧迫。 -
好的,太好了。还有几个问题。 $prods 变量是什么,我在任何地方都看不到它的定义。您是否真的在 foreach 循环中打印了 ID?由于您选择 *,所以您不应该获得所有列,以便这一行 prod_ids = db_get_fields("SELECT * FROM cscart_products_categories WHERE category_id = '$cid' LIMIT 4;");实际上返回完整的结果集,你不能像这样访问你的列,$prod_ids['category_id'], $prod_ids['link_type'] 等等?您在哪里存储缩略图图像/url 和产品 url? db 中的列?
标签: php smarty smarty3 cs-cart