الدرس السابع: عرض جميع النتائج بشكل متتالي
في الدرس السابق، تعلمنا كيف يمكننا تغيير مظهر عرض الأخبار. والإشكالية الوحيدة المتبقية الآن هي: كيفية عرض جميع الأخبار. فما قمنا به إلى الآن هو قراءة الأخبار من القاعدة، وعرض أول خبر فقط. وفي هذا الدرس سنتعلم كيف يمكننا عرض كل الأخبار.
افتح صفحة 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 ليكون بالشكل التالي:
ملاحظة: السطور الجديدة كتبت باللون الأخصر لتسهل عملية تمييزها.
كود PHP:
[right]<%@ 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" -->
[/right]
وستكون النتيجة كالتالي:
العنوان : اختراق مواقع حركة طالبان على الإنترنتالتاريخ : 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.
كود PHP:
[right]<%
أوامر فتح قاعدة البيانات
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
%>
[/right]
مكان الأسطر السابقة في tech.asp ضع سطر (إدراج الملف) التالي:
كود:
<!--#include file="connection.txt" -->
وسيكون شكل الصفحة كالتالي:
كود PHP:
[right]<%@ 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" -->
[/right]
تمنى أن يكون هذا الدرس واضحا. وسيتم تطوير هذا الملف في مرحلة متقدمة إن شاء الله. ويمكنك الآن الانتقال للدرس التالي.
إعداد: خالد الحر