如果div值=会话用户名,则更改div颜色的if语句

时间:2016-05-19 19:12:39

标签: php html css session mysqli

我正在为我正在创建的消息系统尝试我们的事情。我正在尝试使用if语句来更改发送邮件的人的姓名颜色(如果您是发送邮件的人)。因此,例如,如果我收到来自用户的消息,他的名字将显示为黑色,如果我向他发送消息,我的名字将以红色显示。

简而言之,如果$ _SESSION ['userName']是发送邮件的人,则将div#sender的颜色更改为红色。

$user = $_SESSION['userName'];
        $qu = mysqli_query($con, "SELECT * FROM `messages` WHERE `to`='$user' OR `from`='$user'");
        if (mysqli_num_rows($qu) > 0) {
            while ($row = mysqli_fetch_array($qu)) {
        echo '<tr><td><div id="sender">'.$row["from"].'</div></td><td><div id="r_message">'.$row["message"].'</div></td></tr>';

            }
        }

if(''.$row["from"].'' == $user){

echo'

<style>

#sender{
color:red;

}

</style>

';

}
else{echo'NO';}

每次,即使数据库中的大量消息都是由$ _SESSION用户以及其他用户发送的,我也会回复“否”。

2 个答案:

答案 0 :(得分:1)

这就是我要做的......

首先,在页面的CSS样式表中,为<tr>定义两个样式类。我们打电话给'em good_guybad_guy(为什么不呢?

现在,在该循环中,您只需确定要使用的样式:

    $qu = mysqli_query($con, 
       "SELECT * FROM `messages` "
       . "WHERE `to`='$user' OR `from`='$user'"
    );
    if (mysqli_num_rows($qu) > 0) {
        while ($row = mysqli_fetch_array($qu)) {

        $class = ( $row["from"] == 'Brutus' : 'bad_guy' : 'good_guy' );

    echo "<tr class='$class'>"   // note use of double-quotes here!
       .   "<td>"
       .     "<div id='sender'>".$row["from"]."</div>";
       .   "</td>"
 ... blah blah blah blah blah ...
       . "</tr>";

    }  // end while
 } // end if

现在,您会立即注意到我试图扩展内容以使其更具可读性。 (我希望我没有出现任何语法错误或误导。)

如上所述,使用 double 引号是必要的,以使PHP在字符串的文字文本中出现时,插入变量$class

当(凯撒)看到这个页面时,布鲁图斯会被标记为坏人。在CSS样式表中解析了good_guybad_guy外观的所有视觉细节。 (在我看来,你应该总是使用工作表中的命名样式,而不是内联样式标记。)

答案 1 :(得分:0)

$row数组在循环中创建,您将在循环外部使用。此外,您还可以通过这种方式创建多个重复的ID。你应该使用类。

尝试这样的事情:

while ($row = mysqli_fetch_array($qu)) {
    if($row['from']==$user) $class='sender';
    else $class = 'reciever';
    echo '<tr><td><div class="'.$class.'">'.$row["from"].'</div></td><td><div id="r_message">'.$row["message"].'</div></td></tr>';
}

然后把它放在headder中,不需要用PHP输出..

<style>
.sender{ color: red; }
</style>