اخواني اوجاه مشكله عندما احوال استخراج معلومات من قاعدت البيانات الى form تظهر لي اخطاء

  • Bing

نفذت نفس صيغه الكود عند حذف معلومات من قاعده البيانات ولم يضهر لي اي خطاء

ولان عندم احوال استدعاء البيانات تظهر لي اخطاء

هذا هو الكود والاخطاء التي تظهر في المصتفح

<?php

include('configg.php');
 $ID=$_GET['id'];
$up=mysqli_query($con, "SELECT * FROM food WHERE id=$ID");
 $DATA=mysqli_fetch_array($up);
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>تاكيد الشراء</title>
</head>
<body>
<center>
   <div class="man">

    <form action="bageinsert"  method="POST">
        <h2>هل تريد فعلا تريد شراء الوجبات</h2>
        <input type="text" name="id" value='<?php echo $DATA['id']?>' >
        <br><br>
        <input type="text" name="name" value='<?php echo $DATA['name']?>'>
        <br> <br>
        <input type="text" name="price" value='<?php echo $DATA['price']?>'>
        <br>
        <br>
        <button type="submit" name="add" class="ad">تاكيد الاضافه</button>
        

    
</form>
   </div>
</center>
</body>
</html>




النتائج في المتصفح يظهر لي الخطاء التالي

Warning: Undefined array key "id" in C:\xampp\htdocs\vvnn\bageconform.php on line 4

Fatal error: Uncaught TypeError: mysqli_fetch_array(): Argument #1 ($result) must be of type mysqli_result, bool given in C:\xampp\htdocs\vvnn\bageconform.php:6 Stack trace: #0 C:\xampp\htdocs\vvnn\bageconform.php(6): mysqli_fetch_array(false) #1 {main} thrown in C:\xampp\htdocs\vvnn\bageconform.php on line 6


Mustafa_Suleiman أضف ردا

الخطأ الأول

يعني هذا الخطأ أنه تم استدعاء عنصر في مصفوفة غير معرف مسبقًا.

وفي حالتك، الخطأ يظهر في السطر الرابع من ملف bageconform.php ، وهذا يعني أن المفتاح "id" الذي تم استخدامه في السطر 4 لا يمكن العثور عليه في المصفوفة $ DATA التي تم إنشاؤها في السطر 3 باستخدام استعلام SQL الذي يستخدم الرمز المميز "=" للتحقق من تطابق قيمة العمود "id" في جدول البيانات food مع $ID الذي تم استرداده من الرابط. لذلك، يتم عرض تحذير يفيد بأن "id" ليس معرفًا مسبقًا في $ DATA.

الخطأ الثاني

فهو يحدث عند محاولة استخدام دالة mysqli_fetch_array مع وجود قيمة خاطئة كمدخل، حيث يتوقع أن يتم تمرير متغير يحتوي على نتائج استعلام SQL ولكن المتغير الممرر كان من النوع "boolean" بدلاً من ذلك.

هذا يعني أن الاستعلام SQL الذي تم تمريره في mysqli_query لم ينتج عنه نتائج صحيحة (نعم أو لا) بل استرجع قيمة خاطئة.

ويتم توليد هذا الخطأ عندما يتم تمرير القيمة الخاطئة (boolean) إلى mysqli_fetch_array، حيث يتوقع أن يحصل على متغير يحتوي على نتائج الاستعلام SQL.

حاول التحقق من النقاط التالية:

1-تأكد من أن اسم المستخدم وكلمة المرور واسم قاعدة البيانات المستخدمة في ملف الاتصال configg.php صحيحة ومتطابقة مع تلك المستخدمة في phpMyAdmin.

2- تأكد من أن الاستعلام المرسل إلى قاعدة البيانات صحيح ولا يحتوي على أخطاء إملائية أو أخرى.

3- تأكد من أنه تم تمرير قيمة صحيحة للمتغير $ID من الصفحة السابقة التي تم استخدامها للانتقال إلى هذه الصفحة.

4- تأكد من أن الاستعلام ينتج عنه نتائج ولا يقوم بإرجاع خطأ، ويمكنك التحقق من ذلك عن طريق استخدام دالة mysqli_num_rows().

5- تأكد من أن النتيجة المرجعة من استخدام دالة mysqli_query() هي من نوع mysqli_result، وإلا فإنها ستكون قيمة خاطئة وستؤدي إلى حدوث هذا الخطأ.

ياخي وما الحل الله يحفظك

هل قمت بالتأكد من النقاط التي ذكرتها؟ وبعد التأكد منها هل ظهرت لك أخطاء أخرى؟ وأرجو مشاركة الكود.

تاكدت من اسم قاعده البيانات وكلمه المرور

بقيه النقاط لم افهمهها اخي

لازلت مبتدى ارجوو المعذره اخبرني م الشي الي اغيره في الكود من احل تصحيحه

اقدام اعتذراي منكً مره اخرى لني ازعجتك

سأحاول شرح الأمر بمثال:

لإستخراج المعلومات من قاعدة البيانات ووضعها في نموذج HTML، يمكن استخدام لغة PHP بالتعاون مع قاعدة بيانات MySQL.

وسوف نستخدم الدالة mysqli_query() للقيام بذلك، وهي دالة تستخدم لتنفيذ الاستعلامات على قاعدة البيانات.

لنفترض أن لدينا جدول في قاعدة البيانات يسمى "users"، ونريد استخراج بعض المعلومات منه مثل الاسم والبريد الإلكتروني ووضعها في نموذج HTML.

فيما يلي مثال يوضح ذلك:

<?php
// تعيين متغيرات الاتصال بقاعدة البيانات
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database_name";

// إنشاء اتصال بقاعدة البيانات
$conn = mysqli_connect($servername, $username, $password, $dbname);


// التأكد من صحة الاتصال
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

// استعلام SQL لاستخراج المعلومات من الجدول
$sql = "SELECT name, email FROM users";
$result = mysqli_query($conn, $sql);


// عرض نموذج HTML مع البيانات المستخرجة
if (mysqli_num_rows($result) > 0) {
    while($row = mysqli_fetch_assoc($result)) {
        echo "<form>";
        echo "Name: <input type='text' name='name' value='" . $row["name"] . "'><br>";
        echo "Email: <input type='text' name='email' value='" . $row["email"] . "'><br>";
        echo "</form>";
    }
} else {
    echo "0 results";
}

// إغلاق الاتصال بقاعدة البيانات
mysqli_close($conn);
?>

الكود السابق، يقوم بإنشاء اتصال بقاعدة البيانات وإرسال استعلام SQL لاستخراج المعلومات من الجدول "users". ثم يتم عرض نموذج HTML مع البيانات المستخرجة في حلقة while لعرض كل سجل بيانات في صفحة HTML منفصلة. يتم إغلاق الاتصال بقاعدة البيانات في نهاية الكود.