如何从相同的多个数据库结果中选择一个结果

时间:2016-01-27 08:16:11

标签: php mysql

我正在创建一个收件箱页面,其中我从收件箱数据库中回显了用户的行,但是如果您知道我的意思,用户会出现多次出现在数据库表中,这是我的意思的图像: enter image description here

所以这个伟大的名字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>";
    }

我在我包含的外部文件中有我的函数和数据库连接。

enter image description here

这也是我的表的图像,我不知道它是否是收件箱的正确表格结构。

2 个答案:

答案 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)

可以帮助你使用小组

&#13;
&#13;
$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;
&#13;
&#13;