2013-05-07 38 views
1

我想用逗號implode平臺數據,例如:Windows,Mac,Linux。如何在Opencart中爆炸數據?

我試過不同的選擇,但仍然沒有找到解決方案。所以我有一個問題如何爆炸,我得到的數據與此代碼?

<?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>'; 
} 
?> 
+0

你想完成什麼?你想連接鏈接並存儲在變量中而不是回顯它嗎? – 2013-05-08 04:21:53

回答

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>'; 

但現在看着我猜你只是想有每個平臺名稱鏈接到它的平臺網址的代碼。 ..

看你的代碼我猜你是在一個模板文件中這樣做。也許你只是把代碼放在一起,從你的控制器,模型和模板 - 這將是美好的,但如果你是真正做這一切中的模板,請代碼分割到層:

控制器

$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>