شبكة تيمورنت
خش ومتخفش مش هنموتك لو مسجلتش
شكرا لزيارتكم
ادارة المنتدى
شبكة تيمور نت
شبكة تيمورنت
خش ومتخفش مش هنموتك لو مسجلتش
شكرا لزيارتكم
ادارة المنتدى
شبكة تيمور نت
شبكة تيمورنت
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

شبكة تيمورنت

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

شاطر
 

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

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

ابو الفتوح



معلومات إضافية
الدوله : دولتى
ذكر
الحمل
الأبراج الصينية الثعبان
عدد المساهمات : 38
نقاط : 8914
تاريخ الميلاد : 16/04/1977
تاريخ التسجيل : 02/05/2012
العمر : 47
العمل/الترفيه : ip
معلومات الاتصال
مُساهمةموضوع: حصريـــا : دورة إحتراف برمجة المواقع التفاعلية ج-ب البحث المتقدم   حصريـــا : دورة إحتراف برمجة المواقع التفاعلية ج-ب البحث المتقدم Emptyالجمعة مايو 11, 2012 5:57 pm

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



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


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


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





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

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


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

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



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


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




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

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

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

Title
العنوان

Subject
الموضوع

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


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



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




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





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



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






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

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




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


__________________________________


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


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


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

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

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

النمودج :


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


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

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

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

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

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"



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


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

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

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


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




هدا هو الإستعلام بشيئ من التفصيل
و على اساس هدا التفصيل سنكمل البرمجة حصريـــا : دورة إحتراف برمجة المواقع التفاعلية ج-ب البحث المتقدم Heart




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


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
 مواضيع مماثلة
-
» دورة تصميم المواقع باستخدام جوملا 3.0 joomla ، الدرس 6 و 7 و 8
» أضافة موقعك لمحرك البحث العالمى .. baidu.com + استطلاع حول أدوات مشرفي المواقع
» كيفية الوصول إلى المواقع بدون اتصال بالإنترنت على الاندرويد
» 15 دقيقة سيو تعلم كيف تحسن نتائج البحث لموقعك مع تكنوفيجن الجزء الثالث
» شيكابالا وفتحي يشاركان في دورة "طولون"

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

زوار

.: عدد زوار المنتدى :.