// الدرس الثامن والاخير(خاص بالاكاديمية) الحديث حول خاصية البحث , بقلمي //
آخر
الصفحة
jonasess

  • المشاركات: 99659
    نقاط التميز: 35160
عضو أساسي
jonasess

عضو أساسي
المشاركات: 99659
نقاط التميز: 35160
معدل المشاركات يوميا: 16.7
الأيام منذ الإنضمام: 5966
  • 19:48 - 2015/12/25

  

 

 

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

في هذا الدرس ان شاء الله سنتحدث عن خاصية البحث في الموقعsample image

تعتبر خاصية البحث في الموقع من اهم الاشياء التي يجب ان يحتوي عليها اي موقع وذلك من اجل الوصول الى المعلومات في الموقع بسرعة وسهولة تامة

على العموم هناك العديد من الطرق التي تستطيع بها ان تصمم خاصية البحث في موقعك

في هذا الدرس سوف اقد بعض الملاحظات والنصائح حول هذه الخاصية من اجل الوصول الى نتائج جيدة في البحث بعد البرمجة طبعا

 

الطريقة الاولى لبرمجة خاصية البحث وهي ان نعتمد على انفسنا في برمجة خاصية البحث الخاصة بموقعناsample image

وهنا علينا ان نتعامل مع قاعدة البيانات بالطبع , بحيث نوفر للمستخدم حقول ليدخل فيها المعلومات المطلوبة في البحث

ونستخدم فيما بعد تلك المعلومات التي ادخلها ونبحث عنها في قاعدة البيانات ثم نقوم بإرجاع النتيجة له

طبعا انا هنا لن اشرح اي كود سورس لان الامر واضح وايضا طريقة برمجة خاصية البحث ستختلف من شخص الى خر

على حسب احتياجاتك وايضا على حسب التخطيط الذي رسمته للجداول المتواجدة في قاعدة البيانات (للجداول المتواجدة في قاعدة البيانات؟؟)sample image

اجل يعتبر التخطيط الجيد لثاعدة البيانات من بين النقاط الاساسية التي ستساعدك في برمجة خاصية البحث , وكلما زادت النسبة المئوية للتخطيط الجيد

كلما زادت النسبة المئوية لنجاح عملية البحث وايضا لسهولة برمجتها , سوف اعطي مثال بسيط لتوضيح هذا الامر وتقريبكم الى الفهم اكثر

مثلا نحن هنا نعمل على سكريبت رياضي , وبالتالي في قواعد البيانات او لنقل جدوال قواعد البيانات لدينا

ستحتوي على معلومات مثلا حول الاخبار الرياضيةsample image

لو نفرض انه لديك جدول واحد فقط تضع فيه جميع الاخبار الرياضية من اصابات وانتقالات ,,,,الخ 

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

وبالتالي فالاعتماد على عنوان الخبر وحده لن يكون كافي , وهنا ستضطر الى طلب العديد من المعلومات من المستخدم

كعنوان الخبر , اللاعب المصاب مثلا , تاريخ طرح الخبر ,,,,الخ , وذلك حتى تتمكن من جلب المعلومة الصحيحة اثناء البحث

وهذا يعتبر امر مزعج بالنسبة للمستخدم , فهو يحب دوما ان يقدم القليل من المعلومات ويجد نتائج مرضية طبعا


لكن لو كان لديك مثلا العديد من الجداول مثلا فالنفرض انك ستقوم بتقسيم جدول الاخبار الى عدة جداول اخرى

مثلا اخبار انتقالات اللاعبين في جدول وحدها , اخبار اصابات اللاعبين , اخبار الاندية الرياضية , مواعيد مباريات كرة القدم ,,,,, الخ

هنا ستكون نسبة نجاح عملية البحث واحضار المعلومة الصحيحة اكبر بكثيرة من السابقة من حيث النجاح والسرعة في التنفيد

فيكفي في المثال الثاني ان تطلب معلومات اقل من المستخدم , فمثلا لو كان يريد البحث عن اللاعب المصاب , يكفي ان يكتب معلومات حوله

وانت ستبحث عنها في جدول اصابات اللاعبين وحين تجدها تربطها مع باقي الجداول لجلب باقي المعلومات وتقديمها الى المستخدم

 

اي ان الامر هنا سيرجع لك والى طريقة تقسيمك لقاعدة البيانات الخاصة بك وايضا الى المعلومات التي ستطلبها من المستخدم

(المعلومات التي ستطلبها من المستخدم؟؟؟؟؟ لماذا؟؟؟؟؟)sample image

اهم شيء في خاصية البحث او يمكن القوم ان ثاني اهم شيء في خاصية البحث هو المعلومة التي ستطلبها من المستخدم

يجب ان تكون تلك المعلومة صغيرة ومفيدة

 

اي ان تجلب معلومات قليلة من المستخدم , ولكن في نفس الوقت يجب ان تكون هذه المعلومات قيمة جدا

(فيكفي ان تضع تنبيه او رسالة توضيحية للمستخدم او مثال لتنبهه الى كيفية استخدام خاصية البحث الخاصة بك)

فكلما كانت المعلومة التي يقدمها دقيقة كلما كانت نسبة الوصول الى النتيجة المطلوبة كبيرة , فعلى سبيل المثال نذكر محرك البحث الخاص ب googlesample image

كلما ادخلت عدد كبير من الكلمات كلما كانت نتيجة البحث سيئة , لكن في المقابل كلما ادخلت معلومات قليلة ولكن دقيقة وتشرح طلبك كلما وصلت الى نتائج جيدة بنسبة كبيرة

 

هناك ايضا الجانب البرمجي وهو النقطة الثالثة التي تأتي بعد المعلومة

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

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

او يمكن عمل مجال , اي القيمة محصورة في مجال معين ,,, الخ

 

لكن لو ادخل المستخدم قيمة نصية؟؟ هنا يأتي المشكل او التحدي الاول الذي ستواجدها

سأوضح لك الامر

لو نفرض مثلا انا في جدول الاصابات يوجد هذا الخبر او العنوان

(اصابة اللاعب A) تحت خانة sick_player

 والمستخدم هنا يريد ان يبحث عن هذه المعلومة بالضبة , اي المعلومة المتعلقة بإصابة اللاعب A

لو ادخل في حقل البحث الكلام التالي (اصابة اللاعب A) , هنا نتيجة البحث ستكون عادية جدا

لاننا سنقارن المدخل الذي اعطاه لنا بما بوجد في قاعدة البيانات عن طريقة عملية =

WHERE  sick_player = اصابة اللاعب A

اي ان  اصابة اللاعب A=اصابة اللاعب A وبالتالي نتيجة البحث صحيحة

لكن لو قام هو بإدخال الكلام التالي (اللاعب المصاب A)

يصبح الامر كالتالي 

WHERE  sick_player = اللاعب المصاب A

 لن يجد هنا اي نتيجة

لان اصابة اللاعب A!= اللاعب المصاب A

 

وبالتالي هنا انت يجب ان تتعامل مع هذا الامر برمجيا , لان الشيء الذي ادخله المستخدم والذي يبحث عنه متواجد بالفعل في قاعدة البيانات

لكن طريقة البرمجة التي تستخدمها ستوفر له اما الاجابة الخاطئة او لاتوفر له اي اجابة اصلا

وبالتالي يجب التعامل مع هذا الامر كما قلت برمجيا , اي عدم استخدام المساوات في البحث الا للقيم العددية او التاريخية فقط

 

على العموم كانت هذه هي النقاط المهمة التي اردت ا انبه لها بهذا الخصوص 

 فتصميم جيد لقاعدة البيانات سيساعد بشكل كبير في تسهيل برمجة خاصية البحث

واثناء تعاملك مع الكود اي اثناء برمجتك لخاصية البحث ستفهم كلامي هذا جيدا . :)sample image

 

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

او يمكنك ايضا الاعتماد على محرك البحث google من اجل جعله يقوم بالبحث في موقعك

لكن للاشارة , نسبة نجاح عملية البحث الخاصةالخاصة ب (google) ستكون اقل بكثير

من نسبة النجاح لو كنت انت من قام ببرمجة محرك البحث الخاص بك :)sample image

 

 قضية محرك البحث ليست شيء ثابت او (standard) الذي يمكن برمجته او وضع كود برمجي له وشرحه

وانما يجب ذكر فقط بعض النقاط المهمة والمشاكل التي قد تواجهها اثناء برمجته

لان محرك البحث يختلف على حسب اختلاف طريقة البرمجة وايضا اخلاف نوع الموقع وطريقة تصميم قاعدة البيانات

,

على العموم هذا سيكون اخر درس في الاكاديمية بإذن الله , وبالتالي هنا يمكن الاعلان عن انتهاء الاكاديمية ان شاء الله

الى جزء اخر ان شاء الله , اين سنقوم بتطوير السكريبت بشكل اكبر

كملاحظة اخيرة في هذا الدرس :
المطلوب من الطلبة هنا هو برمجة الاشياء التالية , ملف يمكن العضو من اضافة خبر جديد
ملف يمكن العضو من اختيار وحذف الاخبار التي اضافها
ملف يقوم بإظهار الاخبار التي وضعها العضو وامكانية تعديله على الاخبار
وفي الاخير ادراج خاصية البحث (يمكن جعلها بسيطة فقط) , طبعا الوقت غير محدود , خدوا راحتكم
 
بخصوص برمجة الجزء المتعلق بالادارة فهو يعتبر سهل , اي ستجعل للمدير الصلاحيات على كل شيء (التعديل ,الحذف ,,,الخ)
وحتى تعطيل وحذف العضويات

ان واجهتكم اي مشكلة اطرحوها حتى نقوم بحلها ان شاء الله , او ان كان لديكم اي استفسار او غموض لاتترددوا في طرحه حتى لو كان بسيط
حتى نقدم لكم اكبر مساعدة ممكنة ان شاء الله
 
بخصوص السكريبت الرياضي , فستجدون الكود سورس الخاص به في هذا الموضوع
وسيتم اعلامكم حين ننتهي من برمجته كله ان شاء الله (فور عودة الاساتذة الغائبين ان شاء الله)

 اي استفسار بخصوص عدم فهم المطلوب يرجى وضعه في الموضوع وسأجيب عنه ان شاء الله

الى الدرس المقبل ان شاء الله

 

** وفقكم الله **

 

 
 
 
 // الدرس الثامن والاخير(خاص بالاكاديمية) الحديث حول خاصية البحث , بقلمي //
بداية
الصفحة