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 اقتباس
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 اقتباس
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 اقتباس
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 اقتباس
السؤال
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
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.