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

سبب الخطأ في الكود ؟

السؤال

السلام عليكم ،

لماذا يقوم بالخروج من سطر الأوامر عندما أقوم بإدخال الstudent id ولا يتابع بقية الشيفرة

في الجزء الخاص بعندما يقوم المستخدم بإدخال حرف r

Screenshot2024-05-03173127.thumb.png.f5c5cbb65135e27b9d9e09d1883453e5.png

script.js

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

Recommended Posts

  • 0

المشكلة تبدو أنها تكمن في دالة `askStudentID` وبناء على الكود المقدم ووصف المشكلة فعندما يدخل المستخدم رقم تعريف الطالب، يتم استدعاء دالة `askStudentID` متكررا حتى يدخل رقم تعريف طالب صالح فبعد إدخال رقم تعريف طالب صالح، لا تستمر الدالة إلى الخطوة التالية من استرجاع معلومات الدرس وتسجيل الطالب.

لحل هذه المشكلة، تحتاج إلى تعديل دالة `askStudentID` للتعامل مع حالة رقم تعريف الطالب الصالح والمتابعة مع الخطوات التالية وهذا هو الكود المعدل:
 

function askStudentID(){
  rl.question('ادخل رقم الطالب: ', student_id=>{
    if(student_id.trim() == '' || isNaN(student_id)){
      console.log('يرجى إدخال أرقام فقط');
      askStudentID();
    }else{
      dataBase.get(`SELECT * FROM students WHERE student_id = ${student_id}`, (err, rowStudent)=>{
        if(err){
          rl.close();
          dataBase.close(err=>{
            if(err) return console.log(err.message);
            else return console.log('تم إغلاق قاعدة البيانات.');
          })
          return console.log(err.message);
        }else if(rowStudent){
          // المتابعة إلى الخطوة التالية لاسترجاع معلومات الدرس وتسجيل الطالب
          console.log('تم العثور على رقم الطالب.');
          // الجزء الباقي من الكود لاسترجاع معلومات الدرس وتسجيل الطالب
        }else{
          console.log('رقم الطالب غير موجود.');
          askStudentID();
        }
      })
    }
  })
}

فهنا قد قم بإدخال رقم تعريف طالب صالح، سيحتوي متغير `rowStudent` على معلومات الطالب. يمكنك استخدام هذه المعلومات للمتابعة مع الخطوة التالية من استرجاع معلومات الدرس وتسجيل الطالب وهذا الإجراء يجب أن يمنع الكود من الخروج من دالة `askStudentID` مبكرا ويسمح له بالمتابعة مع بقية عملية التسجيل.

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

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...