عرض مشاركة واحدة
قديم 06-27-2006, 10:40 مساءً   #1 (permalink)
ADMIN
.::+: Gulf Son :+::.

 
الصورة الرمزية ADMIN
 
تاريخ التسجيل: May 2005
الدولة: بلاد الخليج
المشاركات: 51,867
معدل تقييم المستوى: 53ADMIN نشيطADMIN نشيطADMIN نشيطADMIN نشيطADMIN نشيطADMIN نشيطADMIN نشيطADMIN نشيطADMIN نشيطADMIN نشيطADMIN نشيط
إرسال رسالة عبر مراسل ICQ إلى ADMINإرسال رسالة عبر مراسل MSN إلى ADMIN
تابع صفحة البحث وعرض النتائج (serach_result.asp)


الدرس الثاني عشر: تصميم صفحة البحث وعرض النتائج search_result.asp
افتح صفحة search.asp وقم بحفظها باسم search_result.asp. ستجد الـ Code كالتالي:
كود PHP:
<%@ Language=VBScript CodePage "1256"%>

<
html dir=rtl>

<!--
#include file="pageheader.txt" -->

<form method=>"GET" action="search_result.asp">
<
p align="center">
<
input type="text" name="keyword" size="20"></p>
<
p align="center"><input type="submit" value="ابحث" name="B1"></p>
</
form>

<!--
#include file="pagefooter.txt" --> 
والآن.. لنقم بالتغييرات المطلوبة. أولى هذه التغييرات هو إعلام البرنامج أن هنالك (متغير) يجب أخذ قيمته من الصفحة السابقة serach.asp هذا المتغير هو keyword والذي يحتوي على الكلمة المطلوب البحث عنها. وكما فعلنا في الدرس التاسع، سنستخدم Request.QueryString للقيام بهذه المهمة. لذا قم بمسح هذه الأسطر:
كود PHP:
<form method="GET" action="search_result.asp">
<
p align="center">
<
input type="text" name="keyword" size="20"></p>
<
p align="center"><input type="submit" value="ابحث" name="B1"></p>
</
form
واكتب بدلا منها:
كود PHP:
<%
keyword=request.querystring("keyword")
%> 
والآن سنقوم بالبحث عن الكلمة في الجدول بعد استقبالها من صفحة البحث باستخدام أمر Select:
كود PHP:
<%@ Language=VBScript CodePage "1256"%>

<
html dir=rtl>

<!--
#include file="pageheader.txt" --> <!--#include file="connection.txt" -->
<%
keyword=request.querystring("keyword")
SelectTechSQL="select * from tech_news where subject like '%"&keyword&"%'  "
set rs=ADO.execute(SelectTechSQL)
%>

<!--
#include file="pagefooter.txt" --> 

الملاحظ في أمر Select هنا أننا أضفنا كلمة Like . كلمة Like تغني عن علامة ( = ). ويمكن أن تعبر عن مساواة كلية أو جزئية. ولتوضيح ذلك، لنفترض المثال التالي: إن قمنا باستخدام المساواة الكلية وبحثنا عن "خالد" فستظهر لنا النتائج التي تحتوي على كلمة "خالد". أما إن استخدما المساواة الجزئية فستظهر لنا النتائج التي تحتوي على: خالد، خالدا، الخالد، الخالدون، خالدون .. الخ
  • <LI dir=rtl>للتعبير عن المساواة الكلية نكتب Like وبعدها اسم المتغير .. في مثالنا هو Keyword فنكتبه بالصيغة التالية:
  • "&keyword&"
  • للتعبير عن المساواة الجزئية نكتب Like وبعدها اسم المتغير بين علامات النسبة المؤوية .. في مثالنا هو Keyword فنكتبه بالصيغة التالية: '%"&keyword&"%'
والمقصود في عبارة Select في هذا المثال هو: اختر أي شي من جدول Tech عندما تكون القيمة في العمود Subject مساوية أو مشابهة للقيمة في المتغير Keyword . للتوضيح لنفترض المثال التالي:
لديك في القاعدة العناوين الثلاثة التالية:
  1. <LI dir=rtl>لغة ASP متطورة وسهلة.
    <LI dir=rtl>لغة PHP سهلة ومتطورة.
  2. البرمجة بـ C++ ممتعة.
عند إدخال كلمة "لغة" للبحث عنها، سيظهر لنا أول عنوانين كنتائج للبحث. حيث أن أمرنا يبحث في العنوان.
إن كنا نود تغيير حقل البحث، فبإمكاننا تغيير اسم العمود الذي يتم البحث فيه.. كأن نكتب "select * from tech where body like '%"&keyword&"%' " في حال رغبتنا بالبحث في نص الموضوع وليس عنوانه. أما إن أردنا البحث في كافة الحقول، فعلينا كتابتها جميعا والربط بينها باستخدام أحد دوال الربط المنطقيةوهي Or . لنعد كتابة SelectTechSQL مرة باسخدام Or :
SelectTechSQL="select * from tech_news where subject like '%"&keyword&"%' or body like '%"&keyword&"%' "
في هذه الحالة سيتم عرض النتائج الذي توجد بها كلمة البحث في:
  1. <LI dir=rtl>العنوان.
    <LI dir=rtl>المحتوى.
  2. العنوان والمحتوى.
الأمر السابق سيبحث عن الكلمة في جدول Tech_news وللبحث في كلا الجدولين ( Tech_news و General_news ) بإمكاننا كتابة أمر لكل جدول، كالتالي:
كود PHP:
<%@ Language=VBScript CodePage "1256"%>

<
html dir=rtl>

<!--
#include file="pageheader.txt" --> <!--#include file="connection.txt" -->
<%
keyword=request.querystring("keyword")
' أوامر البحث في جدول الأخبار التقنية
SelectTechSQL="select * from tech_news where subject like '
%"&keyword&"%' or body like '%"&keyword&"%'  "
set rsTech=ADO.execute(SelectTechSQL)
أوامر البحث في جدول الأخبار العامة
SelectGeneralSQL
="select * from tech_news where subject like '%"&keyword&"%' or body like '%"&keyword&"%'  "
set rsGeneral=ADO.execute(SelectGeneralSQL)
%>

<!--
#include file="pagefooter.txt" --> 

لا تنسى أن تضع ملف الربط بقاعدة البيانات، وذلك لأننا سنحتاج لقراءة بعض البيانات منها. بعد كتابة أوامر Select علينا كتابة أوامر عرض النتائج. وهي بسيطة قمنا بكتابتها سابقا في الدرسين السابع والثامن. سنكتب واحدة لـ SelectTechSQL وأخرى لـ SelectGeneralSQL .
كود PHP:
<%@ Language=VBScript CodePage "1256"%>

<
html dir=rtl>

<!--
#include file="pageheader.txt" --> <!--#include file="connection.txt" -->
<%
keyword=request.querystring("keyword")
' أوامر البحث في جدول الأخبار التقنية
SelectTechSQL="select * from tech_news where subject like '
%"&keyword&"%' or body like '%"&keyword&"%'  "
set rsTech=ADO.execute(SelectTechSQL)
أوامر البحث في جدول الأخبار العامة
SelectGeneralSQL
="select * from general_news where subject like '%"&keyword&"%' or body like '%"&keyword&"%'  "
set rsGeneral=ADO.execute(SelectGeneralSQL)
%>
[
left]<p align="center"><font face="Simplified Arabic" size="3">نتائج البحث</font></p>[/left]
<%
' أوامر عرض نتائج الأخبار التقنية
do while not rsTech.eof 
%>
<p><b><a href="body.asp?field=tech_news&id=<%=rsTech("id")%>"><%response.write rsTech("subject")%></a></b></p>
<% 
        rsTech.movenext
loop
أوامر عرض نتائج الأخبار العامة
do while not rsGeneral.eof
 
%>
<
p><b><a href="body.asp?field=general_news&id=<%=rsGeneral("id")%>"><%response.write rsGeneral("subject")%></a></b></p>
<%
        
rsGeneral.movenext
 loop
ADO
.close
%>
<!--
#include file="pagefooter.txt" --> 

بذلك نكون قد انتهينا من تصميم محرك البحث. وسنشرح في الدرس التالي إن شاء الله كيفية تصميم سجل الزوار.

إعداد: خالد الحر





من مواضيع ADMIN في المنتدى
__________________


اقتباس:
لكل كلمة أذن، ولعل أذنك ليست لكلماتي، فلا تتهمني بالغموض
يقول الامام مالك رحمه الله:
إنما هؤلاء أقوام أرادوا القدح في النبي صلى الله عليه وسلم فلم يمكنهم ذلك، فقدحوا في أصحابه حتى يقال رجل سوء ولو كان رجلاً صالحاً لكان أصحابه صالحين.

وقال أبو الوفا بن عقيل رحمه الله:
انظر كيف اختار لمرضه بيت البنت، واختار لموضعه من الصلاة الأب، فما هذه الغفلة المستحوذة على قلوب الرافضة عن هذا الفضل والمنزلة التي لا تكاد تخفى عن البهيم فضلا عن الناطق.

ADMIN غير متواجد حالياً   رد مع اقتباس