Mysql公共用户聊天到朋友聊天

Posted

技术标签:

【中文标题】Mysql公共用户聊天到朋友聊天【英文标题】:Mysql Public User chat to friend chat 【发布时间】:2015-02-11 10:35:08 【问题描述】:

我目前遵循一个公共用户聊天教程,它使用 Msg_ID、Sender、Message。发件人是名称。我目前有一个朋友表,其中: ID、my_id、friend_id。 但我不确定如何更改聊天,因此它只会发送给收件人,反之亦然。我已将聊天表更改为以下内容:Msg_id、Author_id、Recipient_id、Message。 聊天的当前查询是:

<?php

    function get_msg() 

        $query = "SELECT `Author_ID`, `Message` FROM `pdo_ret`.`chat` ORDER BY `Msg_ID` ASC";

        $run = mysql_query($query);

        $messages = array();

        while($message = mysql_fetch_assoc($run)) 
            $messages[] = array('Author_ID'=>$message['Author_ID'],
                                'message'=>$message['Message']);
        

        return $messages;

    

    function send_msg($Author_ID, $message) 

        if(!empty($Author_ID) && !empty($message)) 

            $Author_ID  = mysql_real_escape_string($Author_ID);
            $message    = mysql_real_escape_string($message);

            $query = "INSERT INTO `pdo_ret`.`chat` (Msg_ID, Author_ID, Message) VALUES (null, '$Author_ID', '$message')";

            if($run = mysql_query($query)) 
                return true;
             else 
                return false;
            

         else 
            return false;
        
    

?>

虽然聊天的形式是:

                        <form action="#" method="post" onsubmit="return InsertDefaultValues()"  id="form_input">
                            <input hidden type="text" name="Author_ID" id="Author_ID"/>
                            <input hidden type="text" name="friend_id" id="friend_id"/>
                            <input type="text" id="message" cols="5" rows="4"></textarea>
                        <input type="submit" name="send"  onsubmit="return InsertDefaultValues()"  id="send" value="Send Message"/>
                        </form>

这是我试图用来定义登录用户的会话脚本。

<?php
session_start();
if(!isset($_SESSION["user"]) or !is_array($_SESSION["user"]) or empty($_SESSION["user"]));
?>

【问题讨论】:

【参考方案1】:

应对查询进行以下更改:

仅检索您的消息:

$query = "SELECT `Author_ID`, `Message` FROM `pdo_ret`.`chat` WHERE Recipient_id = '$Recipient_id' ORDER BY `Msg_ID` ASC";

指定配方:

$query = "INSERT INTO `pdo_ret`.`chat` (Msg_ID, Author_ID, Recipient_id, Message) VALUES (null, '$Author_ID', '$Recipient_id', '$message')";

【讨论】:

谢谢,我现在可以看到你在那里做了什么:) 所以如果在输入中我的朋友 ID 是 40,作者 ID 是 41,那么只有 40 和 41 可以看到这个聊天吗?跨度> 是的,41 是发件人,应该将其视为已发送,而 40 应将其视为已收到。 我用过,任何人都可以看到消息:/【参考方案2】:

<?php
    session_start();
    if(!isset($_SESSION["user"]) or !is_array($_SESSION["user"]) or empty($_SESSION["user"]));
?>

【讨论】:

以上是关于Mysql公共用户聊天到朋友聊天的主要内容,如果未能解决你的问题,请参考以下文章

LINQ to Entities - 选择用户的所有朋友以及他们之间的聊天

XMPP facebook 与非朋友聊天

如何使用 xmpp 连接 Facebook 聊天,我想输入朋友的用户名,然后聊天显示 SASL 身份验证失败

创建用户聊天系统 -(PHP、MySQL、AJAX?)

如果用户不在聊天室中,Android quickblox 如何接收消息

facebook喜欢与添加或删除朋友的选项聊天