簡體   English   中英

如果其他語句顯示錯誤的div

[英]If Else Statement displaying wrong div

我正在嘗試在一個對話中為每個用戶顯示不同的聊天氣泡顏色。

這有效:

<?php
    $chatmsgQ="SELECT * FROM ve_chat c 
               WHERE c.isActive='1' AND c.fromUserId='$loginid_session' 
               OR c.toUserId='$loginid_session'";
    $chatmsgresult=  mysqli_query($db,$chatmsgQ);
    while($chatmsg=  mysqli_fetch_array($chatmsgresult)){;?>

       <?php if($chatmsg['fromUserId']==$loginid_session):?>
       <!-- user one -->
    <p class='bubble pull-left'><?=$chatmsg['message'];?></p>

    <?php elseif($chatmsg['fromUserId']!=$loginid_session):?>
      <!-- user two-->
    <p class='bubbleother pull-right'><?=$chatmsg['message'];?></p>
    <?php endif;?>
    <?php } ;
?>

但是前面的陳述並不是很需要。 用戶需要在整個對話中保持相同的泡泡。 下面的查詢是正確的,但不起作用。 我做錯了什么?

<?php
    $chatmsgQ="SELECT * FROM ve_chat c 
     WHERE c.isActive='1' AND c.fromUserId='$loginid_session' 
     OR c.toUserId='$loginid_session'";
    $chatmsgresult=  mysqli_query($db,$chatmsgQ);
    while($chatmsg=  mysqli_fetch_array($chatmsgresult)){;?>

       <?php if($chatmsg['fromUserId']==$loginid_session OR $chatmsg['toUserId']==$loginid_session):?>
       <!-- user one -->
   <p class='bubble pull-left'><?=$chatmsg['message'];?></p>

   <?php elseif($chatmsg['fromUserId']!=$loginid_session OR $chatmsg['toUserId']!=$loginid_session):?>
    <!-- user two-->
   <p class='bubbleother pull-right'><?=$chatmsg['message'];?></p>
   <?php endif;?>
    <?php } ;
?>

首先,您需要更改SQL查詢:

     $chatmsgQ="SELECT * FROM ve_chat c 
     WHERE c.isActive='1'";

因為如果您在條件c.fromUserId ='$ loginid_session'或c.toUserId ='$ loginid_session'之后使用條件,則所有查詢都針對該用戶,不是所有用戶,因此該查詢結果將永遠不會執行第二條語句。

您能否在沒有其他條件的情況下嘗試:

<?php
$chatmsgQ="SELECT * FROM ve_chat c 
 WHERE c.isActive='1' AND c.fromUserId='$loginid_session' 
 OR c.toUserId='$loginid_session'";
$chatmsgresult=  mysqli_query($db,$chatmsgQ);
while($chatmsg=  mysqli_fetch_array($chatmsgresult)){;?>

      <?php if($chatmsg['fromUserId']==$loginid_session OR $chatmsg['toUserId']==$loginid_session):?>
       <!-- user one -->
<p class='bubble pull-left'><?=$chatmsg['message'];?></p>

 <?php else:?>
   <!-- user two-->
<p class='bubbleother pull-right'><?=$chatmsg['message'];?></p>
   <?php endif;?>
    <?php } ;?>

原來我一直都有解決方案...由於奇怪的原因,我第一次在下面運行它的代碼時得出了不同的結果,但是在嘗試了多次后才起作用。

<?php
    $chatmsgQ="SELECT * FROM ve_chat c 
               WHERE c.isActive='1' AND c.fromUserId='$loginid_session' 
               OR c.toUserId='$loginid_session'";
    $chatmsgresult=  mysqli_query($db,$chatmsgQ);
    while($chatmsg=  mysqli_fetch_array($chatmsgresult)){;?>

       <?php if($chatmsg['fromUserId']==$loginid_session):?>
       <!-- user one -->
    <p class='bubble pull-left'><?=$chatmsg['message'];?></p>

    <?php elseif($chatmsg['fromUserId']!=$loginid_session):?>
      <!-- user two-->
    <p class='bubbleother pull-right'><?=$chatmsg['message'];?></p>
    <?php endif;?>
    <?php } ;
?>

暫無
暫無

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

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