sql如何从seesion id获取用户名?

时间:2016-05-28 20:19:24

标签: php mysql

现在我已经做了一个聊天室,但现在所有带有用户名的消息都来自我的用户名。您登录所有用户名与您相同的名称。如何使用session_user id从我的用户数据库获取用户名?

我的桌子是

  • 用户 - 拥有ID,用户名
  • 聊天室有ID,名称
  • chatroom_chat 有chatroom_id与聊天室有关系,chat_id与聊天的关系
  • 聊天有id,user_id,chat.date

如何从聊天中获取user_id并从用户表中获取用户名?

这是我的代码用php和sql

    $chatroomID=$_GET['chatroomID'];
$userID = $_SESSION['id'];

$sql="SELECT * FROM chatroom_chat";
$result1 = mysqli_query($connection, $sql) or die(mysqli_error($connection));


    while ($row = mysqli_fetch_array($result1)) {
    $chat = $row['chat_id'];
    $getChatData = mysqli_query($connection,"SELECT * FROM (
        SELECT * FROM chat WHERE id = '$chat' ORDER BY id DESC LIMIT 0,40
        ) sub
        ORDER BY id ASC ") or die(mysqli_error($connection));

        while($row3 = mysqli_fetch_array($getChatData)) {
            $username = $_SESSION['username'];
            $color = ($row3['user_id'] == $userID) ? '#FFFFFF' : '#66FFFF';
            $position = ($row3['user_id'] == $userID ) ? 'right' : 'left';
            $border = ($row3['user_id'] == $userID) ? ' 1px solid black ' : ' none ';

            echo "<div class='msg-dateandtime' style='text-align:$position; float:$position;'> <div class='left-username' style='color:blue;'>" .$username."</div>"
                    . "<div class='space'></div>"
                    . "<div class='right-date'>  ". $row3['date'] ." </div></div>"
                    . "<div class='wrap-message' style='background-color:$color; border:$border; float:$position;'>"
                    . "<p style 'text-align=$position; margin:0; padding:0; text-align:left;'> ".$row3['chat']."</p></div>";
        }

}

1 个答案:

答案 0 :(得分:1)

在您的帖子中,我假设这是您唯一的问题:“我如何通过session_user id从我的用户数据库获取用户名?”

您向我们展示了您的用户表格内容如下:

      user
   __________________
  |  id  |  username |
  |------|-----------|
  |   1  |    jack   |
  |   2  |    sam    |
  |   3  |    ana    |

因此,如果您问题中的session_user用户表中的ID等效,则可以使用以下代码:

$sql = "SELECT username FROM username WHERE id = {$_SESSION['session_user']}";

之前的代码假设session_user$_SESSION超级全局中的关键值。但是,如果session_user是代码中的实际 php 变量($session_user),那么只需在前一个sql语句中将$_SESSION['session_user']替换为$session_user