-1

以下に示すように、MYSQLデータベースにデータを保存しています。

 id    t_id     type    color       Y        S       M          L   
  2    2606      2    Black DNA   1,5,8    4,2,6    7,3,9    10,11,12   

PHPで次のようにクエリが返されるようにします。

合計:

Black DNA

1 (Y)  
2 (S)  
3 (M)  
4 (S)  
5 (Y)  
6 (S)  
7 (M)  
8 (Y)  
9 (M)  
10 (L)  
11 (L)  
12 (L)  

私はJoomla 2.7を使用しています。PHPで試したことは次のとおりです。

$query = "SELECT DISTINCT(e.id) as id, e.color, GROUP_CONCAT(e.S) as small FROM  #__bl_equipment as e WHERE e.type = 4 AND e.t_id = 2606";
       $db->setQuery($query);
    $equip1 = $db->loadObjectList();


<table>

<?php foreach($this->equip1 as $equip){

echo '<tr><td>';
echo $equip->color;
echo '</td><td>';
echo $equip->small;
echo '</td></tr>';}

?>


</table>

私が得ることができた唯一の結果:

ブラック DNA 1、2、3

4

1 に答える 1

-1

それはSQLでは複雑すぎるでしょう(そして、それが可能であるとは思えません)

私は次のことを行います-Y、S、M、およびL列を取得します-コンマを使用してそれぞれを解析し(数値を取得します)、それらを配列に変換します-それぞれを並べ替えます

だから今、あなたは次のようなものを持つべきです

y_numbers = [1,5,8]

s_numbers = [2,4,6]

m_numbers = [3,7,9]

l_numbers = [10,11,12]

次に、ループ内で、各配列の最初の要素を見て、それがどの配列であるかに基づいて最小の印刷文字を見つけ、その配列のポインターを繰り返します...すべての数字を使い果たすまで続けます

于 2012-11-22T17:44:52.797 に答える