0

私はphp + sqlを使用しています。今、私はこのようなテーブルを持っています:

user_id  word
-------------
 u1       w1
 u1       w2
 u2       w1
 u2       w3

そして、ユーザーごとにグループ化されたデータについてデータベースにクエリを実行したいと考えています。望ましい結果は、次のような階層配列である必要があります

array("u1"=>array("0"=>"w1', "1"=>"w2"), "u2"=>array("0"=>"w1", "1"=>"w3"))

どうやってやるの?

編集

私はいくつかの通常のSQLのようなものを書いただけです

select * from DB order by user

そして、私はそれが近いものではないことを恐れています。

4

3 に答える 3

1

はい、できます。確認していませんが、試してみてください。

$query = mysql_query("SELECT * FROM tableName WHERE 1 GROUP BY user_id");
While($data = mysql_fetch_object($query)){
     $get_data[] = $data ;
}

if($get_data){
    foreach($get_data as $val){
        $query = mysql_query("SELECT * FROM tableName WHERE user_id = '".$val['user_id']."'");
        while($data_new = mysql_fetch_assoc($query)){
            $val['user_id'];
            $res[] = $data_new ;
        }
        $userID = $val['user_id'] ;
        $array[][$userID] = $res ;
    }
}
print_r($array);
于 2013-05-24T08:37:11.307 に答える