簡體   English   中英

PHP:如何顯示與MySQL中其他行不同的特定行?

[英]PHP:how to show specific row different from others in MySQL?

我正在創建一個php聊天應用程序,我有兩個聊天面板,一個是管理員區域,另一個是客戶端聊天區域,兩個面板區域中的內容均來自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>';

}

任何幫助,將不勝感激。

謝謝。

假設您在messages表中有一列名為role的列,該列可以是“ admin”或“ user”,則您的循環可能類似於:

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

這是一個廣泛的例子。 您確實應該在users表上加入messages表

編輯

將查詢更改為:

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

並在列中添加到您的用戶表

  "ALTER TABLE `users` ADD `role` VARCHAR(5);"

在您的sql客戶端中。

但是,如果您有多個具有相同名稱的用戶,這將無法很好地工作,messages表應該具有一個userid列,而不是一個user name列,並且您應該加入該列。

因此,您在messages表中有一個用戶名,這意味着您可能有一個user表,其中包含所有用戶信息。 如果您沒有,那應該。

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 {color:pink;} .normal {color:red;}

我希望這可以幫助你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM