السلام عليكم ورحمة الله وبركاته ..
قبل البداية أسمحوا لي أن أغير الموضوع قليلاً وأقول - هل فكرت أن تكون محترفاً في PHP !؟ إذاً من الآن أعمل على مكتبتك الخاصة ..
لا أريد أن أدخل في مقدمة طويلة عريضة .. لذلك سأبدأ مباشرة بالعمل التطبيقي ..
أولاً : أنشأ قاعدة بيانات باسم مثلاً - swalif - وضع فيها الجداول التالية :
كود PHP:
CREATE TABLE student (
BRs INTEGER UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
stage VARCHAR(50) )
CREATE TABLE taught (
BRt INTEGER UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
specialization VARCHAR(50) )
CREATE TABLE articles (
BRa INTEGER UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
writer VARCHAR(50),
article TEXT NOT NULL,
title VARCHAR(50),
date VARCHAR(50) )
ثانياً : أنشأ صفحة config.php .. وضع فيها
كود PHP:
<?php
$dbserver = "localhost"; // اسم السيرفر //
$dbname = "swalif"; // اسم قاعدة البيانات //
$dbuser = "root"; // اسم المستخدم لقاعدة البيانات //
$dbpss = ""; // كلمة المرور لقاعدة البيانات //
$DBC = @mysql_connect("$dbserver", "$dbuser", "$dbpss");
$DBS = @mysql_select_db("$dbname");
?>
ولنفترض أنك أنشأت قاعدة بيانات بناءً على المعلومات السابقة .. فلو أردنا أن نضيف طالب جديد ومعلم جديد ومقال جديد .. فما القاسم المشترك بينها ؟؟ من الطبيعي أن يكون هو الإضافة .. فالمراد هو إضافة في قاعدة البيانات لكن الاختلاف هو المسمى فهذا طالب وهذا معلم وهذا مقال ..
لذلك تجد الكثير منا يقوم مباشرة بإنشاء 3 ملفات على النحو التالي :
* صفحة إضافة طالب : addstudent.php .. ويكون المحتوى :
كود PHP:
<?
include ("config.php");
if ($B1 == "إرسال") {
$sql = mysql_query("
INSERT INTO student SET
name='$name',
stage='$stage' ");
Echo '<p align="center"><b>لقد تم إضافة طالب جديد</b></p>';
}
Else {
Echo '
<form enctype="multipart/form-data" method="post" dir="rtl">
<p align="center"><b><font face="Tahoma" size="4"><span lang="ar-sa">إضافة طالب</span></font></b></p>
<table border="0" width="600" id="table1" align="center">
<tr>
<td width="100"><font face="Tahoma"><span lang="ar-sa">الاسم</span></font></td>
<td width="500" align="center">
<input type="text" name="name" size="70"></td>
</tr>
<tr>
<td width="100"><font face="Tahoma"><span lang="ar-sa">المرحلة</span></font></td>
<td width="500" align="center">
<input type="text" name="stage" size="70"></td>
</tr>
</table>
<p align="center"><input type="submit" value="إرسال" name="B1"><span lang="ar-sa">
</span><input type="reset" value="إعادة تعيين" name="B2"></p>
</form> ';
}
?>
* صفحة إضافة مدرس : addtaught.php .. ويكون المحتوى :
كود PHP:
<?
include ("config.php");
if ($B1 == "إرسال") {
$sql = mysql_query("
INSERT INTO taught SET
name='$name',
specialization='$specialization' ");
Echo '<p align="center"><b>لقد تم إضافة مدرس جديد</b></p>';
}
Else {
Echo '
<form enctype="multipart/form-data" method="post" dir="rtl">
<p align="center"><b><font face="Tahoma" size="4"><span lang="ar-sa">إضافة معلم جديد</span></font></b></p>
<table border="0" width="600" id="table1" align="center">
<tr>
<td width="100"><font face="Tahoma"><span lang="ar-sa">الاسم</span></font></td>
<td width="500" align="center">
<input type="text" name="name" size="70"></td>
</tr>
<tr>
<td width="100"><font face="Tahoma"><span lang="ar-sa">التخصص</span></font></td>
<td width="500" align="center">
<input type="text" name="specialization" size="70"></td>
</tr>
</table>
<p align="center"><input type="submit" value="إرسال" name="B1"><span lang="ar-sa">
</span><input type="reset" value="إعادة تعيين" name="B2"></p>
</form> ';
}
?>
* صفحة إضافة مقال : addarticles.php .. ويكون المحتوى :
كود PHP:
<?
include ("config.php");
if ($B1 == "إرسال") {
$sql = mysql_query("
INSERT INTO articles SET
writer='$writer',
article='$article',
title='$title',
date='$date' ");
Echo '<p align="center"><b>لقد تم إضافة مقال جديد</b></p>';
}
Else {
Echo '
<form enctype="multipart/form-data" method="post" dir="rtl">
<p align="center"><b><font face="Tahoma" size="4"><span lang="ar-sa">إضافة مقال جديد</span></font></b></p>
<table border="0" width="600" id="table1" align="center">
<tr>
<td width="100"><font face="Tahoma"><span lang="ar-sa">الكاتب</span></font></td>
<td width="500" align="center">
<input type="text" name="writer" size="70"></td>
</tr>
<tr>
<td width="100"><font face="Tahoma"><span lang="ar-sa">العنوان</span></font></td>
<td width="500" align="center">
<input type="text" name="title" size="70"></td>
</tr>
<tr>
<td width="100"><font face="Tahoma"><span lang="ar-sa">المقال</span></font></td>
<td width="500" align="center">
<textarea rows="6" name="article" cols="53"></textarea></td>
</tr>
<tr>
<td width="100"><font face="Tahoma"><span lang="ar-sa">التاريخ</span></font></td>
<td width="500" align="center">
<input type="text" name="date" size="70"></td>
</tr>
</table>
<p align="center"><input type="submit" value="إرسال" name="B1"><span lang="ar-sa">
</span><input type="reset" value="إعادة تعيين" name="B2"></p>
</form> ';
}
?>
وبهذا الأسلوب نجد التكرار لأكواد html وكذلك ضياع الوقت في كتابته أو تجهزه ، فما بالك إذا كان لديك برامج أكبر من هذا مع العلم أنّا لم نتطرق إلا إلى الإضافة .
** لكن من الآن أعمل على أن يكون لديك مكتبه مجهزه تختصر عليك عمل الأسبوع في يوم .. بحيث يكون تجهيز المكتبة على النحو التالي :
سيكون شرح على طريقة Function ويمكنك فيما بعد تطويرها وجعلها في Class ..
أولاً : بعد أن تنشئ ملف config.php قم بإنشاء ملف Function.php وضع فيه :
كود PHP:
<?
function Add($titlepage,$nametext,$namecolumn,$kindcolumn) {
$crop = count($nametext);
print "
<form enctype='multipart/form-data' method='post' dir='rtl'>
<p align='center'><b><font face='Tahoma' size='4'>".$titlepage[0]."</font></b></p>
<table border='0' width='600' id='table1' align='center'>";
for ($i = 0;$i < $crop;$i++) {
// ترجمة بعض الرموز //
if ($kindcolumn[$i] == "حقل")
{$kindcolumn[$i] = "<input type='text' name='".$namecolumn[$i]."' size='70'>";}
elseif ($kindcolumn[$i] == "نص")
{$kindcolumn[$i] = "<textarea rows='6' name='".$namecolumn[$i]."' cols='53'></textarea>";}
elseif ($kindcolumn[$i] == "سري")
{$kindcolumn[$i] = "<input type='password' name='".$namecolumn[$i]."' size='70'>";}
else {$kindcolumn[$i] = $kindcolumn[$i];}
print "</tr>
<td width='100'><font face='Tahoma'>
".$nametext[$i]."</font></td>";
print "<td align='center'>
".$kindcolumn[$i]."</td>
</tr>";
}
print "
</table>
<p align='center'><input type='submit' value='".$titlepage[1]."' name='B1'><span lang='ar-sa'>
</span><input type='reset' value='إعادة تعيين' name='B2'></p>
</form>";
}
?>
في هذا الملف ترجمة لرموز أي صفحة إضافة على قاعدة البيانات فقط أطلب هذا function وضع ما يلزم في صفحة الإضافة .. وسنطبق نفس المثال السابق لكيفية التعامل مع function ..
* صفحة إضافة طالب : addstudent.php .. ويكون المحتوى :
كود PHP:
<?
include ("config.php");
include ("Function.php");
// بعض العناوين الخاصة بالصفحة
$titlepage = array ("إضافة طالب جديد","إضافة");
// خصائص الإضافة
$nametext = array ("الاسم","المرحلة"); // عناوين الحقول
$namecolumn = array ("name","stage"); // اسماء الحقول
$kindcolumn = array ("حقل","حقل"); // أنواع الحقول
// عملية الإضافة
if ($B1 == $titlepage[1]) {
$sql = mysql_query("
INSERT INTO student SET
name='$name',
stage='$stage' ");
Echo '<p align="center"><b>لقد تم إضافة طالب جديد</b></p>';
exit();}
// طلب الفورم
Add($titlepage,$nametext,$namecolumn,$kindcolumn);
?>
* صفحة إضافة مدرس : addtaught.php .. ويكون المحتوى :
كود PHP:
<?
include ("config.php");
include ("Function.php");
// بعض العناوين الخاصة بالصفحة
$titlepage = array ("إضافة معلم جديد","إضافة");
// خصائص الإضافة
$nametext = array ("الاسم","التخصص"); // عناوين الحقول
$namecolumn = array ("name","specialization"); // اسماء الحقول
$kindcolumn = array ("حقل","حقل"); // أنواع الحقول
// عملية الإضافة
if ($B1 == $titlepage[1]) {
$sql = mysql_query("
INSERT INTO taught SET
name='$name',
specialization='$specialization' ");
Echo '<p align="center"><b>لقد تم إضافة مدرس جديد</b></p>';
exit();}
// طلب الفورم
Add($titlepage,$nametext,$namecolumn,$kindcolumn);
?>
* صفحة إضافة مقال : addarticles.php .. ويكون المحتوى :
كود PHP:
<?php
include ("config.php");
include ("Function.php");
// بعض العناوين الخاصة بالصفحة
$titlepage = array ("إضافة مقال جديد","إضافة");
// خصائص الإضافة
$nametext = array (""الكاتب","العنوان","المقال","التاريخ); // عناوين الحقول
$namecolumn = array ("writer","title","article","date"); // اسماء الحقول
$kindcolumn = array ("حقل","حقل","نص","حقل"); // أنواع الحقول
// عملية الإضافة
if ($B1 == $titlepage[1]) {
$sql = mysql_query("
INSERT INTO articles SET
writer='$writer',
article='$article',
title='$title',
date='$date' ");
Echo '<p align="center"><b>لقد تم إضافة مقال جديد</b></p>';
exit();}
// طلب الفورم
Add($titlepage,$nametext,$namecolumn,$kindcolumn);
?>
------
طبعاً هذا مثال بسيط توضيحي والمكتبة ليست مقتصرة على الإضافة بل تشمل الحذف والتعديل والعرض وكذلك السابق والتالي و أي كود أو Function أو Class خارجي مثل سكربت الكتابه على الصور arabicGD الذي تم برمجته من الأخ (Nasa Baby ) مع حفظ حقوقه وكذلك سكربت التاريخ الهجري وغيرها من السكربتات الخارجية .
فمن الآن أبدا بتجميع أوراقك وصفها .. قد تتعب في البداية لكن سترتاح بعد ذلك ..
في المرفق التطبيق كامل .. في ملف professional تجد تطبيق المثال بالشكل التقليدي .. وفي ملف traditional تجد تطبيق المثال بالشكل الجديد ..
أرجوا أن أكون قد وفقت في طرح الموضوع على أتم وجه .. ومن كان لديه استفسار أو ملاحظة فيتفضل ..
محبكم عبدالعزيز