在设计方面我应该如何在左侧和右侧显示聊天消息

错误在第 12 行if($display["logged_user"]==$user)。错误是


注意:未定义索引:logged_user


如果我使用它=来==比较该值,它只会在一侧显示两个用户之间的所有聊天消息。我想在左侧显示登录的用户消息,在右侧显示朋友消息。提前致谢。


    <?php

    session_start();

    $conn = new mysqli('localhost', 'root', '', 'company');

    $query = mysqli_query($conn,"select `message` FROM `data` where 

            (`logged_user`='$_SESSION[ID]' and `name`='$_SESSION[frendid]') 

            OR 

            (`logged_user`='$_SESSION[frendid]' and `name`='$_SESSION[ID]')");

    $user=$_SESSION['ID'];

    $rows=mysqli_num_rows($query);

    if ($rows>0) {

            while($display=mysqli_fetch_assoc($query)){

            if($display["logged_user"]==$user){ 

                echo "<p id ='right'>

                    $display[message]

                    </p>";

            }

           else{    

            echo "<p id ='left'>

            $display[message]

            </p>";

            }

    }

    }

    ?>


莫回无
浏览 138回答 1
1回答

四季花海

=而不是==将比较转换为赋值。您的查询也需要更新以返回用户。它也应该被参数化。$query = mysqli_prepare($conn, 'select message, logged_user FROM data where&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (logged_user = ? and name = ?)&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; OR&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (logged_user = ? and name = ?)');mysqli_stmt_bind_param($query, 'ssss', $_SESSION['ID'], $_SESSION['frendid'], $_SESSION['frendid'], $_SESSION['ID']);mysqli_stmt_execute($query);有关更多信息,请参阅https://www.php.net/manual/en/mysqli.quickstart.prepared-statements.php。也是name身份证?这似乎永远不会匹配。
打开App,查看更多内容
随时随地看视频慕课网APP