如何显示一个用户在MySQL和PHP中出现一次的多个结果?

如何显示一个用户在MySQL和PHP中出现一次的多个结果?,php,mysql,Php,Mysql,现在我正在设计一个查询来获取用户名和他们发布的内容 以下是表“用户”和“发布”中的字段 我想写一个这样显示的查询 user_name content Cherry hi,i am cherry hello Tom good day today=) 但不是 user_name content Cherry hi,i am cherry Cherry hello To

现在我正在设计一个查询来获取用户名和他们发布的内容

以下是表“用户”和“发布”中的字段

我想写一个这样显示的查询

user_name        content

Cherry         hi,i am cherry
               hello
Tom            good day today=)
但不是

user_name        content

Cherry         hi,i am cherry
Cherry         hello
Tom            good day today=)
如何在PHP上以表格形式实现这一点

    select user.user_name, post.content
    from user inner join post on
        user.u_id = post.u_id
获取结果,并在方便的时候展示。如果用户名出现不止一次,只需打印一次,然后检查所有内容。

试试以下方法:

SELECT u . * , (

SELECT GROUP_CONCAT( p.content ) 
FROM post p
WHERE p.u_id = u.u_id
) AS combine
FROM user u
LIMIT 0 , 30

如果希望以类似表格的形式显示,可以保留一个保存当前用户名或id的变量

$currentUser = false;

foreach ($rows as $row) {
  echo '<tr><td>';
  if ($row['user_id'] != $currentUser) {
    //print user
    $currentUser = $row['user_id'];
  }
  echo '</td><td>';
  //print content
  echo '</td></tr>';
}
$currentUser=false;
foreach($行作为$行){
回声';
如果($row['user\u id']!=$currentUser){
//打印用户
$currentUser=$row['user_id'];
}
回声';
//印刷内容
回声';
}

团体会议应该对您有所帮助。您可以阅读有关它的文档

您的查询可能如下所示:

select user_name, group_concat(content,"\n") from post group by user_name;
这将按每个用户将所有帖子分组在一起,然后将用户所有行的
content
字段连接到一个由换行符分隔的字符串中

你可以看到

(请记住,默认情况下,SQLFiddle以表格格式HTML打印其结果。选择
Run SQL->Plaintext Output
查看实际打印的换行符)

编辑(添加以下内容)

如果要使用PHP处理此问题,可以执行以下操作:

$query = 'select user_name, group_concat(content,"\n") as contents from post group by user_name;'
$result = mysqli_query($query)

print '<table><tr><td>USER NAME</td><td>CONTENTS</td></tr>';
while ($row = mysqli_fetch_assoc($result)) {
  print '<tr>';
  print '<td>' . $result['user_name'] . '</td>';
  print '<td>' . preg_replace("/\n/", '<br>' . $result['contents']) . '</td>';
  print '</tr>';
}
print '</table>';
$query='按用户名从帖子组中选择用户名、组名称(内容“\n”)作为内容;'
$result=mysqli\u查询($query)
打印“用户名内容”;
while($row=mysqli\u fetch\u assoc($result)){
打印“”;
打印“”。$result['user_name'].';
打印“.preg_replace”(“/\n/”,“
”。$result['contents'])”; 打印“”; } 打印“”;
以下是我在本例中使用的一些函数的文档链接:


更像是“输出”问题,如果你问我的话,这是一个“选择”问题。因此,请跟踪输出的内容,如果已经输出了,就不要再输出。你能告诉我们如何显示此输出吗?问题在哪里?使用php
if
和variableshow我可以使用php if和variableBes吗??我是php上的新闻发起者,谢谢
$query = 'select user_name, group_concat(content,"\n") as contents from post group by user_name;'
$result = mysqli_query($query)

print '<table><tr><td>USER NAME</td><td>CONTENTS</td></tr>';
while ($row = mysqli_fetch_assoc($result)) {
  print '<tr>';
  print '<td>' . $result['user_name'] . '</td>';
  print '<td>' . preg_replace("/\n/", '<br>' . $result['contents']) . '</td>';
  print '</tr>';
}
print '</table>';