MySQL查询来获取所有不同的讯息,同一个用户

问题描述:

这是一个简单的聊天表MySQL查询来获取所有不同的讯息,同一个用户

id| fromUserId| toUserId| message 

让我们的虚拟数据约翰(45),简(46)和玛丽(47)。约翰说,同时与简和玛丽聊天。

约翰(45)开始与珍(46)的谈话使数据看起来是这样的:

id| fromUserId| toUserId| message 
1 | 45  | 46  | wassup? 

在第二语境中,玛丽(47)与约翰(45)

id| fromUserId| toUserId| message 
2 | 47  | 45  | wassup? 
开始谈话

如何向约翰显示两个不同的对话?我使用这个查询,但它不工作:

<?php 
     $chatmsgQ="SELECT * FROM ve_chat c 
     WHERE c.isActive='1' AND c.fromUserId='$loginid_session' 
     OR c.toUserId='$loginid_session'"; 
    $chatmsgresult= mysqli_query($db,$chatmsgQ);?> 

编辑与用法

 <ul class="dropdown-menu" style="overflow-x: hidden;"> 
     <?php 
     $chatmsgQ="SELECT * FROM ve_chat c WHERE c.isActive='1' AND (c.fromUserId='$loginid_session' OR c.toUserId='$loginid_session') GROUP BY (c.fromUserId='$loginid_session' OR c.toUserId='$loginid_session')"; 
     $chatresultse= mysqli_query($db,$chatmsgQ); 
     while($chatboxes= mysqli_fetch_array($chatresultse)){;?> 
     <li style="font-size: small; "> 
     <a style='width: 100% !important;' href='' data-toggle='modal' data-target='#chatModal'> 
     Chat with <?=$chatresultuseres['ProfileName'];?> | <?=$rowChat[0];?> Msg (s) 
       </a> 
       </li> 
      <?php } ;?> 
    </ul> 
+0

对'或'进行分组,对查询进行参数化,并描述发生了什么。 '(c.fromUserId ='$ loginid_session' 或c.toUserId ='$ loginid_session')'。它错误,返回错误的记录,什么都不返回等。 – chris85

+0

@ chris85:嘿克里斯现在我只与一个用户进行一次对话来显示。 –

+0

你在循环取回吗?你可以添加更多的PHP使用? – chris85

使用圆括号在你的MySQL查询

例子:

<?php 
     $chatmsgQ="SELECT * FROM ve_chat c 
     WHERE c.isActive='1' AND (c.fromUserId='$loginid_session' 
     OR c.toUserId='$loginid_session')"; 
    $chatmsgresult= mysqli_query($db,$chatmsgQ);?>