2017-08-30 75 views
0

它的外觀: https://jsfiddle.net/jef2L8m6/根據數據庫中的內容將結果放入不同的div中?

應該怎麼看: https://jsfiddle.net/jef2L8m6/1/

我知道這看起來非常糟糕,這僅僅是出於測試目的。

一些後端代碼的:

<?php //Selects all of the logged in users messages. 
$name = $_SESSION["name"]; 

$con = mysqli_connect('localhost','root','','chat'); 
if (!$con) { 
    die('Could not connect: ' . mysqli_error($con)); 
} 

mysqli_select_db($con,"ajax_demo"); 
$sql="SELECT * FROM `chat` ORDER BY date"; 
$result = mysqli_query($con,$sql); 
$numrows = mysqli_num_rows($result); 

if($numrows == "0" or !isset($_SESSION["name"])){ 
      echo "<div class='msg'>You are not registered (Or there are no messages to display)</div>"; 
      exit(); 
     }else{ 
      echo ""; 
     } 


echo "<div class='msg_container'>"; 
while($row = mysqli_fetch_array($result)) { 
    echo "<div class='msg_user'>"; 
    echo "<div class='username_user'><span>" . $row['username'] . "</span></div>"; 
    echo "<div class='message_user'><span>" . $row['message'] . "</span></div>"; 
    echo "</div>"; 
    } 
echo ""; 
mysqli_close($con); 
?> 

非常感謝您抽出寶貴的時間來閱讀。

我想弄清楚如何改變每個獨立用戶的div標籤取決於他們的名字?

有沒有辦法做到這一點使用PHP,我試圖做一個選擇就在用戶的消息的2個獨立的查詢的,另一種是選擇每個人(不包括用戶)

但他們沒有因爲工作它沒有正確排序。

如果出來的用戶名不等於會話中的用戶名,我可以以某種方式更改div的使用PHP嗎?

非常感謝,如果你不認爲我解釋得很好,請給我一些反饋,我會改變/添加你所需要的,謝謝!

+1

那麼,什麼是比較'$行[「用戶名」]'和會話值的問題? –

+0

只需使用userId檢查已登錄的用戶會話,並將其消息放入正確的位置,並將其他消息放入左側 –

+1

爲什麼不設置本地用戶'$ name',並從數據庫中將用戶切換到具有'if'的'class'。 ..其他'切換雙方。 – Sand

回答

0
while($row = mysqli_fetch_array($result)) { 
    $class = 'msg'; 
    if ($row['username'] == $_SESSION['name']) { 
     $class = 'msg_user'; 
    } 

    echo "<div class='" . $class . "'>"; 
    // other codes here 
} 
+0

你能解釋你的代碼,爲什麼它解決了這個問題? *僅限代碼*答案通常沒有幫助。 – Zabuza

+0

我會試試這個,我理解邏輯,肯定有一個原因,我沒有嘗試這樣的事情。 我會讓你知道發生了什麼。 – Galliger

+0

@Zabuza 它不是太複雜,它檢查從數據庫輸出的行是否等於會話中的字符串。 然後根據會話是否等於名稱來更改div。 希望它的作品我要測試它(我不知道爲什麼我沒有想到這一點) – Galliger

1

Image of the system now working.

謝謝你這麼多「u_mulder」,你一直在讓我想到了一個簡單的方法來解決這個問題非常有幫助。

我在想太複雜的事情太簡單了!

這裏是任何人最後的代碼誰,這可能幫助:

while($row = mysqli_fetch_array($result)) { 
    $class_msg = "msg"; 
    $class_username = "username"; 
    $class_message = "message"; 

    if ($row['username'] == $_SESSION['name']) { 
    $class_msg = "msg_user"; 
    $class_username = "username_user"; 
    $class_message = "message_user"; 
    } 

    echo "<div class='$class_msg'>"; 
    echo "<div class='$class_username'><span>" . $row['username'] . "</span></div>"; 
    echo "<div class='$class_message'><span>" . $row['message'] . "</span></div>"; 
    echo "</div>"; 
    } 
相關問題