2016-10-02 5 views
0

現在使用して、次のグループの結果は、列データの配列を作成

SELECT o.*, u.* 
FROM Owned o 
INNER JOIN Users u USING (UserID) 

ユーザーが「自分」のdiv要素は、いくつかは他のものよりを所有することと私は、生成に自分のユーザーIDを適用したいと思います div。したがって、たとえばユーザ123は、div要素の3b及び図5cを所有するので、私は何かのようにやってみたい:の多くを行うことを意味

#3b { 
    background: url(<?=$row['logo']?>); 
} 
#5c { 
    background: url(<?=$row['logo']?>); 
} 

:私はそれは、次のやっている現在

#3b,#5c { 
    background: url($row['logo']); 
} 

データベースへの不要な呼び出し。どのように私は最高のユーザーごとに次の操作を行うために$row['ownedID']の配列を構築して行くでしょう:

foreach user { 
    #<?=$ownedID[]?>{ 
     background: url(<?=$row['logo']?>) 
    } 
} 

答えて

0

はこれが何をしたいですか?

SELECT UserId, GROUP_CONCAT(o.div) as divs 
FROM Users u INNER JOIN 
    Owned o 
    USING (UserID) 
GROUP BY UserId; 

これは、divを1つの文字列に連結します。

あなたが好きな場合は、ちょうど前にある文字を追加することができます。

SELECT UserId, GROUP_CONCAT('#', o.div) as divs 
FROM Users u INNER JOIN 
    Owned o 
    USING (UserID) 
GROUP BY UserId; 

GROUP_CONCAT()は、明示的なCONCAT()を必要とせずに、一緒にその最初の引数を連結します。

+0

非常に非常に近い!結果は '3b、5c、7g'などと出力されますが、'#3b、#5c、#7g'にするためにpreg_replaceを使わなければ可能ですか? – BN83

関連する問題