Advertisement
Guest User

Untitled

a guest
Apr 9th, 2017
555
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.87 KB | None | 0 0
  1. mysql> SELECT p.id, p.project_name, p.client_id, c.client_name FROM project p LEFT JOIN client c ON p.client_id = c.id WHERE p.active_flag = '1' ORDER BY c.id DESC ;
  2.  
  3. +-----+--------------------------------------------------------------+-----------+-------------+
  4. | id | project_name | client_id | client_name |
  5. +-----+--------------------------------------------------------------+-----------+-------------+
  6. | 50 | Aリスト         | 9 | admin |
  7. | 188 | Bリスト | 9 | admin |
  8. | 7 | Cリスト | 2 | user |
  9. | 8 | Dリスト | 2 | user |
  10.  
  11. //データベースへ接続する。
  12. $dsn = 'mysql:dbname=yourdbname;host=yourhost';
  13. $user = 'youruser';
  14. $password = 'yourpass';
  15. $dbh = new PDO($dsn, $user, $password);
  16.  
  17. // SQL文を実行する。
  18. $sql = "SELECT p.id, p.project_name, p.client_id, c.client_name
  19. FROM project p LEFT JOIN client c ON p.client_id = c.id
  20. WHERE p.active_flag = '1'
  21. ORDER BY c.id DESC";
  22. $sth = $dbh->prepare($sql);
  23. $sth->execute();
  24.  
  25. //SQL文で指定したすべてのデータを取得する。
  26. $result = $sth->fetchAll();
  27.  
  28. //データをclient_id,project_idごとに配列へ格納する。
  29. $data = array();
  30. foreach($result as $project){
  31. $client_name = $project['client_name'];
  32. $project_id = $project['id'];
  33. $data[$client_name][$project_id] = $project;
  34. }
  35.  
  36. print "<ul>";
  37. foreach($data as $client_name => $projects){
  38. print "<li>{$client_name}";
  39. print "<ul>";
  40. foreach($projects as $project){
  41. print "<li>{$project['project_name']}</li>";
  42. }
  43. print "</ul>";
  44. }
  45. print "</ul>";
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement