الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

البحث فى MySQL عن طريق ال keywords ?

مغلق
بدأه طــلال في 27 فبراير 2006 · 4 رد · 2,026 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

عندي سؤال لمن يعرف لغة php احتاج مساعدة في كتابة برنامج يقوم بعملية search في database "mysql" يحتوي على field تحتوي على keywords مثال على ذلك

game,football,indoor,play,students

هذه الكلمات الموجوده في هذا الـfield طبعا كما نرى انه يتم الفصل بين الكلمات بفاصلة ..

وقمت بكتابة جملة "indoor football" في text وقمت بالضغط على search ..

على برنامج الـ php ان يبحث في الـ fields في كل الـ records عن هذه الكلمات .. ان تم ايجادها ..

يقوم بعرض الـ records التي تحتوي على هذه الكلمات.. يعني كما يحدث في الـsearch engines ..

فهل هناك من يستطيع مساعدتي ؟؟

لقد قمت بكتابة الـphp لكن البرنامج لا يقوم بالبحث بصورة صحيحة

بانتظاركم

#2

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

لو قولنا ان انت كتبت فى صندوق البحث "indoor football"

يبقى انت اولا حتعمل عملية فصل للكلمات بحيث يكونوا مع بعض فى array

Words {

0=> 'indoor'

1=> 'football'

}

و بناء على عدد الكلمات الى عندك (اتأكد انها مش مكررة) حتعمل جملة الـ SQL باتعتك عشان فى الأخر تكون زى الشكل دة

SELECT * FROM table_name WHERE keywords LIKE '%indoor%' OR keywords LIKE '%football%'

الناتج حيكون الـ records الى فيها احدا الكلمتين او كلتاهما

و الباقى عليك ;)

ملحوظة : رجاء استخدام عنوان معبر عن المحتوى فى المرات القادمة

Web Citizen

ShrefInLife.gif

__________

General blog : Shref In Life

#3

ولماذا لا تستخدم الFullText search وتريح نفسك

#4
محمد عبد الغنى كتب:
ولماذا لا تستخدم الFullText search  وتريح نفسك

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

ولو حاولت مثلا تعمل كدة مع لغة تانية غير اللغة الأنجليزية فحتلاقى كمية stopwords او ممكن نسميها كلمات عامة ( و - او - ذهب - من - على - .... ) مكررة بشكل رهيب داخل الفهرسة و حيعملك زيادة 30 الى 40% فى حجم البيانات بشكل ملهوش داعى .

افتح myisam/ft_static.c فى الـ source بتاع MySQL و حتلاقى 544 stopwords للغة الإنجليزية فقط و ممكن تضيف الكلمات الى انت عايزها لو تحب

فى النهاية هى وجهات نظر تختلف من مبرمج لمبرمج تانى بس النتيجة واحدة تقريبا

Web Citizen

ShrefInLife.gif

__________

General blog : Shref In Life

#5

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

اخي الكريم شريف بارك الله فيك عالمجهود الطيب

وانا اعتذر عن عندم كتابة العنوان بشكل صحيح

وللحين المشكله موجوده عندي بالكود

وهيا بالنسبة للسيف في array الموضوع ما نجح معاي .. اذا في طريقة ثانية ؟؟

وانا ضفت الكود بالمرفقات وياريت لو تشوفه اخي شريف

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

ولثقتي الكبيرة فيهم

واسف مره ثانية

code.txt

هذا الموضوع مغلق.

مواضيع مشابهة