شبكة تيمورنت
خش ومتخفش مش هنموتك لو مسجلتش
شكرا لزيارتكم
ادارة المنتدى
شبكة تيمور نت

شبكة تيمورنت

 
الرئيسيةالرئيسية  البوابةالبوابة  المنشوراتالمنشورات  التسجيلالتسجيل  دخولدخول  

Banggood WW


Aliexpress WW


شاطر | 
 

 حصريـــا : دورة إحتراف برمجة المواقع التفاعلية ج-ب البحث المتقدم

اذهب الى الأسفل 
كاتب الموضوعرسالة
ابو الفتوح

avatar

الدوله : دولتى
ذكر الحمل الأبراج الصينية الثعبان
عدد المساهمات : 38
نقاط : 4914
تاريخ الميلاد : 16/04/1977
تاريخ التسجيل : 02/05/2012
العمر : 41
العمل/الترفيه : ip

مُساهمةموضوع: حصريـــا : دورة إحتراف برمجة المواقع التفاعلية ج-ب البحث المتقدم   الجمعة مايو 11, 2012 5:57 pm

بإسم الله الرحمان الرحيم
زَعَمَ
الَّذِينَ كَفَرُوا أَن لَّن يُبْعَثُوا قُلْ بَلَى وَرَبِّي لَتُبْعَثُنَّ
ثُمَّ لَتُنَبَّؤُنَّ بِمَا عَمِلْتُمْ وَذَلِكَ عَلَى اللَّهِ يَسِيرٌ



سورة التغبن – الآية 7


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


و بدون الإطالة في المقدمات ننتقل إلى الجزئ التاني من دورتنا .





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




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

1. البحت عن الجملة بالضبط
2. البحت عن أي كلمة
3. البحث عن جميع الكلمات



يمكن كدلك تصنيف البحث حسب نطاقه
متلا:
البحث في العناوين فقط – البحث في مواضيع تتضمن ملف مرفق – مواضيع تم طرحها مند كدا يوم – البحث في قسم أو منتدى معين


في موضوعنا هدا سنقتصر على التالي :
1. طرق البحث الثلاثة الآنفة الدكر
2. البحث في العناوين فقط أو البحت في كامل الموضوع




و حتى يكون الدرس واضحا لابد من تمريره على أمثلة عملية
و قبل الشروع في البرمجة ينبغي كدلك أن تكون لدينا قاعدة بيانات للبحت فيها
لننشئ قاعدة البيانات أولا :

سنحتاج إلى جدول واحد فقط
و بما أن المشروع المزمع إنجازه تجريبي فلن نحتاج أكتر من ثلاث حقول / أعمدة

Id
رقم أو معرف الموضوع

Title
العنوان

Subject
الموضوع

إليك هده الصور لمساعدتك على تكوين الجدول

















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










ضع أي عنوان و أي موضوع فكل ما تقوم به الآن لإختبار البرمجة عليه لا أكتر

ملاحضة : لست في حاجة إلى تعيين قيمة الحقل id لكن ينبغي أن يكون auto_increment







__________________________________





لتحميل بنية القاعدة مع المحتويات الإفتراضية للبحث
http://up.x50.cc/?_&C7qu


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

و كما دكرت انفا : البحث على محورين اساسيين

طريقة البحث
مكان البحث

النمودج :





الحقل الأول لعبارة البحث

التاني لمكان أو نطاق البحث

الثالث لصنف البحث

و من هنا يمكنك الحصول على كود النمودج كاملا

http://up.x50.cc/?_&CgK6

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




__________________________


لنأخد نفسا عميقا قبل الشروع في البرمجة




الإتصال بقاعدة البيانات أولا من خلال الدالتين




كود PHP:




mysql_connect('', '', '')or die("cannot connect");
mysql_select_db('')or die("cannot select DB");







المتغير الأول و الآتي من عبارة البحث



كود PHP:




$_POST['search_word']






لابد من ترشيحه عن طريق الدوال الأمنية

htmlspecialchars _ منع البحث في وسوم html
trim إزالة الفراغات في أول النص و اخره

كما سنحتاج لحدف الفراغات المتكررة لنحصل على جملة البحث بالشكل التالي




كود PHP:




$search_phrase=preg_replace('/[\s]{2,}/', ' ', htmlspecialchars(trim($_POST['search_word'])));







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


المتغير $search_phrase هو جملة البحث
لكن سنحتاجه فقط إدا كان نوع البحث "عن الجملة بالضبط "

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




كود PHP:




$search_words = explode(' ', $search_phrase);








تذكر :
$search_phrase : جملة البحث
$search_words : كلمات البحث



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






كود PHP:




$do=mysql_query("select `id`,`title`,`subject` from `table_searche` where (`title` LIKE '%$search_phrase%') OR (`subject` LIKE '%$search_phrase%')");






هده صيغة إفتراضية فقط و ستختلف حسب نوع البحث و نطاقه
لدا دعونا نركز على الجزئ الأخير من الإستعلام مباشرة بعدة "where"






A1 : منطقة البحث في العنوان

A2 : منطقة البحث في الموضوع ( لا يتم تظمين هدا الجزء من الإستعلام عند إختيار "البحث في العناوين فقط" )

B1 : البحث عن الجملة ( إدا كان البحت عن جميع الكلمات تتكرر العبارة لكل كلمة و يفصل بين العبارات بــ AND )


B2 : نفس قصة b1 بخصوص البحت في الموضوع




هدا هو الإستعلام بشيئ من التفصيل
و على اساس هدا التفصيل سنكمل البرمجة




سيكون لدينا شرط ثلاتي :


1 الجملة بالضبط
2 جميع الكلمات
3 اي كلمة






كود PHP:




if($_POST['search_type']=='phrase'){

//__-1-__

}elseif($_POST['search_type']=='all_word'){

//__-2-__

}elseif($_POST['search_type']=='any_word'){

//__-3-__

}








لا تسألني عن المتغيرات الموجود في الكود

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

_____________________


داخل هده الشروط سنبرمج الجزئ الاخير من الإستعلام الدي رأيناه موضحا في الصورة

بما أن الشروط الثلاثة لا تتطرق لمكان البحث يجب أن نتعامل مع حقل البحث على اساس أنه متغير

الآن ندخل منطقة الشرط الأول

و هي للجملة




كود PHP:




$search_f="`__-where-__` LIKE '%$search_phrase%'";







بالنسبة للشرط التاني

ستتكرر عبارة البحث حسب عدد الكلمات تم يجمع بينها بــ and

لهدا الغرض نستخدم الدالتين foreach و implode


الدالة foreach ستوزع كلمات البحث على الإستعلام




كود PHP:




foreach($search_words as $word){
$search_f[]="`__-where-__` LIKE '%$word%'";
}






الدالة implode ستصل أجزاء الإستعلام بعبارة and





كود PHP:




$search_f = implode(" and ", $search_f);







الشرط الثالت لا يختلف عن التاني إلا في عبارة and الممررة للدالة implode حيت سيحل محلها or





كود PHP:




foreach($search_words as $word){
$search_f[]="`__-where-__` LIKE '%$word%'";
}
$search_f = implode(" or ", $search_f);









_________________________________


مدا بخصوص مكان البحث؟؟؟

سهلة جدا

بالنسبة للبحث في العنوان فهده مسألة لا بد منها إد لا يمكن إغفال هدا الحقل من البحث

لدا نستبدل المتغير __-where-__ بــ title





كود PHP:




$search_sql=str_replace('__-where-__','title',"($search_f)");







أما الموضوع فسيشمله البحث في حال تم التأشير على خيار : كامل الموضوع

لدا سيوضع داخل حلقة الشرط





كود PHP:




if($_POST['where'] == 'full'){


$search_sql.=str_replace('__-where-__','subject'," or ($search_f)");



}








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






كود PHP:




$do=mysql_query("select `id`,`title`,`subject` from `table_searche` where $search_sql");









هدا هو الجزئ الأهم

بالنسبة لطريقة عرض النتائج فسأتركها لكم قبل أن أطرح السكربت للتحميل

أعتدر عن القصور في الشرح و على الـتاخير الخارج عن إرادتي و في أمان الله
الرجوع الى أعلى الصفحة اذهب الى الأسفل
 
حصريـــا : دورة إحتراف برمجة المواقع التفاعلية ج-ب البحث المتقدم
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

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

اعلا ن

لا توجد أية مواضيع جديدةمواضيع اسلاميه عامه, لا توجد أية مواضيع جديدةقسم الفتاوى, لا توجد أية مواضيع جديدةالفلاشات الاسلاميه, لا توجد أية مواضيع جديدةالمذهب الشيعى, لا توجد أية مواضيع جديدةقصص الانبياء والرسل عليهم السلام _ قصص الصحابه, لا توجد أية مواضيع جديدةاناشيد اسلاميه و صوتيات و فلاشات, لا توجد أية مواضيع جديدةخط المداحين, لا توجد أية مواضيع جديدةقسم التوحيد والعقيدة, لا توجد أية مواضيع جديدةقسم الرقائق والأعمال القلبية, لا توجد أية مواضيع جديدةقسم الحديث وعلومه, لا توجد أية مواضيع جديدةقسم الفقه وأصوله, لا توجد أية مواضيع جديدةقسم المصاحف الكامله - ( مرتله ومجوده ), لا توجد أية مواضيع جديدةقسم تلاوات الأشبال, لا توجد أية مواضيع جديدةقسم روائع الإصدارات القرآنيه, لا توجد أية مواضيع جديدةكتب اسلاميه, لا توجد أية مواضيع جديدةمن هو محمد رسول الله, لا توجد أية مواضيع جديدةأصحاب الرسول, لا توجد أية مواضيع جديدةشبهات وردود, لا توجد أية مواضيع جديدةقرأنا لك عن رسول الله, لا توجد أية مواضيع جديدةأطفالنا على خطى رسول الله
لا توجد أية مواضيع جديدةتطهير البيوت من الجن المؤذى., لا توجد أية مواضيع جديدةعلاج أذى الجن بأنواعه والقرين., لا توجد أية مواضيع جديدةالآدعية لزواج البنات., لا توجد أية مواضيع جديدةأسرار القرأن الكريم., لا توجد أية مواضيع جديدةالتحصينات الشرعية., لا توجد أية مواضيع جديدةعلاج الحسد والعين., لا توجد أية مواضيع جديدةعلاج المس العاشق., لا توجد أية مواضيع جديدةلجلب المحبة والقبول ., لا توجد أية مواضيع جديدةلإستخراج الدفائن والكنوز.
لا توجد أية مواضيع جديدةقصص شعريه قصيرة, لا توجد أية مواضيع جديدةقصائد عاميه, لا توجد أية مواضيع جديدةقصص من واقع الحياه, لا توجد أية مواضيع جديدةفاروق جويده, لا توجد أية مواضيع جديدةهشام الجخ, لا توجد أية مواضيع جديدةالشعر الحلمنتيشى, لا توجد أية مواضيع جديدةالشعر المصرى المعاصر, لا توجد أية مواضيع جديدةالشعر الاسلامى, لا توجد أية مواضيع جديدةالدكتور طه حسين, لا توجد أية مواضيع جديدةالاديب محمود عباس العقاد, لا توجد أية مواضيع جديدةالاديب العالمى نجيب محفوظ, لا توجد أية مواضيع جديدةالاديب انيس منصور
Awesome Hot Pink Sharp PointerWag Tail
ربح



Альфа-Банк [CPL] UA
Aliexpress WW