1

次のクエリがあります。

SELECT projects.project_name, files.file_name
FROM `projects` JOIN `files` ON (projects.project_id = files.project_id)
ORDER BY projects.project_name ASC, files.file_name ASC

たとえば、次のように出力されます。

Project1 - file1
Project1 - file2
Project2 - file3
Project2 - file4

PHP では、次を使用してこれらの値を抽出します。

while ($row = mysql_fetch_assoc($result)) {}

私はどういうわけかこのような出力が欲しい:

Project1 - file1, file2
Project2 - file3, file4

これどうやってするの?ありがとう。

4

2 に答える 2

1

MySQLを使用して直接行うことができますGROUP_CONCAT()

SELECT  projects.project_name, 
        GROUP_CONCAT(files.file_name) file_name
FROM    projects
        INNER JOIN files 
            ON (projects.project_id = files.project_id)
GROUP   BY projects.project_name
ORDER   BY projects.project_name ASC, 
           files.file_name ASC
于 2013-04-13T09:52:15.150 に答える
0

mysql* というラベルの付いた関数の使用を停止してください。mysql は廃止されました。PDO の方がはるかに使いやすく、積極的に開発されています。

http://www.php.net/manual/en/mysqlinfo.api.choosing.php

mysql_fetch_assoc() 関数の大きな赤い警告バナーに注目してください。

http://php.net/manual/en/function.mysql-fetch-assoc.php

于 2013-04-13T09:54:56.730 に答える