بناء كلاس الإتصال بقاعدة البيانات

بسم الله الرحمن الرحيم بعد أن تعلمنا في دورة مستقلة أساسيات الــOPP سنتعلم اليوم برمجة كلاس أو كائن مهمته هي الإتصال ..


موضوع مغلق


19-09-2010 11:44 صباحا
abu_Rabih
عضو فعال
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 02-08-2009
رقم العضوية : 78
المشاركات : 245
الدولة : الجمهورية العربية السورية
الجنس : ذكر
تاريخ الميلاد : 2-12-1990
يتابعهم : 1
يتابعونه : 0
قوة السمعة : 678
اصدار المنتدى : غير محدد
 offline 
بسم الله الرحمن الرحيم

بعد أن تعلمنا في دورة مستقلة أساسيات الــOPP سنتعلم اليوم برمجة كلاس أو كائن مهمته هي
الإتصال بقاعدة البيانات ... لجلب المعلومات منها أو ادخال أو حذف المعلومات smile منها

بداية سنأخذ لمحة بسيطة عن قاعدة البيانات ..
إن قاعدة البيانات الأكثر استخدما مع OOP هي من النوع MYSQL أو MYSQLI
وهي النوع المعترف و المستخدم بكثرة في بناء تطبيقات PHP العامة ...
تتألف قاعدة البيانات من مجموعة جداول في كل جدول يحوي مجموعة حقول نستطيع ادخال القيم فيها
أو استخراجها منها عن طريق أوامر PHP لكن يلزمني بداية كائن يمكنني من الإرتباط بالقاعدة كي
أستطيع تنفيذ أوامرها cool ... هذا الكلاس هو ماسنتعرف كتابته ..لذلك جهّز نفسك للإنطلاق !

يتبع

19-09-2010 12:59 مساء
مشاهدة مشاركة منفردة [1]
abu_Rabih
عضو فعال
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 02-08-2009
رقم العضوية : 78
المشاركات : 245
الدولة : الجمهورية العربية السورية
الجنس : ذكر
تاريخ الميلاد : 2-12-1990
يتابعهم : 1
يتابعونه : 0
قوة السمعة : 678
اصدار المنتدى : غير محدد
 offline 
look/images/icons/i1.gif بناء كلاس الإتصال بقاعدة البيانات
لنبدأ على بركة الله ...
أولا في بداية الصفخة عليك وضع وسم بداية ملف php والذي هو :
<?php

ثم نكتب تعليقا (التعليق هو عبارة عن حقوق تظهر أعلى صفحة الـــphp دون أن تؤئر على البرمجة أو حتى تظهر لدى طباعة الصفحة ) يوجد عدة طرق لكتابة التعليقات منها استخدام // قبل التعليق أو /* لكنني أفضل الطريقة التالية :
# ------------------------------------------------------------------------------------------# 
# Database File - PHP Content Management System # 
# Copyright (c) 2010 Hussein Hag Ahmad(abu_Rabih( # 
# -----------------------------------------------------------------------------------------#


تستطيع كتابة ماتشاء داخل هذا التعليق وحتى تستطيع الكتابة العربية لكن الأفضل الكتابة الإنكليزية wink_3
الأن سنبدأ بإنشاء الكائن وهو كما تعلمناه في دورة OOP يجب أن يبدأ بكلمة class كالتالي :
 
class SQL 
{

هذا الكائن أطلقت عليه اسم هو SQL يمكنك تغييره كما تريد شريطة أن يبدأ الاسم بحرف انجليزي كبير wink_3
ثم نحدد الأساليب أو صفات هذا الكائن (راجع دورة oop )
وهي كالتالي :
 
var $Host			=	   "localhost"; 
			 var $DB_User	   =	   ""; 
			 var $DB_Pass	   =	   ""; 
			 var $DB_Name		  =	   "";

لاحظ أننا حددنا الاساليب أو المتغيرات التي سأستخدمها لاحقا داخل وخارج الكائن
نبدأ الأن ببناء الخصائص وهي الوظائف التي سيقوم بها الكائن (باختصار هي الدوال )
لنبدأ مع الدالة الاولى :
 
function setinfo($Host,$DB_User,$DB_Pass,$DB_Name) 
			 { 
					 $this->Host	   = $Host; 
					 $this->DB_User	= $DB_User; 
					 $this->DB_Pass	= $DB_Pass; 
					 $this->DB_Name	= $DB_Name; 
			 }

بدأت الدالة واسميتها setinfo ثم وضعت ضمن قوسين البارمترات التي ستأخذها هذه الدالة وهي
$Host : المستضيف
$DB_User : مستخدم قاعدة البيانات
$DB_Pass : كلمة سر قاعدة البيانات
$DB_Name : اسم قاعدة البيانات
هذه البارمترات سيتوجب علي وضعها عندما أستخدم الدالة setinfo ...
بعد ذلك وضعنا
$this->Host	   = $Host; 
وهذه تعني أن المتغير الذي عرفناه في البداية وقلنا عنه أنه من الاساليب -اذا تذكرت - هو مساوي للبارمتر الاول من دالة setinfo تذكر أن this تستخدم لاستدعاء متغير أو دالة ضمن الكائن وقد سبق شرحه
					 $this->DB_User	= $DB_User; 
					 $this->DB_Pass	= $DB_Pass; 
					 $this->DB_Name	= $DB_Name;

نفس الشرح السابق !

يتبع

تحياتي أبو ربيع

19-09-2010 05:40 مساء
مشاهدة مشاركة منفردة [2]
Mr.Php
عضو متألق
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 05-09-2010
رقم العضوية : 667
المشاركات : 753
الدولة : ســــــــــــــــوريا وبكل اعتزاز
الجنس : ذكر
تاريخ الميلاد : 1-7-1985
الدعوات : 2
يتابعهم : 6
يتابعونه : 1
قوة السمعة : 2024
اصدار المنتدى : 3.0.1
 offline 
look/images/icons/i1.gif بناء كلاس الإتصال بقاعدة البيانات
رائع أخي الكريم ما شاء الله ما شاء الله

19-09-2010 07:44 مساء
مشاهدة مشاركة منفردة [3]
AHMED
عضـو ستـار
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 20-07-2009
رقم العضوية : 18
المشاركات : 2796
الجنس : ذكر
تاريخ الميلاد : 1-10-1981
الدعوات : 25
يتابعهم : 0
يتابعونه : 2
قوة السمعة : 4978
موقعي : زيارة موقعي
اصدار المنتدى : 3.0.1
 offline 
look/images/icons/i1.gif بناء كلاس الإتصال بقاعدة البيانات
جزاك الله خيرا اخى الفاضل و بارك لك

20-09-2010 12:54 مساء
مشاهدة مشاركة منفردة [4]
PhpMax
عضو سوبر ستار
rating
العضو غائب وآخر دعواهم أن الحمد لله رب العالمين
معلومات الكاتب ▼
تاريخ الإنضمام : 19-03-2010
رقم العضوية : 425
المشاركات : 3236
الجنس : ذكر
الدعوات : 4
يتابعهم : 0
يتابعونه : 4
قوة السمعة : 9822
موقعي : زيارة موقعي
اصدار المنتدى : 2.1.4
 offline 
look/images/icons/i1.gif بناء كلاس الإتصال بقاعدة البيانات
جزاك الله كل خير,

20-09-2010 01:38 مساء
مشاهدة مشاركة منفردة [5]
abu_Rabih
عضو فعال
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 02-08-2009
رقم العضوية : 78
المشاركات : 245
الدولة : الجمهورية العربية السورية
الجنس : ذكر
تاريخ الميلاد : 2-12-1990
يتابعهم : 1
يتابعونه : 0
قوة السمعة : 678
اصدار المنتدى : غير محدد
 offline 
look/images/icons/i1.gif بناء كلاس الإتصال بقاعدة البيانات
عدنا لنكمل معكم بناء دوال هذا الكائن ...
الدالة التالية سنكتبها بالشكل :
 function sql_connect()
			 {
					 $connect = @mysql_connect($this->Host,$this->DB_User,$this->DB_Pass);
					 if (!$connect)
					 {
return $this->error("Ther is a problem in connection ");
					 }
					 return $connect;
			 }

هذه الدالة أسميتها sql_connect وهي الدالة الرئيسية في الإتصال بقاعدة البيانات ..
عرفنا داخلها متغيرا اسمه $connect وجعلناه مساوي للقيمة :
@mysql_connect($this->Host,$this->DB_User,$this->DB_Pass);

ماذا تعني هذه القيمة .. لاحظ اذا كنت تذكر أننا قلنا انه يوجد دوال رئيسية أو أساسية وأخرى منشأة
حسنا اذا لسرعة الفهم الدالة mysql_connect هي دالة أساسية يستطيع الحاسوب قراءتها على أنها
"اتصال بقاعدة البيانات " ولاحظ أننا لو وضعنها في محرر php سيكون لونها غير باقي ألوان الكتابة
دلالة على خصوصية هذه الدالة والتي هي الأساس الذي سينفذ الأمر وهو الإتصال بقاعدة البيانات
لاحظ اخي أنني بعد mysql_connect فتحت قوس دلالة على أن هذه الدالة الأساسية تحتاج إلى بارمترات وبدونها لن تعمل الدالة ..ماهي هذه البارمترات ؟
البارمتر الأول : هو المستضيف والذي هو في حالتنا $this->Host
البارمتر الثاني : هو مستخدم قاعدة البيانات وهو عندنا $this->DB_User
البارمتر الثالث : هو كلمة مرور القاعدة $this->DB_Pass
هذه البارمترات ثابتة في حال استخدام الدالة mysql_connect يعني يجب عليك وضعها شئت أم أبيت
biggrin2
الأن لاحظ استخدمنا الشرط
 if (!$connect)
					 {
					 return $this->error("Ther is a problem in connection ");
					 }

ماذا يعني هذا الشرط ؟؟
كما تعرف أن المتغير $connect وظيفته هي الإتصال بقاعدة البيانات ..لكن في حال فشل بذلك ماذا
يحصل ؟ لذلك وضعت له هذا الشرط حيث قلت في الشرط " اذا كان المتغير $connect غير محقق أعد الخطأ التالي واطبعه على المتصفح Ther is a problem in connection wink_3 "
لاحظ كيف كتبت الشرط if ثم فتحت قوس ثم اشارة تعجب ! وهي تعني "عدم تحقق " ثم اسم المتغير
connect ثم أغلقت القوس وفتحت قوس بدء الأمر {
ثم كتبت return وهي تعني بالإنجليزية " عد " وهنا أيضا أي عد بالنتيجة التالية والتي هي
$this->error("Ther is a problem in connection
لاحظ استخدمن this ثم اسم دالة هي error لكنني لم ابرمج بعد دالة اسمها error فكيف أقوم بكتابتها
وهي غير مبرمجة بعد ضمن الكلاس ؟ blink
شوف أخي من مواصفات المبرمج الناجح أنه يخطط لبرنامجه قبل البدء فيه وأنا خططت لأنني لاحقا سأبرمج دالة اسمها error تعتني بالأخطاء الظاهرة في الكلاس wink_3
ثم أغلقنا القوس الكبير }
الأن أخر أمر في هذه الدالة وهو
return $connect;

كما ذكرنا سابقا الأمر return يعني "أربج أو عد بالنتيجة " ثم نضع بعده اسم المتغير connect
أي "طالما أننا نستطيع تنفيذ المتغير conncet عليك أن تعود بنتيجته كي أستخدمها لاحقا لأتصل بقاعدة البيانات " cool
أي سؤال أنا جاهز !
يتبع ..
تحياتي أبو ربيع

09-09-2011 07:31 صباحا
مشاهدة مشاركة منفردة [6]
محمد الصاوي
عضـو بـارز
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 31-10-2010
رقم العضوية : 901
المشاركات : 1155
الدولة : مصر
الجنس : ذكر
تاريخ الميلاد : 20-2-1990
الدعوات : 1
يتابعهم : 0
يتابعونه : 1
قوة السمعة : 3272
موقعي : زيارة موقعي
اصدار المنتدى : 2.1.4
 offline 
look/images/icons/i1.gif بناء كلاس الإتصال بقاعدة البيانات
اقتبـاس ،،
يتبع ..


و نحن قيد الانتظار biggrin2



الكلمات الدلالية
بناء ، كلاس ، الإتصال ، بقاعدة ، البيانات ،







الساعة الآن 09:29 مساء