الدرس الخامس عشر: إضافة بيانات للقاعدة

الدرس الخامس عشر: إضافة بيانات للقاعدة

بعد أن انتهينا من تصميم صفحة sign_book.asp والتي تحتوي على الحقول المطلوبة لإدخال البيانات، سنقوم الآن بتصميم صفحة باسم add_to_book.asp لإضافة البيانات للقاعدة. هذه الصفحة ستكون عبارة عن Code بلغة ASP ولن نستخدم أي عبارات HTML . وما ستلاحظه في هذه الصفحة هو عدم ظهورها للزائر. أي ستعمل هذه الصفحة عندما يقوم الزائر بكتابة ملاحظاته والضغط على زر: أضف التوقيع. لكن الزائر لن يلاحظ هذه الصفحة، وسيرى نفسه في صفحة (عرض التواقيع) وسترى توقيعه في الأعلى.
لا نريد أن أستبق الأحداث، سنعرض عليك الآن الـ Code لهذه الصفحة، وسنقوم بشرح أهم النقاط فيه بعد ذلك.

<%@ Language=VBScript CodePage = “1256”%>

<!–#include file=”connection.txt” –>

<%
add_dat = now()
name = request.form (“name”)
email = request.form (“email”)
website = request.form (“website”)
link = request.form (“link”)
ranking = request.form (“ranking”)
comment = request.form (“comment”)

If name=”” or comment=”” then
response.write “<center>” & “لم تقم بإدخال جميع الحقول المطلوبة.. من فضلك اضغط زر عودة في متصفحتك وقم بإدخال جميع الحقول”
Else
addSQL= ” insert into guest_book (add_dat,name,email,website,link,ranking,comment) values (‘”&add_dat&”‘,'”&name&”‘,'”&email&”‘,'”&website&” ‘,'”&link&”‘,'”&ranking&”‘,'”&comment&”‘) ”
ADO.execute(addSQL)

response.redirect “guest.asp”
End if

ADO.close
Set ADO=Nothing

%>

تحدثنا سابقا عن المتغيرات. وقلنا أننا نكتب اسم المتغير ثم نضع علامة (=) بعد اسمه ونضع قيمته بعد علامة اليساوي. وذكرنا أن القيمة قد تكون رقما، أو كلمة، أو مدخلات في حقول من صفحات سابقة. وذكرنا أنه إن كانت طريقة نقل البيانات GET نستخدام العبارة Request.QueryString للتعبير عن المدخلات. أما إن كانت POST فسنستخدم Request.Form . والآن لنشرح المتغيرات التي لدينا.
لدينا 7 متغيرات. اترك المتغير الأول جانبا الآن. ولننظر للست متغيرات الأخرى ( name, email, website, link, ranking and comment) تشترك هذه المتغيرات الستة في نفس طريقة الكتابة. حيث تم تحديد اسمها، ومن ثم وضع علامة (=) ثم تم الإفصاح عن أن قيمة هذه المتغيرات ستكون عبارة عن مدخلات في حقول في الصفحة السابقة وذلك بالعبارة Request.Form أما أسماء الحقول في الصفحة السابقة فتم كتابتها بين هذه العلامات: (” “)
والآن، لنرجع للمتغير الأول وهو add_dat . تم تحديد قيمة المتغير بـ now() وهذه القيمة هي قيمة ثانية في اللغة تعطي: الوقت والتاريخ الحاليتين. وهنالك الكثير من الدوال الأخرى أهمها :

المعنى
الدالة

الوقت والتاريخ الحاليين Now() التاريخ الحالي Date() السنة الحالية Year() الوقت الحالي Time() الساعة الحالية Hour()

بعد تحديد المتغيرات تم كتابة جملة تبدأ بـ if . وهذه جملة شرطية. صيغتها:
If something Then
something
Else
something
End if

حيث أن كلمة something تعبر عن : شرط تقوم بتحديده، وفعل يجب القيام به. لنفترض أن الشرط هو: الساعة 12. والفعل أو الإجراء هو طباعة: (ابتدأ يوم جديد). والإجراء البديل هو طباعة: (لازلنا في نفس اليوم). بإمكاننا استخدام هذا الشرط، حيث سنكتب if ثم سنكتب الشرط المطلوب. ثم سنكتب Then لتنفيذ الإجراء المطلوب. وفي حالة عدم تحقق الشرط يتم تنفيذ الإجراء البديل الذي بعد Else . ونغلق الدالة الشرطية بـ End if
ويمكن أن تتطور هذه الصيغة في حالة وجود أكثر من شرط لتصبح كالتالي:
If something Then
something
Else If something Then
something
Else If something Then
something
Else
something
End if
End if
End if

لنعد للـ Code ونرى كيف تم استخدام الدالة الشرطية.
If name=”” or comment=”” then
في السطر السابق تم تحديد الشرط، وهو: إن كانت Name أو Comment لا تساوي شيئا (أي حقول فارغة) قم بالتالي…
من السطر السابق نفهم أمران هما:

  • علامتا “” المتلاصقتان تعنيان : لا شيء .. أو : فراغ.
  • يمكن استخدام الأوامر المنطقية Or و And في الدوال الشرطية لدمج أكثر من شرط في سطر واحد. 

أما الإجراء الواجب القيام به في حالة تنفيذ الشرط فهو الآتي:
response.write “<center>” & “لم تقم بإدخال جميع الحقول المطلوبة.. من فضلك اضغط زر عودة في متصفحتك وقم بإدخال جميع الحقول”
أي: اطبع الجملة التالية: (لم تقم بإدخال جميع الحقول المطلوبة.. من فضلك اضغط زر عودة في متصفحك وقم بإدخال جميع الحقول).
الأمر الجديد في response.write هذه المرة هو أننا قمنا بكتابة أمر HTML ضمن أوامر ASP وكأنه واحد منها. هذا أمر هو <center> أي: توسيط. والذي سيجعل الجملة تظهر في منتصف السطر. تم كتابة هذا الأمر على النحو التالي: وضعت علامات التنصيص “” ثم كتب الأمر بداخلها ثم وضعت علامة (و) & وتم كتبة الجملة التي نريد طباعتها.
هذا هو الشرط. أما الإجراء البديل في حالة عدم تحقق الشرطة (أي في حالة وجود بيانات في هذه الخانات) فهو:

addSQL= ” insert into guest_book (add_dat,name,email,website,link,ranking,comment) values (‘”&add_dat&”‘,'”&name&”‘,'”&email&”‘,'”&website&” ‘,'”&link&”‘,'”&ranking&”‘,'”&comment&”‘) “

وفي هذا السطر أمر جديد، هو insert ووظيفته: إضافة المدخلات لقاعدة البيانات. وصيغته كما هو واضح بالأعلى. يكتب الأمر insert متبوعة بالكلمة into ثم اسم الجدول المراد إضافة البيانات إليه. وبين قوسين تكتب أسماء الخانات في الجدول المطلوب إضافة المدخلات إليها. ثم تكتب values وبعدها بين قوسين أيضا القيم المراد إضافتها وهي بنفس ترتيب الحقول.
تكتب القيم هكذا: ‘”&add_dat&”‘
بعد سطر insert يتم كتابة سطر تنفيذ الأمر وهو :
ADO.execute(addSQL)
الاسم addSQL نحن من قام بتحديده، ويمكننا تغييره كيفما نشاء.
لازلنا في الجملة الشرطية، حيث تم تحديد فعل أو إجراء إضافي هو:
response.redirect “guest.asp”
وهذه الجملة تعني: انتقل للصفحة أو العنوان الموجود بين علامتي التنصيص. وفي حالتنا هذه طلبنا منه الانتقال إلى صفحة عرض التواقيع.
تم أغلنا الشرط بـ End if
لنتخيل الآن طريقة عمل هذه الصفحة.
سيكتب الشخص توقيعه أو ملاحظاته، وسيضغط على زر: إضافة التوقيع. سيبدأ المتصفح بقراءة هذه الصفحة. فسيجد مجموعة من المتغيرات، تعبر عن المدخلات التي تم إضافتها في التوقيع. ثم سيجد دالة شرطية، تطلب منه التحقق من أمر معين. هذا الأمور هو: هل توجد مدخلات في حقول الاسم والتعليق أم لا. ثم سيجد بمجموعة من الإجراءات. في حال تحقق الشرط (أي عدم موجود قيم في هذين الحقلي) ستظهر العبارة التالية: (لم تقم بإدخال جميع الحقول المطلوبة.. من فضلك اضغط زر عودة في متصفحك وقم بإدخال جميع الحقول) أما في حالة عدم تحقق الشرط (أي في حالة وجود قيم في هذه الحقول) سيتم تنفيذ أمر إضافة البيانات لقاعدة البيانات، تم فتح صفحة عرض التواقيع.
من الجدير بالذكر أن هذه العملية ستستغرق ثواني قليلة قد لا يشعر بها الزائر.

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

الكاتب ayman

ayman

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

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