我正在创建一个收件箱页面,其中我从收件箱数据库中回显了用户的行,但是如果您知道我的意思,用户会出现多次出现在数据库表中,这是我的意思的图像:
所以这个伟大的名字kanayo出现在桌子上的次数。我希望名称只出现一次,以便在单击时显示消息正文。
这是我的代码:
$mymsg = mysql_query("SELECT msg_from, msg_to FROM message WHERE msg_from='$my_id' OR msg_to='$my_id' ORDER BY msg_id DESC LIMIT $start, $per_page");
while($run_msg = mysql_fetch_array($mymsg)){
$msg_from = $run_msg['msg_from'];
$msg_to = $run_msg['msg_to'];
if($msg_from == $my_id){
$users = $msg_to;
} else {
$users = $msg_from;
}
$firsts = getuser($users, 'first');
$nicks = getuser($users, 'nick');
$lasts = getuser($users, 'last');
echo "<div align='left'><a href='message.php?user=$users' style='text-decoration:none;><<b><font color='blue'>$firsts $nicks $lasts</font</b></a></div><br>";
}
我在我包含的外部文件中有我的函数和数据库连接。
这也是我的表的图像,我不知道它是否是收件箱的正确表格结构。
答案 0 :(得分:0)
最好的方法是移动你的条件(检查是否等于my_id进入mysql查询,并让结果变量为&#34;用户&#34;)。然后和查询结束,您可以添加;
GROUP BY users
这将确保您只撤回不同的&#34;用户&#34;
您可以使用IF元素将条件合并到mysql中,即
SELECt IF(msg_from = '$my_id', msg_to, msg_from) AS users
答案 1 :(得分:0)
可以帮助你使用小组
$mymsg = mysql_query("SELECT msg_from, msg_to FROM message WHERE msg_from='$my_id' OR msg_to='$my_id' GROUP BY msg_from ORDER BY msg_id DESC LIMIT $start, $per_page");
&#13;