محمد مهدی امیری
2 سال پیش توسط محمد مهدی امیری مطرح شد
5 پاسخ

ارور NULL در آرایه offset

سلام خسته نباشید
من دارم یک سایت طراحی میکنم با php
یک جایی به مشکل برخوردم

<?php
session_start();
include("db.php");
include("links.php");
$user = mysqli_query($connect, "SELECT * FROM users WHERE Id = '".$_SESSION["userId"]."' ")
        or die("Failed to query database".mysql_error());
        $user = mysqli_fetch_assoc($user);
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div class="container-fluid">
        <div class="row">
            <div class="cil-md-4">
                <p>Hi <?php echo $user["User"];   ?></p>
                <input type="text" id="fromUser" value=<?php echo $user["Id"]; ?> hidden />

                <p>Send message to:</p>
                <ul>
                    <?php
                        $msgs = mysqli_query($connect, "SELECT * FROM users ")
                                or die("Failed to query database".mysql_error());
                                while($msg = mysqli_fetch_assoc($msgs));
                                {
                                    echo '<li><a href="?toUser='.$msg["Id"].'">'.$msg["User"].'</a></li>';
                                }
                    ?>
                </ul>
            </div>
            <div class="cil-md-4">

            </div>
            <div class="cil-md-4">

            </div>
        </div>
    </div>
</body>
</html>

وقتی کد رو اجرا میکنم لاین 31 ارور میده متن ارور:

Notice: Trying to access array offset on value of type null in C:\xampp\htdocs\New folder\chatbox.php on line 31

Notice: Trying to access array offset on value of type null in C:\xampp\htdocs\New folder\chatbox.php on line 31

ثبت پرسش جدید
احسان داوری
تخصص : برنامه نویس
@ehsndvr 2 سال پیش مطرح شد
1

سلام
این خطا به این دلیله که شما دارید داخل آرایه user اطلاعات مربوط به کاربران رو از پایگاه داده (DataBase) در یافت میکنید ، حالا به هر دلیل این داده ها از پایگاه داده برگشت داده نمیشن و مقدار خالی (Null) داخل متغیر درج میشه ، حالا پایین تر شما نوشتید که بیا مقدار Id رو از این آرایه بگیر در صورتی که آراه خالیه ، و برای همین داره این خطا رو به شما میده.
باید حتما شرطی بنویسید که ببینه اگر مقدار متغییر user خالی بود ، خطای مرتبطی رو به کاربر نشون بده.


محمد مهدی امیری
تخصص : جوجه برنامه نویس PHP
@wpuser 2 سال پیش آپدیت شد
0

ممنون خیلی کمک کردین
متغیر $user اول رو باید به $users تغیر میدادم و داخل متغیر $user دوم داخلش که متغیر$user رو فراخوانی میکرد رو به $users تغیر دادم
و سیمی کالنه خط 29 رو برداشتم اوکی شد ممنون


احسان داوری
تخصص : برنامه نویس
@ehsndvr 2 سال پیش مطرح شد
0

@wpuser
خواهش میکنم
خداروشکر که درست شد.
اگر از بنده سوالاتی در مورد برنامه نویسی و یا ... دارید میتونید به لینک زیر مراجعه بکنید.
لینک سرور دیسکورد


محمد مهدی امیری
تخصص : جوجه برنامه نویس PHP
@wpuser 2 سال پیش مطرح شد
0

@ehsndvr
ببخشید من دوباره به یک مشکل برخوردم

<?php
session_start();
include("db.php");
include("links.php");

$users = mysqli_query($connect, "SELECT * FROM users WHERE Id = '".$_SESSION["userId"]."' ")
        or die("Failed to query database".mysql_error());
        $user = mysqli_fetch_assoc($users);
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <title>My chatbox</title>
</head>
<body>
    <div class="container-fluid">
        <div class="row">
            <div class="col-md-4">
                <p>Hi <?php echo $user["User"]; ?></p>
                <input type="text" id="formUser" value=<?php echo $user["Id"]; ?> hidden />

                <p>Send message to:</p>
                <ul>
                    <?php                     
                        $msgs = mysqli_query($connect, "SELECT * FROM users")
                                or die("Failed to query database".mysql_error());
                                while($msg = mysqli_fetch_assoc($msgs))
                                {
                                    echo '<li><a href="?toUser='.$msg["Id"].'">'.$msg["User"].'</a></li>';
                                }
                    ?>
                </ul>
                <a href="index.php"><-- Back</a>
            </div>
            <div class="col-md-4">
                <div class="modal-dialog">
                    <div class="modal-content">
                        <div class="modal-header ">
                            <h4>
                                <?php 
                                if (isset($_GET["toUser"]))
                                {
                                    $userName = mysqli_query($connect, "SELECT * FROM users WHERE Id = '".$_GET["toUser"]."' ")
                                    or die("Failed to query database".mysql_error());
                                    $uName = mysqli_fetch_assoc($userName);
                                    echo '<input type="text" value='.$_GET["toUser"].' id="toUser" hidden/>';
                                    echo $uName["User"];
                                }                            
                                else
                                {
                                    $userName = mysqli_query($connect, "SELECT * FROM users")
                                    or die("Failed to query database".mysql_error());
                                    $uName = mysqli_fetch_assoc($userName);
                                    $_SESSION["toUser"] = $uName["Id"];
                                    echo '<input type="text" value='.$_SESSION["toUser"].' id="toUser" hidden/>';
                                    echo $uName["User"];
                                }
                                ?>
                            </h4>
                        </div>
                <div class="modal-body" id="msgBody" style="height:400px; overflow-y: scroll; overflow-x: hidden;">
                    <?php
                        if (isset($_GET["toUser"]))
                        $chats = mysqli_query($connect, "SELECT * FROM messages WHERE (FromUser = '".$_SESSION["userId"]."' AND ToUser = '".$_GET["toUser"]."') OR (FromUser = '".$_GET["toUser"]."' AND ToUser = '".$_SESSION["userId"]."') ")
                        or die("Failed to query database".mysql_error());                        else
                            $chats = mysqli_query($connect, "SELECT * FROM messages WHERE (FromUser = '".$_SESSION["userId"]."' AND ToUser = '".$_SESSION["toUser"]."') OR (FromUser = '".$_SESSION["toUser"]."' AND ToUser = '".$_SESSION["userId"]."') ")
                            or die("Failed to query database".mysql_error());

                            while($chat = mysqli_fetch_assoc($chats))
                            {
                                if ($chat["FromUser"] == $_SESSION["userId"])
                                echo "<div style='text-align:left;'>
                                        <p style=''background-color:yrllow; word-warp:break-word; display:inline-block; padding:5px;border-radius:10px; maxwidth:70%;'>
                                            ".$chat["Message"]."
                                        </p>
                                        </div>";
                                        else
                                            echo "<div style='text-align:right;'>
                                            <p style=''background-color:lightblue; word-warp:break-word; display:inline-block; padding:5px;border-radius:10px; maxwidth:70%;'>
                                                ".$chat["Message"]."
                                            </p>
                                            </div>";

                            }
                    ?>
                </div>
                <div class="modal-footer">
                    <textarea id="message" class="form-control" style="height:70px;"></textarea>
                    <button id="send" class="btn btn-primary" style="hright:70%;">send</button>
                </div>
            </div>
        </div>
            </div>
            <div class="col-md-4">

            </div>
        </div>
    </div>
</body>
</html>

متن ارور:

Fatal error: Uncaught Error: Call to undefined function mysql_error() in C:\xampp\htdocs\New folder\chatbox.php:65 Stack trace: #0 {main} thrown in C:\xampp\htdocs\New folder\chatbox.php on line 65
یک تحقیق کردم متوجه شدم که mysql_error() منسوخ شده و بایداز mysqli_error() استفاده کنم و داخل وقتی اینکارو انجام دادم این ارور میاد
Failed to query databaseUnknown column 'FromUser' in 'where clause'


احسان داوری
تخصص : برنامه نویس
@ehsndvr 2 سال پیش مطرح شد
0

سلام به شما صبحتون بخیر
متن خطا میگه جدول به نام FromUser ندارید.
و فکر میکنم مشکل باید از این خط باشه :

$chats = mysqli_query($connect, "SELECT * FROM messages WHERE (FromUser = '".$_SESSION["userId"]."' AND ToUser = '".$_GET["toUser"]."') OR (FromUser = '".$_GET["toUser"]."' AND ToUser = '".$_SESSION["userId"]."') ")
یا این خط
$chats = mysqli_query($connect, "SELECT * FROM messages WHERE (FromUser = '".$_SESSION["userId"]."' AND ToUser = '".$_SESSION["toUser"]."') OR (FromUser = '".$_SESSION["toUser"]."' AND ToUser = '".$_SESSION["userId"]."') ")
                            or die("Failed to query database".mysql_error());

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام