结合3个不同的MySQL数据库来显示用户信息?

时间:2014-04-10 01:27:28

标签: php mysql

我目前正在我的网站上构建一个私人消息系统。我遇到的问题,在你的"收件箱"您发送或接收的消息显示为(SUBJECT)标题。单击主题时,您可以看到您或其他用户使用名和姓发送过的所有邮件。

下面的2个代码从数据库中收集这些信息,这绝对没问题。虽然,而不是在"收件箱中显示(SUBJECT)"页面,我更愿意显示消息来自或来自的(姓名+最后名称),就像您在实际消息本身中看到的那样。我无法弄清楚如何做到这一点。

下面的第二个代码为视图消息页面执行此操作,虽然顶部代码收集了收件箱页面的信息,但我已尽力将第二部分的用户信息组合到第一部分,但所有这一切都是将每条消息显示为登录用户的名字和姓氏,而不是发送给谁或从哪里接收消息,有没有办法做到这一点?以下是2个代码:

<?php
function fetch_conversation_summery(){
    $sql = "SELECT
                `conversations`.`conversation_id`,
                `conversations`.`conversation_subject`,
                MAX(`conversations_messages`.`message_date`) AS `conversation_last_reply`,
                MAX(`conversations_messages`.`message_date`) > `conversations_members`.`conversation_last_view` AS `conversation_unread`
            FROM `conversations`
            LEFT JOIN `conversations_messages` ON `conversations`.`conversation_id` = `conversations_messages`.`conversation_id`
            INNER JOIN `conversations_members` ON `conversations`.`conversation_id` = `conversations_members`.`conversation_id`
            WHERE `conversations_members`.`userid` = {$_SESSION['userid']}
            AND `conversations_members`.`conversation_deleted` = 0
            GROUP BY `conversations`.`conversation_id`
            ORDER BY `conversation_last_reply` DESC";

    $result = mysql_query($sql);

    $conversations = array();

    while (($row = mysql_fetch_assoc($result)) !== false){
        $conversations[] = array(
            'id'               => $row['conversation_id'],
            'subject'          => $row['conversation_subject'],
            'last_reply'       => $row['conversation_last_reply'],    
            'name'       => $row['first_name'],            
            'unread_messages'  => ($row['conversation_unread'] == 1),

        );
    }

    return $conversations;
}

function fetch_conversation_messages($conversation_id){
    $conversation_id = (int)$conversation_id;

    $sql = "SELECT
                  `conversations_messages`.`message_date`,
                  `conversations_messages`.`message_date` > `conversations_members`.`conversation_last_view` AS `message_unread`,
                  `conversations_messages`.`message_text`,
                  `users`.`first_name`,
                  `users`.`last_name`
            FROM `conversations_messages`
            INNER JOIN `users` ON `conversations_messages`.`userid` = `users`.`userid`
            INNER JOIN `conversations_members` ON `conversations_messages`.`conversation_id` = `conversations_members`.`conversation_id`
            WHERE `conversations_messages`.`conversation_id` = {$conversation_id}
            AND `conversations_members`.`userid` = {$_SESSION['userid']}
            ORDER BY `conversations_messages`.`message_date` DESC";

    $result = mysql_query($sql);

    $messages = array();

    while (($row = mysql_fetch_assoc($result)) !== false){
        $messages[] = array(
                'date'     => $row['message_date'],
                'unread'   => $row['message_unread'],
                'text'     => $row['message_text'],
                'first_name' => $row['first_name'],
                'last_name' => $row['last_name'],
        );
    }

    return $messages;
}

我需要能够将信息调回"$conversation['first_name']; $conversation['last_name']"来显示名称,尽管此信息仅在消息页面上显示为"$messages['first_name'];。我目前正在将主题显示为"$conversation['subject'];&#34;。试图将主题转换为名字和姓氏。感谢

0 个答案:

没有答案