اذهب إلى المحتوى
  • 0

[php] Trying to get property of non-object

محمد المصري12

السؤال

سلام عليكم

أحاول تحديث قاعدة البيانات ببيانات مصفوفة كالتالي

$sizes = array(json_decode($_POST["sizeValues"]));
       // $id = $_POST["id"];

    print_r($sizes);

        foreach ($sizes as  $size) {
            $name = intval($size->item_name);
            $id = intval($size->item_id);

            $sql = "UPDATE patron_sizes SET size_count='$name',  WHERE id=$id";
            $result = $conn->query($sql);
            if ($result) {
                echo 'done';
            }

        }

أواجه الخطأ التالي


Notice:  Trying to get property 'item_name' of non-object in <b>C:\xampp\htdocs\atms\requests\edit_patron.php</b> on line 35

Notice:  Trying to get property 'item_id' of non-object in <b>C:\xampp\htdocs\atms\requests\edit_patron.php</b> on line 36

المصفوفة تطبع بالشكل التالي

Array
(
    [0] => Array
        (
            [0] => stdClass Object
                (
                    [item_id] => 2758
                    [item_name] => 5000
                )

            [1] => stdClass Object
                (
                    [item_id] => 2759
                    [item_name] => 4000
                )

            [2] => stdClass Object
                (
                    [item_id] => 2760
                    [item_name] => 6000
                )

            [3] => stdClass Object
                (
                    [item_id] => 2761
                    [item_name] => 0
                )

            [4] => stdClass Object
                (
                    [item_id] => 2762
                    [item_name] => 2
                )

            [5] => stdClass Object
                (
                    [item_id] => 2763
                    [item_name] => 2000
                )

            [6] => stdClass Object
                (
                    [item_id] => 2764
                    [item_name] => 2000
                )

            [7] => stdClass Object
                (
                    [item_id] => 2765
                    [item_name] => 2000
                )

            [8] => stdClass Object
                (
                    [item_id] => 2766
                    [item_name] => 2000
                )

            [9] => stdClass Object
                (
                    [item_id] => 2767
                    [item_name] => 2000
                )

            [10] => stdClass Object
                (
                    [item_id] => 2768
                    [item_name] => 10000
                )

            [11] => stdClass Object
                (
                    [item_id] => 2769
                    [item_name] => 5000
                )

            [12] => stdClass Object
                (
                    [item_id] => 2770
                    [item_name] => 2500
                )

            [13] => stdClass Object
                (
                    [item_id] => 2771
                    [item_name] => 2500
                )

            [14] => stdClass Object
                (
                    [item_id] => 2772
                    [item_name] => 5000
                )

        )

)

ما الحل فضلا ؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

تحدث المشكلة في الغالب بسبب ان المصفوفة sizes تحتوي على مصفوفة اخرى متداخلة nested فهي مصفوفة multi dimensional. وللمرور على عناصر مصفوفة مثل التي لديك اظن انك تحتاج المرور على الكائنات بداخل اول مصفوفة. فيكون:

foreach ($sizes[0] as  $size) {
.. الباقي

أيضا قد تحتاج طباعة size من داخل حلقة foreach لفهم كيفية المرور على عناصره.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

أحسنت أخي الفاضل

نجحت بالفعل و هذا الكود بعد تنقيحة لمن أراد الاستفادة لاحقا و أتشرف برأي حضرتك لو ممكن يتكتب بشكل أفضل 

$sizes = array(json_decode($_POST["sizeValues"]));

foreach ($sizes[0] as $key => $size) {
$name = mysqli_real_escape_string($conn,$size->item_name,);
$id = mysqli_real_escape_string($conn,$size->item_id,);

$stmt = $conn->prepare('UPDATE patron_sizes SET size_count=?  WHERE id = ? ')  ;
$stmt->bind_param('ss',$name,$id);

 $result = $stmt->execute();

        }

        if ($result) {
            echo 'done';
        }

        else {
            echo $stmt->error;
        }

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...