محمد الاهلي نشر 20 سبتمبر 2022 أرسل تقرير نشر 20 سبتمبر 2022 سلام عليكم ادرس الآن ال functions و حاولت اطبق بعمل function احددلها ببساطة شديدة اسم الجدول و الحقل المطلوب و هي تجيبلي الداتا اللي جواه الكود كالتالي function getData($table,$data){ $q = "select * from $table"; $connect = mysqli_connect('localhost','root','','moh'); $result = $connect->query($q); while ($row = mysqli_fetch_assoc($result)){ return $row[$data]; } } سؤال رقم 1 لما جيت استدعي ال function بالطريقة دي getData('user','id'); // Get Data From id field in table (user ) جاتلي رسالة خطأ Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, bool given in الخطأ يشير الى السطر الخاص بحلقة while فلم يحدث معي هذا الخطأ السؤال الثاني انا اصلا معرف متغير connect و الخاص بالاتصال بقاعدة البيانات قبل كده بس من جوا الفانكشن مش راضي ياخده غير لما اعرفهوله من جديد فايه الحل ؟ شكرا لكم 1 اقتباس
0 Wael Aljamal نشر 21 سبتمبر 2022 أرسل تقرير نشر 21 سبتمبر 2022 انتبه لما يلي: يوجد نوعين من طرق التعامل مع إجرائيات mysqli بناء الاتصال واستخدامه حاول البحث عن PHP mysqli query() Function في عملية الاتصال تقوم باستخدام Procedural style: mysqli_connect $con = mysqli_connect("localhost","my_user","my_password","my_db"); فعليه نتابع استخدام الإجرائيات بالشكل mysqli_query: $result = mysqli_query($con, $q) أي تمرير الاتصال مع كل دالة تستخدمه. مشكلتك: إن ما تحاول القيام به: $connect->query($q); هو من النوع Object oriented style: $mysqli = new mysqli("localhost","my_user","my_password","my_db"); ثم يمكن العمل ك $mysqli -> query(query, resultmode) الذي يستخدم الاتصال ك كائن برمجي نطبق من خلاله الدوال. عليك استخدام أحد الطريقتين 1 اقتباس
0 محمد الاهلي نشر 21 سبتمبر 2022 الكاتب أرسل تقرير نشر 21 سبتمبر 2022 شكرا لحضرتك الكود بقا كده بس لسه الخطأ ظاهر function getData($table,$data){ $q = "select * from $table"; $connect = mysqli_connect('localhost','root','','moh'); $result= mysqli_query($connect, $q); while ($row = mysqli_fetch_assoc($result)){ return $row[$data]; } } اقتباس
0 Wael Aljamal نشر 21 سبتمبر 2022 أرسل تقرير نشر 21 سبتمبر 2022 بتاريخ منذ ساعة مضت قال محمد الاهلي: شكرا لحضرتك الكود بقا كده بس لسه الخطأ ظاهر هل اختلفت رسالة الخطا؟ أرجو عمل echo q و echo result لنعرف ما يحصل. 1 اقتباس
0 محمد الاهلي نشر 21 سبتمبر 2022 الكاتب أرسل تقرير نشر 21 سبتمبر 2022 لم تختلف اخي Notice: Undefined variable: سواء لل q او لل result اقتباس
0 Wael Aljamal نشر 21 سبتمبر 2022 أرسل تقرير نشر 21 سبتمبر 2022 بتاريخ 33 دقائق مضت قال محمد الاهلي: لم تختلف اخي Notice: Undefined variable: سواء لل q او لل result أرجو إرفاق ما يتم طباعته ضمن تنفيذ الدالة لأتمكن من تحديد المشكلة اطبع المتغيرات بعد تعريفهم وليس قبل. 1 اقتباس
0 محمد الاهلي نشر 21 سبتمبر 2022 الكاتب أرسل تقرير نشر 21 سبتمبر 2022 الكود كامل اهو اخي <?php function getData($table,$data){ $q = "select * from $table"; $connect = mysqli_connect('localhost','root','','moh'); $result= mysqli_query($connect, $q); //$result = $connect->query($q); while ($rows = mysqli_fetch_assoc($result)){ return $rows[$data]; } } getData('user','id'); echo $q; echo $result; اقتباس
1 Wael Aljamal نشر 21 سبتمبر 2022 أرسل تقرير نشر 21 سبتمبر 2022 بتاريخ 5 دقائق مضت قال محمد الاهلي: الكود كامل اهو اخي المتغيرات التي يتم تعريفها داخل دالة غير مرئية خارجها، ما أقصده كالتالي: <?php function getData($table,$data){ $connect = mysqli_connect('localhost','root','','moh'); $q = "select * from $table"; echo $q; $result= mysqli_query($connect, $q); echo $result; while ($rows = mysqli_fetch_assoc($result)){ return $rows[$data]; } } echo 'result: ' . getData('user','id'); 1 اقتباس
0 محمد الاهلي نشر 21 سبتمبر 2022 الكاتب أرسل تقرير نشر 21 سبتمبر 2022 نعم فهمت اخي هذه هي النتيجة select * from user Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, bool given in C:\xampp\htdocs\moh\test.php on line 12 result: اقتباس
0 Wael Aljamal نشر 21 سبتمبر 2022 أرسل تقرير نشر 21 سبتمبر 2022 بتاريخ 1 دقيقة مضت قال محمد الاهلي: هذه هي النتيجة على الأغلب لايوجد بيانات في الجدول user تأكد من اسمه، فيعيد الاستعلام result = false $result= mysqli_query($connect, $q); echo $result; // أضف هذا السطر if (!$result) { printf("Error: %s\n", mysqli_error($con)); exit(); } while ($rows = mysqli_fetch_assoc($result)){ return $rows[$data]; } 1 اقتباس
0 محمد الاهلي نشر 21 سبتمبر 2022 الكاتب أرسل تقرير نشر 21 سبتمبر 2022 بعتذر جدا هو اسمه users و ليس user حقك عليا الآن عدلت لكن جالي خطأ جديد select * from users Fatal error: Uncaught Error: Object of class mysqli_result could not be converted to string in C:\xampp\htdocs\moh\test.php:10 Stack trace: #0 C:\xampp\htdocs\moh\test.php(23): getData('users', 'id') #1 {main} thrown in C:\xampp\htdocs\moh\test.php on line 10 اقتباس
1 Wael Aljamal نشر 21 سبتمبر 2022 أرسل تقرير نشر 21 سبتمبر 2022 بتاريخ 1 دقيقة مضت قال محمد الاهلي: الآن عدلت لكن جالي خطأ جديد ما هو السطر 10 اقتباس
0 محمد الاهلي نشر 21 سبتمبر 2022 الكاتب أرسل تقرير نشر 21 سبتمبر 2022 echo $result; لما حطيته ككومنت اشتغلت الفنكشن شكرا شكرا شكرا لوقتك اخي الفاضل و سامحني على التعب كده ال فنكشن جابت اول نتيجة في الجدول بس لو عاوزها اخليها تجيب كل اللي فيه الجدول بناء على الاستعلام اعمل ايه ؟ 1 اقتباس
0 Wael Aljamal نشر 21 سبتمبر 2022 أرسل تقرير نشر 21 سبتمبر 2022 بتاريخ 7 دقائق مضت قال محمد الاهلي: هو اسمه users و ليس user حقك عليا التعليمة echo $result; غير ضرورية يمكنك حذفها 1 اقتباس
0 محمد الاهلي نشر 21 سبتمبر 2022 الكاتب أرسل تقرير نشر 21 سبتمبر 2022 نعم حذفتها كده ال فنكشن جابت اول نتيجة في الجدول بس لو عاوزها اخليها تجيب كل اللي فيه الجدول بناء على الاستعلام اعمل ايه ؟ 1 اقتباس
0 Wael Aljamal نشر 21 سبتمبر 2022 أرسل تقرير نشر 21 سبتمبر 2022 بتاريخ 5 دقائق مضت قال محمد الاهلي: كده ال فنكشن جابت اول نتيجة في الجدول بس السبب أنها تعمل return ضمن الحلقة وبذلك يتوقف تنفيذها، يمكنك عمل تجميع للنتائج $final_result = ""; while ($rows = mysqli_fetch_assoc($result)){ $final_result .= $rows[$data] . '<br>'; } return $final_result; 1 اقتباس
السؤال
محمد الاهلي
سلام عليكم
ادرس الآن ال functions و حاولت اطبق بعمل function احددلها ببساطة شديدة اسم الجدول و الحقل المطلوب و هي تجيبلي الداتا اللي جواه
الكود كالتالي
function getData($table,$data){ $q = "select * from $table"; $connect = mysqli_connect('localhost','root','','moh'); $result = $connect->query($q); while ($row = mysqli_fetch_assoc($result)){ return $row[$data]; } }
سؤال رقم 1
لما جيت استدعي ال function بالطريقة دي
جاتلي رسالة خطأ
Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, bool given in
الخطأ يشير الى السطر الخاص بحلقة while
فلم يحدث معي هذا الخطأ
السؤال الثاني
انا اصلا معرف متغير connect و الخاص بالاتصال بقاعدة البيانات قبل كده بس من جوا الفانكشن مش راضي ياخده غير لما اعرفهوله من جديد فايه الحل ؟
شكرا لكم
15 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.