PHP:如何在MySQL中显示与其他行不同的特定行?

时间:2014-07-19 19:52:37

标签: php mysql css chat livechat

我正在创建一个php聊天应用程序,我有两个这样的聊天面板,1个是管理区域,另一个是客户端聊天区域,两个面板区域中的内容显示在1个名为messages的表中我要显示仅限客户端用户以外的其他颜色的管理员内容或名称。

怎么做?任何想法?

这是我display_messages.php

的代码
session_start();
require_once 'cn.php';
require_once 'protect.php';



$fiveMinutesAgo = time() - 1000;

$sql = "SELECT * FROM messages ORDER BY message_time  ";
$result = mysqli_query($cn,$sql) or
    die(mysqli_error($cn));



while ($row = mysqli_fetch_assoc($result)) {
    $user = $row['username'];
    $msg_content = $row['message_content'];
    $hoursAndMinutes = $row['message_time'];

    echo '<p><cite class="fa fa-user"><b>'. $user .':</b></cite> <output>'. $msg_content .'</output> <time class="fa fa-clock-o time">: ' . $hoursAndMinutes . ':</time></p>';

}

任何帮助将不胜感激。

感谢。

2 个答案:

答案 0 :(得分:1)

假设您在messages表中有一个名为role的列,该列可以是&#39; admin&#39;或者&#39;用户&#39;然后你的循环可能看起来像:

while ($row = mysqli_fetch_assoc($result)) {
    $user = $row['username'];
    $msg_content = $row['message_content'];
    $hoursAndMinutes = $row['message_time'];
    $class = $row['role'];

    echo '<p class="'.$class.'">'.
            '<cite class="fa fa-user">'.
              '<b>'. $user .':</b>'.
            '</cite>'.
            '<output>'. $msg_content .'</output>'.
            '<time class="fa fa-clock-o time">: ' . $hoursAndMinutes . ':</time>'.
           '</p>';

}

你可以添加

.admin{color:red}
.user{color:black}

到你的css

这是一个广泛的例子。你真的应该加入用户表上的消息表

修改

将您的查询更改为:

 $sql = "SELECT m.*,u.role FROM messages m ".
        "JOIN users u on u.username = m.username ORDER BY message_time";

并使用

在您的users表中添加一列
  "ALTER TABLE `users` ADD `role` VARCHAR(5);"

在你的SQL客户端。

但是,如果您有多个具有相同名称的用户,那么这将无法正常工作,消息表应该具有用户ID列,而不是用户名列,您应该加入该用户。

答案 1 :(得分:0)

因此,您在messages表中有一个用户名,这意味着您可能拥有一个包含所有用户信息的用户表。如果你没有那个你应该。

session_start();
require_once 'cn.php';
require_once 'protect.php'

$fiveMinutesAgo = time() - 1000;

 $sql = "SELECT messages.username,message.message_content,messages.message_time,user.type as user_type FROM messages JOIN user on messages.username = user.username  ORDER BY message_time  ";
$result = mysqli_query($cn,$sql) or
die(mysqli_error($cn));



  while ($row = mysqli_fetch_assoc($result)) {
      $user = $row['username'];
      $msg_content = $row['message_content'];
      $hoursAndMinutes = $row['message_time'];
      $role = $row['role'] //the user role e.g admin, normal,etc.
      echo '<span class={$role}><p><cite class="fa fa-user"><b>'. $user .':</b></cite> <output>'. $msg_content .'</output> <time class="fa fa-clock-o time">: ' . $hoursAndMinutes . ':</time></p></span>';

 }

现在,您需要为用户数据库中的每个角色创建一个CSS类。

.admin {颜色:粉红色;} 。中性{颜色:红;}

我希望这会对你有所帮助。