如何显示一个用户在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'])”;
打印“”;
}
打印“”;
以下是我在本例中使用的一些函数的文档链接:
更像是“输出”问题,如果你问我的话,这是一个“选择”问题。因此,请跟踪输出的内容,如果已经输出了,就不要再输出。你能告诉我们如何显示此输出吗?问题在哪里?使用phpif
和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>';