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

مشكلة عند تنفيد الاستعلام where في لغة SQL

Seyid Ahmed Khessam

السؤال

السلام عليكم ورحمة الله تعالى وبركاته ..♥

اواجه مشكلة منطقية عند تنفيد الاستعلام وتمرير where

class columnSelect{
    private $serName = 'localhost';
    private $dabName = 'users';
    private $usrName = 'root';
    private $usrPass = '';
    public function columnSelectFun($table, $email, $password, $mailTable, $passTable){
    try{
        $con = new PDO("mysql:host=$this->serName;dbname=$this->dabName", $this->usrName, $this->usrPass);
        $con ->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $stmt = $con->prepare("SELECT * FROM $table WHERE $mailTable = :email");
        $stmt->bindParam(':email', $email);
        $stmt->execute();
        $con = null;
        $stmt->setFetchMode(PDO::FETCH_ASSOC);
        $stmt = $stmt->fetchAll();
        foreach($stmt as $key => $val){
            if($val[$mailTable] == $email){
            if($val[$passTable] == $password){
                return 'u are welcome';
            }else{return 'your password is not correct';}
            }else{return 'your email is not correct';}
        }
    }catch(PDOException $e){
        return $e->getMessage();
    }
    }
}

  if(isset($_POST["submit"])){
        $email = $_POST["email"];
        $password = md5($_POST["password"]);
        $obSelect = new columnSelect();
        echo $obSelect ->columnSelectFun('data', $email, $password, 'email', 'password');
  }

بحيث انه ادا ماتم ادخال بريد الكتروني غير موجود في الجدول لن يتم تحديد البيانات واستدعائها ;وبتالي شرط التحقق 

if($val[$mailTable] == $email){

}

لايعمل لان البيانات لم تستدعى, لانه لايوجد صف فيه بريد الكتروني مطابق

المطلوب اريد طريقة تمكنني من التاكد من ان هناك بريد الكتروني في الجدول في قاعدة البيانات مطابق لما ادخله العميل دون ازالة الامر where من الاستعلام

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

Recommended Posts

  • 0

سوف تقوم بالتأكد من قيمة المتغير التالي 

$val[$mailTable] 

بحيث إذا يحتوي على قيمة ( بريد الكتروني ) قم بتنفيذ الاستعلام الذي تريده ، أما إذا كان فارغ ( لا يحتوي على بريد الكتروني ) يمكنك تنفيذ أو إظهار رسالة خطأ تفيد بأنه لا يوجد أي بريد الكتروني 

if($val[$mailTable]){
	// تنفيذ الاستعلام
} else {
	// إظهار رسالة خطأ
}

 

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

  • 0
بتاريخ 5 دقائق مضت قال بلال زيادة:

سوف تقوم بالتأكد من قيمة المتغير التالي 


$val[$mailTable] 

بحيث إذا يحتوي على قيمة ( بريد الكتروني ) قم بتنفيذ الاستعلام الذي تريده ، أما إذا كان فارغ ( لا يحتوي على بريد الكتروني ) يمكنك تنفيذ أو إظهار رسالة خطأ تفيد بأنه لا يوجد أي بريد الكتروني 


if($val[$mailTable]){
	// تنفيذ الاستعلام
} else {
	// إظهار رسالة خطأ
}

 

المشكل حتى لو انه يحمل قيمة لكنها غير الموجودة في الجدول لن يتحقق الاستعلام لان الامر where يقوم بجلب البيانات الا في حال ادا كانت القيمة الممررة اليه موجودة في الجدول

تم التعديل في بواسطة Seyid Ahmed Khessam
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 6 دقائق مضت قال Seyid Ahmed Khessam:

المشكل حتى لو انه يحمل قيمة لكنها غير الموجودة في الجدول لن يتحقق الاستعلام لان الامر where يقوم بجل البيانات الا في حال ادا كانت القيمة الممررة اليه موجودة في الجدول

الأن في الإجابة السابقة الخاصة بي , يقوم بالتحقق من أن المتغير يحمل بريد الكتروني أو لا , يعني اذا كان يوجد بريد الكتروني مطابق لما تبحث عنه سيقوم بارجاع البيانات هذا ما قصدته , ماذا تقصد انت .

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

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...