2015-04-23 139 views
0

我對包含稱爲產品的mysql列的文章數據有一個查詢。該字段包含像2,20,12這樣的值。這些數字代表與文章相關的產品行的id。從逗號分隔值顯示名稱

我需要弄清楚如何在每篇文章下顯示產品而不會創建每個結果的重複。

 $sql5="SELECT * FROM #__content WHERE catid=$iconcategoryid"; 
    $db->setQuery($sql5); 
    $articles= $db->loadObjectlist(); 
    foreach($articles as $article){ 

     $product_ideez = $article->products; 

     $sql6="SELECT * FROM #__products_products WHERE id IN($product_ideez)"; 
     $db->setQuery($sql6); 
     $products= $db->loadObjectlist(); 

     foreach ($products as $product) { 

     $productArray .= '<span class="badge">'.$product->name.'</span>'; 

     } 



    // my html output is here 
    // i am getting duplication on the output of the product names 

    echo '<h1>'.$article->title.'</h1>'; 
    echo '<hr/>'; 
    echo $productArray; // this works but then is multiplied for each new entry against the first query. 

    } 

我希望我的問題已經夠清楚了。

http://imgur.com/E0BTlUo

乾杯 約翰

+0

所以你想你的結果2 20 12在一個數組? –

+0

我想要2然後20然後12顯示每個產品名稱,而不重複本身。目前我正在接受。鞋,外套,褲子/鞋,外套,褲子,鞋子,夾克,褲子/鞋子,外套,褲子,鞋子,夾克,褲子,鞋子,夾克,褲子,鞋子,夾克,褲子。每個正斜槓表示第一個查詢的新行。 –

+0

對不起,但我不明白。請提供一些行的樣本,以及您想如何呈現。你說什麼我明白,你喜歡如果第一篇文章的產品ID是1,2,3,但第二篇文章是2,3,15,然後你喜歡第一個顯示1,2,3,但對於第二個 - 只有15.你說什麼? –

回答

1

您在使用前需要進行初始化$ productArray。添加到第一個foreach的開頭:

$productArray = ""; 
+0

我補充說,但仍然沒有運氣。我試圖插入一個圖像來顯示你的屏幕抓取,但沒有運氣。 Theres鏈接到我的問題屏幕抓取。它的視覺看起來正在發生什麼。感謝您的幫助順便說一句 –

+0

你還沒有添加線的頂部,它必須在第一次foreach之後。 –

+0

我很確定'$ productArray =「」;'在'foreach($ articles as $ article)之後加上'{'是要解決你的問題。你的代碼不工作的原因是因爲變量$ productArray在循環迭代之間保持它的值(因爲你只是用'。='連接新產品名稱,並且從不清除新文章的變量) –

0
 $sql5="SELECT * FROM #__content WHERE catid=$iconcategoryid"; 
     $db->setQuery($sql5); 
     $articles= $db->loadObjectlist(); 
     foreach($articles as $article){ 
     $productArray=''; 
     $product_ideez = $article->products; 

     $sql6="SELECT * FROM #__products_products WHERE id IN($product_ideez)"; 
     $db->setQuery($sql6); 
     $products= $db->loadObjectlist(); 

     foreach ($products as $product) { 

     $productArray .= '<span class="badge">'.$product->name.'</span>'; 

     } 



    // my html output is here 
    // i am getting duplication on the output of the product names 

    echo '<h1>'.$article->title.'</h1>'; 
    echo '<hr/>'; 
    echo $productArray; // this works but then is multiplied for each new entry against the first query. 

    } 
+0

謝謝Kancho,我現在就試試。但是如何將$ article-> title;依次通過? 可以有多個文章,每篇文章包含多個產品。 –

+0

是的你是對的,但是因爲你錯過了週期的結束,我犯了錯誤。等等,我會覈實它。 –