如何在Opencart中破坏数据?

时间:2013-05-07 16:45:16

标签: mysql opencart implode

我想用逗号破坏平台数据,例如:Windows,Mac,Linux。

我尝试了不同的选择,但仍然没有找到解决方案。所以我有一个问题如何破坏我用这段代码获得的数据?

<?php

$this->load->model('catalog/platform');

$query = $this->db->query("SELECT p2p.platform_id, p.parent_id FROM "
. DB_PREFIX . "platform p LEFT JOIN " . DB_PREFIX . "product_to_platform p2p
ON p.platform_id=p2p.platform_id WHERE product_id='" . $product_id . "' AND parent_id=0");

$prodplatforms = $query->rows;

foreach($prodplatforms as $prodplatform){

    $platform_id = $prodplatform['platform_id'];
    $platform_info = $this->model_catalog_platform->getPlatform($platform_id);
    $caturl = (HTTP_SERVER . 'index.php?route=product/platform&path=' . $platform_id);
    $str = $platform_info['name'];

        echo '<a href="' . $caturl . '">' . $str . '</a>';
}
?>

1 个答案:

答案 0 :(得分:0)

您需要进行一些编辑 - 而不是$str = $platform_info['name'];执行此操作:

// ...
$prodplatforms = $query->rows;

$platforms = array();

foreach($prodplatforms as $prodplatform){
    $platform_id = $prodplatform['platform_id'];
    $platform_info = $this->model_catalog_platform->getPlatform($platform_id);
    $caturl = (HTTP_SERVER . 'index.php?route=product/platform&path=' . $platform_id);
    $platforms[] = $platform_info['name'];
}

echo '<a href="' . $caturl . '">' . implode(', ', $platforms) . '</a>';

但现在查看代码我想你只想让每个平台名称链接到它的平台URL ......

查看您的代码我猜您正在模板文件中执行此操作。也许您只是将代码放在您的控制器,模型和模板中 - 这没关系,但如果您真的在模板中执行此操作,请将代码拆分为图层:

<强>控制器

$this->load->model('catalog/platform');
$prodplatforms = $this->model_catalog_platform->getPlatforms($product_id);

$this->data['platforms'] = array();

foreach($prodplatforms as $prodplatform){
    $platform_id = $prodplatform['platform_id'];
    $platform_info = $this->model_catalog_platform->getPlatform($platform_id);
    $caturl = (HTTP_SERVER . 'index.php?route=product/platform&path=' . $platform_id);
    $this->data['platforms'][] = '<a href="' . $caturl . '">' . $platform_info['name'] . '</a>';
}

模型catalog/model/catalog/platform.php):

public function getPlatforms($product_id) {
    $query = $this->db->query("SELECT p2p.platform_id, p.parent_id FROM " . DB_PREFIX . "platform p LEFT JOIN " . DB_PREFIX . "product_to_platform p2p ON p.platform_id=p2p.platform_id WHERE product_id='" . $product_id . "' AND parent_id=0");

    return $query->rows;
}

查看模板

<div><?php echo implode(', ', $platforms); ?></div>