php - Mysql 公共(public)用户聊天与好友聊天

标签 php html mysql chat

我目前正在遵循公共(public)用户聊天教程,其中使用 Msg_ID、发件人、消息。发件人即名称。我目前有一个 friend 表,其中: ID、我的 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>

这是我的 session 脚本,我试图用它来定义登录的用户。

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

最佳答案

应对查询进行以下更改:

仅检索您的消息:

$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')";

关于php - Mysql 公共(public)用户聊天与好友聊天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28452090/

相关文章:

jquery - Div 在页面上的错误位置,直到触发页面调整大小

php - 如何编写搜索脚本以返回最接近搜索文本/关键字的文本?

mysql - 当不需要 int 时,创建 SQL 函数时出错(无法转换为 int)

php - php函数中的参数错误

php - Php7中的数组到字符串转换

php - 如何比较 mysql 数据库中的 IP 地址?

php - PHP警告: Illegal string offset & Invalid argument supplied for foreach() [duplicate]

javascript - 当我放置 html5 文档类型声明时,jquery 不工作

javascript - Angular - 如何在使用 ViewEncapsulation.Native 时访问 html 元素

php - mysql 连接查询问题