عالم النور

القرآن الكريم     قصص الأنبياء     علماء العرب     تعلم معنا     تعلم ASP     دليل المواقع    بطاقات إلكترونية
الأديب     كلمات على الورق     علي الطنطاوي     جميل بثينة      المنتديات


البطاقات الإلكترونية

تعلم ASP

دليل المواقع المتميزة


أقسام الموقع



بحث


 تعلم ASP > الدروس الأساسية > الدرس السابع


الدرس السابع: عرض جميع النتائج بشكل متتالي

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

افتح صفحة tech.asp. وافتح HTML فستجد التالي:

<%@ Language=VBScript CodePage = "1256"%>

<html dir=rtl>

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

<p align="center"><font face="Simplified Arabic">إليكم آخر
المستجدات في الساحة التقنية
</font></p>

<%

'أوامر فتح قاعدة البيانات

Dim ConnectionString

Dim ADO

ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & Server.MapPath("\database\project.mdb")

Set ADO=Server.CreateObject("ADODB.Connection")

ADO.ConnectionString =ConnectionString

ADO.Open

'أوامر اختيار الجدول واستدعاء البيانات منه


selectSQL="select * from tech_news"

set rs=ADO.execute(selectSQL)

'أوامر استعراض البيانات


%>

<div align="center">

<center>

<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="90%">

<tr>

<td width="100%" dir="rtl" bgcolor="#DFDFFF"><b>العنوان : <%response.write rs(subject)%></b></td>

</tr>

<tr>

<td width="100%" dir="rtl"><b>التاريخ : <%response.write rs(add_dat)%></b>

<p><b>الخبر : <%response.write rs(body)%></b></td>

</tr>

</table>

</center>

</div>

<hr color="#DFDFFF" width="90%">

<% ADO.close %>

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

قم بتعديل HTML ليكون بالشكل التالي:

ملاحظة: السطور الجديدة كتبت باللون الأخصر لتسهل عملية تمييزها.

<%@ Language=VBScript CodePage = "1256"%>

<html dir=rtl>

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

<p align="center"><font face="Simplified Arabic">إليكم آخر
المستجدات في الساحة التقنية
</font></p>

<%

'أوامر فتح قاعدة البيانات

Dim ConnectionString

Dim ADO

ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & Server.MapPath("\database\project.mdb")

Set ADO=Server.CreateObject("ADODB.Connection")

ADO.ConnectionString =ConnectionString

ADO.Open

'أوامر اختيار الجدول واستدعاء البيانات منه


selectSQL="select * from tech_news"

set rs=ADO.execute(selectSQL)

'أوامر استعراض البيانات

do while not rs.eof

%>

<div align="center">

<center>

<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="90%">

<tr>

<td width="100%" dir="rtl" bgcolor="#DFDFFF"><b>العنوان : <%response.write rs(subject)%></b></td>

</tr>

<tr>

<td width="100%" dir="rtl"><b>التاريخ : <%response.write rs(add_dat)%></b>

<p><b>الخبر : <%response.write rs(body)%></b></td>

</tr>

</table>

</center>

</div>

<hr color="#DFDFFF" width="90%">

<%

         rs.movenext

loop

ADO.close

%>

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

وستكون النتيجة كالتالي:

العنوان : اختراق مواقع حركة طالبان على الإنترنت
التاريخ : 31/9/2001

الخبر : بعد عملية تفجير برجي التجارة العالمية بنيويورك، ورفض حركة طالبان تسليم بن لادن للولايات المتحدة الأمريكية، قام مجهولون باختراق مواقع الحركة على الإنترنت.


العنوان : مايكروسوفت تنجو من محاولة تفكيكها
التاريخ : 31/9/2001

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


والآن سنقوم بشرط الإضافات سطرا سطرا:

  • (Do) حلقة. صيغتها Do (something) Loop. فالسطر do while not rs.eof يعني: (Do) ابدأ حلقة، (while) ما دامت، (not) لم تكون rs نهاية الملف (eof اختصار لـ End Of File). إي أنه الحلقة ستستمر في التنفيذ (الحلقة تبدأ بكلمة Do وتنتهي بكلمة Loop) ما دام هذا الشرط صحيحا، وبمجرد أن لا يتحقق الشرط لن يتم تنفيذ ما بين Do و Loop وسيغلق الحلقة لينفذ ما بعدها (أي ما بعد Loop).

  • ثم وضعنا أوامر عرض النتائج.

  • rs.movenext تعني انتقل للنتيجة التالية.

  • (Loop) تكرار الحلقة. أي سيعود إلى جملة Do وينفذها ما دامت صحيحة. حيث كانت Do تعني أنه يستمر في تنفيذ الحلقة حتى تصبح rs نهاية الملف. فإن كانت rs نهاية الملف سيتوقف عن تنفيذ الحلقة وينتقل للسطر الذي يلي Loop أما إن لم تكن rs نهاية الملف فسينفذ الحلقة.

نختم هذا الدرس، باستخدام SSI لـ Code ربط الملف بقاعدة البيانات:

قم بقص الأسطر التالية من ملف tech.asp والصقهم في Notpad واحفظهم باسم connection.txt.

<%

'أوامر فتح قاعدة البيانات

Dim ConnectionString

Dim ADO

ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & Server.MapPath("\database\project.mdb")

Set ADO=Server.CreateObject("ADODB.Connection")

ADO.ConnectionString =ConnectionString

ADO.Open

%>

مكان الأسطر السابقة في tech.asp ضع سطر (إدراج الملف) التالي:

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

وسيكون شكل الصفحة كالتالي:

<%@ Language=VBScript CodePage = "1256"%>

<html dir=rtl>

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

<p align="center"><font face="Simplified Arabic">إليكم آخر
المستجدات في الساحة التقنية
</font></p>

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

<%

'أوامر اختيار الجدول واستدعاء البيانات منه


selectSQL="select * from tech_news"

set rs=ADO.execute(selectSQL)

'أوامر استعراض البيانات

do while not rs.eof

%>

<div align="center">

<center>

<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="90%">

<tr>

<td width="100%" dir="rtl" bgcolor="#DFDFFF"><b>العنوان : <%response.write rs(subject)%></b></td>

</tr>

<tr>

<td width="100%" dir="rtl"><b>التاريخ : <%response.write rs(add_dat)%></b>

<p><b>الخبر : <%response.write rs(body)%></b></td>

</tr>

</table>

</center>

</div>

<hr color="#DFDFFF" width="90%">

<%

       rs.movenext

loop

ADO.close

%>

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

تمنى أن يكون هذا الدرس واضحا. وسيتم تطوير هذا الملف في مرحلة متقدمة إن شاء الله. ويمكنك الآن الانتقال للدرس التالي.


  • يمكنك مشاهدة الصفحة التي قمنا بتصميمها في هذا الدرس من خلال هذا الرابط: أخبار تقنية

  • سيتم وضع رابط لسحب هذه الصفحة في الدرس الثامن وذلك بعد الانتهاء من تصميم صفحة tech.asp بالكامل.

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


تصميم وتطوير خالد الحر ، عالم النور