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

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

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

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

كود PHP:
<%@ 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:
       <%@ 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.

كود PHP:
<%
'أوامر فتح قاعدة        البيانات
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 ضع سطر (إدراج الملف) التالي:

كود PHP:
<!--#include        file="connection.txt" -->

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

كود PHP:
<%@ 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 بالكامل.

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

الكاتب ayman

ayman

مواضيع متعلقة

التعليقات مغلقة