【发布时间】:2018-06-04 03:30:25
【问题描述】:
我正在尝试访问要在 OpenCart 2.0.3.1 的产品页面上显示的表格的 ID。
我正在尝试从表中访问一个 id,然后将其带入产品页面,并将其显示在下拉列表的变体选项中。
我为一个产品运行 SQL 并获得 id 21。因此出于调试原因,我手动添加了两个变量(product_id 和 option_id),因此这些变量不会导致问题。下面是 sql 查询工作的截图
所以它返回数字 21。显然,当我将 sql 更改为每个产品的 product_id 和 option_id 时,它将返回相关的 id。
我有这个设置:
目录/模型/目录/product.php
public function getOtpOptionId($product_id)
{
$otp_option_query = $this->db->query("SELECT id from oc_otp_option_value where product_id = 62 AND parent_option_value_id = 20");
$otp_option = $otp_option_query->row;
return $otp_option;
}
目录/控制器/product/product.php
下面
foreach ($option['product_option_value'] as $option_value) {
我添加
$data['otp_option_id'] = $this->model_catalog_product->getOtpOptionId($this->request->get['product_id']);
目录/主题/*/template/product/product.tpl
我变了:
<option value="<?php echo $option_value['option_value_id']; ?>"><?php echo $option_value['name']; ?></option>
成为
<option value="<?php echo $option_value['option_value_id']; ?>"><?php echo $option_value['name']; ?> (<?php echo $data['otp_option_id']; ?>)</option>
我希望它在下拉列表中显示所有选项(21)
例如:
红色 (21)
蓝色 (21)
绿色 (21)
它只显示每个选项,没有数字,只有 ()。
我做错了什么?
提前致谢
/******* 更新 *******/
所以我更改了模型中的代码以获取每个选项的 id 而不是使用数字
public function getOtpOptionId($product_id, $option_value_id)
{
$otp_option_query = $this->db->query("SELECT id from oc_otp_option_value where product_id = '" . (int)$product_id . "' AND parent_option_value_id = '" . (int)$option_value_id . "'");
$otp_option = $otp_option_query->row;
return $otp_option;
}
【问题讨论】:
标签: php mysql opencart opencart2.x