• 0

سؤال

 السلام عليكم .. اخواني الاعضاء والمشرفين لدي استفسار  في طريقة البحث باستخدام Like

 السؤال كتالي : انا لدي Textbox_name

وهذه التكست الخاص بكتابة الاسم المراد البحث عنه 

وفرضاُ انه لدي الاسماء التالية في الجدول :

1- طه محسن

2- معين احمد

3- وسيم نعمان

4- سمير الناشري

----------

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

 هنا ستقوم جملة الاستعلام بالبحث عن الاسم ولن تجده ..  لانه لايوجد اسم يبداء بـ محسن .. وانا اريد ان يقوم بالبحث اما عن محسن وسيم او عن محسن على حدة ان وجد او وسيم 

.. اي اريدة ان يجلب لي كل الذي اسمهم (محسن وسيم ) وكذالك الذي اسمه (محسن) وكذالك الذي اسمة ( وسيم)

 ارجو  ان تدلوني على الطريقة الصحيحة ولكم جزيل الشكر

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

9 إجابة على هذا السؤال .

  • 0

عليك بتقسيم الجملة إلى مصفوفة كلمات ومن ثم تقوم بالبحث من أجل كل كلمة

استخدم دالة التقسيم Split التابعة للصنف string ومرر الرمز فراغ كعامل تقسيم ثم استخدم الدالة Trim من أجل كل كلمة لحذف الفراغات الجانبية والإبقاء على كل كلمة كاملة

كذلك الأمر تجاهل الخانات التي تكون فارغة

بمعنى يجب أن تحول جملة البحث إلى كلمات مفردة ومن ثم تقوم بعملية البحث على كل واحدة

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

مشكور اخي ابو احمد المبرمج على ردك .. انا متفق معك بهذه الشي انه لابد من استخدام  Split وتخزين الكلمات في مصفوفة والبحث على كل كلمة على حدة .. بس انا اريد ان يتم البحث على كل كلمة على حدة وكذالك يتم البحث على الجملة بكاملة .. مثل اني قمت بكتابة  هذه الاسم في خانت البحث ( طه محسن علي )

الذي اريدة ان يتم البحث عن كل كلمة على حدة كان يتم البحث على كلمة (طه) ثم البحث على كلمة (محسن ) ثم البحث بكلمة ( علي ) .. واريدة ايضاُ ان يقوم بالبحث على الجملة كاملة ( طه محسن علي) ويحضر لي جميع السجلات المتعلقة بكل الكلمات .. ان شاء الله اكون وضحة لك اخي العزيز المقصود

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

حياك الله أخي

 

سأذكر لك خوارزمية أنا اتبعها في مثل هكذا بحث

 

1- تقسيم الجملة بواسطة سبليت و عامل التقسيم هو الفراغ وحفظها في مصفوفة مؤقتة

2- عمل Trim  لكل خانة من المصفوفة

3- أقوم بالمرور على الخانات فإن وجدته فراغ أو لا شيء تجاهلته وإلا حفظته في اللائحة الجديدة List الجديدة

4- إن لم يكن الترتيب في البحث مطلوب أقوم بإعادة ترتيب اللائحة من الأطول إلى الأصغر(وذلك لكي تنكسر حلقة البحث بشكل أسرع في حال عدم وجود الكلمة لأن الكلمات الأطول احتمال العثور عليها أقل فلا داعي لإكمال البحث من أجل بقية الكلمات)

أما إذا كان البحث مطلوب فيه الترتيب حسب تسلسل الكلمات فلا يجب الترتيب

الآن أضع متغير بولياني بقيمة True  واسميه مثلا IsFound  ثم أعمل حلقة تمر على كلمة كلمة وتبحث فإن وجدتها أتابع للدورة التالية وإلا أضع المتغير False  و أكسر الحلقة

بعد الحلقة افحص المتغير فإن كان True  فهذا يعني أنه مر على كل دورات الحلقة وخرج بشكل طبيعي وأن جميع الكلمات موجودة

وإن وجدها False  فهذا يعني أنه خرج من الحلقة بعد أن تعذر العثور على إحدى الكلمات وخرج من الحلقة بشكل إجباري فلا يوجد جميع الكلمات معا

 

أما في حال تريد أن يجد إحدى الكلمات على الأقل تعمل العكس

أي تهيء المتحول ب False ثم في حال وجدت إحدى الكلمات تعمله True  وتكسر الحلقة وبهذا عند فحص المتغير بعد الحلقة سيكون False  فقط في حال مر على الجميع ولم يجدها وإلا فإن كانت True  فهذا يعني أنه وجد إحداها على الأقل

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

مشكور اخي العزيز على الشرح .. لكن اخي العزيز . بصراحة لم استوعب الامر .. ياليت لو عندك وقت وتعمل لي مثال بسيط على الطريقة الذي قمت بشرحها :

 

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اخي الكريم , هل قمت بتجربة ايعاز contains  بدلا من LIKE???

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

 ماذا تقصد احي بايعاز  contains هل ممكن توضح لي بمثال بسيط او شرح له 

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اذا رغبت يمكن اظهار نتائج البحث من خلال ال gridview , وهذا هو الفرق بينcontains and like 

 

 

SELECT * FROM `my_table` WHERE name LIKE '%my_search_term%'

or

SELECT * FROM `my_table` WHERE CONTAINS(name, 'search')
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

 اخي العزيز الكود لايشتغل  ياليت تعمل لي مثال عملي لارى نتائج البحث  فيه .

 ثانياُ هل الطريقة هاذي سوف تلبي هاذي المعايير ؟

============================

 

السؤال كتالي : انا لدي Textbox_name

وهذه التكست الخاص بكتابة الاسم المراد البحث عنه 

وفرضاُ انه لدي الاسماء التالية في الجدول :

1- طه محسن

2- معين احمد

3- وسيم نعمان

4- سمير الناشري

----------

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

 هنا ستقوم جملة الاستعلام بالبحث عن الاسم ولن تجده ..  لانه لايوجد اسم يبداء بـ محسن .. وانا اريد ان يقوم بالبحث اما عن محسن وسيم او عن محسن على حدة ان وجد او وسيم 

.. اي اريدة ان يجلب لي كل الذي اسمهم (محسن وسيم ) وكذالك الذي اسمه (محسن) وكذالك الذي اسمة ( وسيم)

 ارجو  ان تدلوني على الطريقة الصحيحة ولكم جزيل الشكر

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اين انتم يامشرفينا  الكلام واعضائنا  ... ياليت  تعطوني مثال بسيط على سؤالي ولكم جزيل الشكر 

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .