Mohammed Aladimi نشر 25 سبتمبر 2020 أرسل تقرير مشاركة نشر 25 سبتمبر 2020 السلام عليكم ورحمة اللة وبركاتة واجهتني هذه المشكلة في كود Php و MySQLi بخصوص التأكد من وجود إسم المستخدم والبريد الإلكتروني في قاعدة البيانات أو لا ، عند تسجيل عضو جديد. Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\cms3\include\registor.php on line 32 Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\cms3\include\registor.php on line 34 لقد أرفقت لكما الملف أرجو أن تفحصوا الخطأ إن لكم وقت، فقد أتعبني البحث بدون جدوى وشكرا لكم registor.php 1 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 عزام عبد الحافظ نشر 25 سبتمبر 2020 أرسل تقرير مشاركة نشر 25 سبتمبر 2020 وعليكم السلام @Mohammed Aladimi. طريقة استخدامك لدالة mysqli_num_rows صحيحة قي السطر 32 و 34 لكن يبدو ان الخطأ من كود الإستعلام في السطر 30 و 31 : $sql_username = mysqli_query($conn,"SELECT 'username' FROM 'users' WHERE 'username' ='$username'"); $sql_email = mysqli_query($conn,"SELECT 'email' FROM 'users' WHERE 'email' = '$email'"); قم بتعديل الإستعلام SELECT بجعل الاقتباس موجود في القيمة username$ و email$ فقط: $sql_username = mysqli_query($conn,"SELECT username FROM users WHERE username ='$username'"); $sql_email = mysqli_query($conn,"SELECT email FROM users WHERE email = '$email'"); و تأكد من صِحّة اسم الجدول users و القوائم username و email . 2 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 Abdulhamid Hamsho2 نشر 26 سبتمبر 2020 أرسل تقرير مشاركة نشر 26 سبتمبر 2020 (معدل) وعليكم السلام @Mohammed Aladimi يبدو أن الخطاء في الكود الذي أرفقته هو في السطر 30 و 31 في كود الإستعلام من قاعدة البيانات $sql_username = mysqli_query($conn,"SELECT 'username' FROM 'users' WHERE 'username' ='$username'"); $sql_email = mysqli_query($conn,"SELECT 'email' FROM 'users' WHERE 'email' = '$email'"); أرى أن تقوم بتعديل الكود ليصبح بالشكل التالي $sql_username = mysqli_query($conn,"SELECT * FROM users WHERE username ='{$username}'"); $sql_email = mysqli_query($conn,"SELECT * FROM users WHERE email = '{$email}'"); كما يمكنك أيضًا التحقق من اسم المستخدم والبريد الإلكتروني بإستعلام واحد من خلال الكود التالي $sql = mysqli_query($conn, "SELECT * FROM users WHERE "; $sql .= "username = '{$username}'"; $sql .= "AND email = '{$email}'"; $sql .= "LIMIT 1"); ثم ارسال رسالة أن اسم المستخدم أو كلمة المرور خاطئة تم التعديل في 26 سبتمبر 2020 بواسطة Abdulhamid Hamsho 1 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 ayoubridouani نشر 26 سبتمبر 2020 أرسل تقرير مشاركة نشر 26 سبتمبر 2020 (معدل) بتاريخ 7 ساعات قال Abdulhamid Hamsho: وعليكم السلام @Mohammed Aladimi يبدو أن الخطاء في الكود الذي أرفقته هو في السطر 30 و 31 في كود الإستعلام من قاعدة البيانات $sql_username = mysqli_query($conn,"SELECT 'username' FROM 'users' WHERE 'username' ='$username'"); $sql_email = mysqli_query($conn,"SELECT 'email' FROM 'users' WHERE 'email' = '$email'"); أرى أن تقوم بتعديل الكود ليصبح بالشكل التالي $sql_username = mysqli_query($conn,"SELECT * FROM users WHERE username ='{$username}'"); $sql_email = mysqli_query($conn,"SELECT * FROM users WHERE email = '{$email}'"); كما يمكنك أيضًا التحقق من اسم المستخدم والبريد الإلكتروني بإستعلام واحد من خلال الكود التالي $sql = mysqli_query($conn, "SELECT * FROM users WHERE "; $sql .= "username = '{$username}'"; $sql .= "AND email = '{$email}'"; $sql .= "LIMIT 1"); ثم ارسال رسالة أن اسم المستخدم أو كلمة المرور خاطئة كما قال الأخ محمد أن الخطأ يوجد في السطر 30 و 31 أثناء كتابة الإستعلام واقتراحه الأول لحل المشكلة صحيح, لكن التاني به bug حرج والسبب هو أن الأخ @Aladimi يريد أن يتأكد إن ما كان ال user يحاول أن يتسجل بالموقع ب username و email موجود فعلا في قاعدة البيانات أم لا, وفي هده اللحظة AND operator غير صالح لأنه سيمنع user من التسجيل فقط إن أدخل username و email متشابهين لبيانات row واحدة في قاعدة البيانات ومنه الحل هو استعمال OR operator. # only username field, because we will only count rows $sql = mysqli_query($conn, "SELECT username FROM users WHERE "; $sql .= "username = '{$username}'"; # OR operator $sql .= "OR email = '{$email}'"; $sql .= "LIMIT 1"); تم التعديل في 26 سبتمبر 2020 بواسطة ayoubridouani اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
Mohammed Aladimi
السلام عليكم ورحمة اللة وبركاتة
واجهتني هذه المشكلة في كود Php و MySQLi بخصوص التأكد من وجود إسم المستخدم والبريد الإلكتروني في قاعدة البيانات أو لا ، عند تسجيل عضو جديد.
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\cms3\include\registor.php on line 32
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\cms3\include\registor.php on line 34
لقد أرفقت لكما الملف أرجو أن تفحصوا الخطأ إن لكم وقت، فقد أتعبني البحث بدون جدوى
وشكرا لكم
registor.php
رابط هذا التعليق
شارك على الشبكات الإجتماعية
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.