既読管理を作っています。
newsというテーブルと、usersというテーブルがあります。
newsテーブルには、カラムにnid(ニュース番号)とaccount(アカウント名)があり、usersテーブルにはname(名前)とaccount(アカウント名)があります。
アカウントはメアドになっているので名前を表示させてこの二つのテーブルを結合して、テーブルで横並びで表示させたいです。
両テーブルのaccount(アカウント名)は同一のものです。
現状はアカウント名が表示されているのですが、メアドのため誰なのかすぐに認識できず名前で表示したいです。
//データを取り出す $sql = "SELECT name FROM users WHERE account = account"; $result = mysqli_query($con, $sql) or die("データ出力エラー"); //取り出したデータを表示する while($row = mysqli_fetch_array($result,MYSQL_ASSOC)){ $name = $row["name"]; $name2 = "<tr><td class='ac'>".$name."</td>"; } //データを取り出す $sql = "SELECT account, GROUP_CONCAT(distinct nid order by nid desc separator '</td><td>') as nid_list FROM news GROUP BY account;"; $result = mysqli_query($con, $sql) or die("データ出力エラー2"); //取り出したデータを表示する while($row = mysqli_fetch_array($result,MYSQL_ASSOC)){ echo "<tr><td>".$name."</td><td>".$row['nid_list']."</td></tr>\n"; } echo "</table>"; //接続を解除する $con = mysqli_close($con); if (!$con) { exit('データベースとの接続を閉じられませんでした。'); }
//試してみたこと
$sql = "SELECT name, account, GROUP_CONCAT(distinct nid order by nid desc separator '</td><td>') as nid_list FROM users, news GROUP BY account ORDER BY nid desc";
エラーが出ました。。
間違っているかもしれませんが、上記にuserテーブルのaccountと同じ行にあるnameを出力できるようにしたいです。
どの様に書くのかご教授くださいませ。
回答2件
あなたの回答
tips
プレビュー