سوف نبدأ بأخذ فكرة عن البرنامج الذي سوف أشرح عنه وهو عبارة عن دليل مواقع بسيط جداً جداً يعتمد علي قواعد البيانات.
بالطبع لا يوجد فيه تقسيمات والسبب لأننا سوف نضطر إلي وضع أو خلق أكثر من جدول (Table) في قواعد البيانات وسوف نضطر إلي وضع علاقات بينهم
وهذا حالياً يعقد الموضوع فسأكتفي الآن بجدول واحد (one table) وسوف اشرح إذا اتسع لدي الوقت الكثير عن (sql) عامة وعن العلاقات (Relationstips) لأنها مثيرة أيضاً جداً
نبدأ في الخطوة الأولى وهي قاعدة البيانات الخاصة بدليل الموقع الذي لدينا , فالبيانات والمعلومات التي غالباً ما يهتم بها دليل الموقع هي عنوان الموقع واسم الموقع والبريد الخاص بالموقع
هذا هو الكود الخاص بإنشاء قاعدة البيانات الخاصة بدليل الموقع
CREATE TABLE dalal ( id int not null auto_increment,sitename varchar(100),add_date date,email varchar(100),site_url varchar(100),description text, primary key (id));هنا سوف يخزن في قواعد البيانات المعلومات التالية :
id وهي المرشح الأساسي والفريد الذي يتُعرف علي الجدول بواسطته .
sitename وهي اسم الموقع وهي من نوع char
add_date تاريخ إضافة الموقع وهو من نوع date
email البريد الإلكتروني وهو من نوع char وطولها نفس طول اسم الموقع (100)
site_url وهو عنوان الموقع أيضاً من نوع char
سوف اكتفي بشرح id لأنه ربما يكون جديد علي البعض وسوف اشرح عمله وليس المهم أن تفهم علمه في هذه الخطوة إنما سوف تفهمها بالتفصيل في الخطوات القادمة بعد قليل إن شاء الله
id هو عبارة عن المرشح الأساسي لهذا الجدول (primary key)
وتلخص في آخر سطر من الجدول وجود:
primary key (id)ربما ترجمة المصطلحات العلمية وخاصةً في الكمبيوتر تضر أكثر مما تنفع وهذا سبب وجيه لي في كتابتي السكربت مهما كان بلغة إنجليزية ومن ثم تعربيها
المهم نحن الآن نريد أن نعرف ماذا يعني id سوف أعطي مثال لكي يتضح فلو أردنا مرشح أساسي أو كود فريد نميز به هذا الجدول فلن نستطيع أن نضع هذا الكود الفريد اسم الموقع لان ربما يكون لدي موقعاً بنفس الاسم والاختلاف بينهما في الوصلة وربما يكون هناك موقع بعنوانين مثل سوالف وياهوو إذاً اسم الموقع لا يكمن أن نضعه كود أساسي وأيضاً نفس الكلام ينطبق علي عنوان الموقع وأيضاً علي التاريخ وحتى البريد لا نستطيع أن نضع البريد هو المرشح الوحيد والأساسي للجدول ربما يأتي هذا لكن منطقياً لا يجوز
ربما ترى id من نوع عدد صحيح ( int ) لكن ربما يصعب عليك الذي بجانبه وهو ( not null ) وهي تعني بعدم السماح لهذا الحقل أن يكون بدون قيمة
not null تعني بكل وضوح ربما يسمح بقيمة فارغة ربما تفكر في الصفر فهذا غير صحيح .
وترى أيضاً هذه العبارة بجانب not null وهي ( auto_increment ) وهي تعني بكل وضوح الإضافة التلقائية أو الأتوماتيكية ودائماً ما يبدأ بالقيمة ( 1 )
وهذا يعني مع كل إضافة موقع سوف تزيد قيمة ( id ) وهي تبدأ من ( 1 )
config.php
وهو عبارة عن ملف التوجية الذي يحتوي معلومات الموقع وهي المعلومات التالية:
<?//this moudel config$dbname="links";$dbuname="root";$dbpws="";$dbhost="localhost";?>
لا يحتاج إلي شرح لأنه واضح فالذي جرب أن يركب أي برنامجphpيعتمد علي قواعد البيانات فالأكيد راح يعدل في ملف مشابه له أو نفسه
ومع ذلك سنشرحه :الآن نبدأ فيadd.phpوهذا هو :
<html><head><style type="text/css">body {font-family:verdana,verdana; font-size:10pt}TD {font-family:verdana,verdana; font-size:10pt}#header {color:white; font-weight:bold; font-family:verdana,verdana}A {color:navy; text-decoration:underline}A:hover {color:red}A:visit {color:navy}</style><title>Site Insertion</title></head><?if ($action=='addsite'){include("config.php");mysql_pconnect($dbhost,$dbuname,$dbpw);@mysql_select_db("$dbname") or die ("Unable to select database");mysql_query("insert into dalal values ('','$name','','$email','$siteurl','$des')");mysql_close();echo"Thank you for add site ";}?><body bgcolor=white><form method="POST" action="add.php?action=addsite"><p>SiteName <input type="text" name="name" size="40" style="border-style: double; border-color: #000080"></p><p>Email <input type="text" name="email" size="40" style="border-style: double; border-color: #000080"></p><p>SiteUrl <input type="text" name="siteurl" size="40" style="border-style: double; border-color: #000080" value="http://"></p><p>description<textarea rows="5" name="des" cols="33" style="border-style: double; border-color: #000080"></textarea></p><p align="center"><input type="submit" value="Submit" name="B1" style="border-style: double; border-color: #000080"><input type="reset" value="Reset" name="B2" style="border-style: double; border-color: #000080"></p></form><br><a href="show.php"><b>View</b></a><br></body></html>
من رؤيتك له تلاحظ أنه عبارة عنhtmlوphpلكن كودphpأكثر
بالنسبةhtmlفهي بسيطة بإمكانك فهمها وهي عبارة عن حقول تطلب من المستخدم إدخال معلومات الموقع سوف أبدأ في شرح كودphp
فتلاحظ بدايته ونهايته بهذين الوسمين <? و ?>
وبعدها يأتي شرط التحقق وهوif ($action=='addsite')
فهذا يعني التحقق هل من إضافة جديدة علي الحقول الخاصة بعملومات الموقع وتلاحظ أن التحقق من هذا الشرط بهذه القيمة ('addsite') بين وسمين اقتباس وحيدة ربما يكون هناك بعض التساؤل قليلاً عليه لكن لو تلاحظ في كودhtmlفيformوضعت الانتقال بعد إضافة المعلومات إلي (add.php?addsite) هنا
<form method="POST"action="add.php?action=addsite"><p>SiteName<input type="text"name="name"size="40"style="border-style: double; border-color: #000080"></p><p> <input type="text"name="email"size="40"style="border-style: double; border-color: #000080"></p><p>SiteUrl <input type="text"name="siteurl"size="40"style="border-style: double; border-color: #000080"value="http://"></p><p>description<textarea rows="5"name="des"cols="33"style="border-style: double; border-color: #000080"></textarea></p><p align="center"><input type="submit"value="Submit"name="B1"style="border-style: double; border-color: #000080"><input type="reset"value="Reset"name="B2"style="border-style: double; border-color: #000080"></p></form>
هذا هو كود الفورم الخاص بإدخال معلومات الموقع فإذا لاحظه في بدايته هنا <form method="POST"action="add.php?action=addsite">
وضعت الإرسال بالـ (post) وقمت بوضع قيمة (action) الصفحة (add.php?addsite)
هذا يعني أن قيمة (action) في حال ضغطsubmitستكون ما هو مكتوب بعد علامة الاستفهام ( ؟ ) بعد اسم الصفحه وهي (add.php?addsite)
أتمنى أنك فهمت المقصود
بعد ذلك إذا تحقق الشرط ووجد من أرسل سوف ينفذ الأوامر والأولى منهاinclude("config.php");
وأمرincludeيعني استجلاب هذا الملف وقيم المتغيرات الموجودة به
بعد هذا الأمر طلبت الاتصال بقواعد البيانات لكي يتم تجهيز الجدول للإضافة
وهو هناmysql_pconnect($dbhost,$dbuname,$dbpw);@mysql_select_db("$dbname") or die ("Unable to select database");
الدالةmysql_pconnectتطلب الاتصال بخادم قاعدة البيانات علي أساس المعلومات الموجودة بها
وهنا نحن استعنا بعد الله بالمتغيرات الموجودة في ملفconfig.php
وربما هذا يوضح لنا أكثر فائدة الدالةinclude
ربما لاحظت في طلب الاتصال في الدالةmysql_pconccetفي السطر الثاني بعدها هذا
@mysql_select_db("$dbname") or die ("Unable to select database");
هنا في الدالةmysql_select_dbوضعنا قيمة المتغيرdbnameوهو اسم قاعدة البيانات
فهذه الدالة تقوم بتحديد اسم قاعدة البيانات المراد الاتصال بها وهذا ربما يوضح استخدام علامة @
لكي يعمل كل شيء بنفس الوقت
بعد هذا نلاحظ السطر التالي :mysql_query("insert into dalal values ('','$name','','$email','$siteurl','$des')");
قمنا في هذا السطر بتنفيذ الدالةmysql_queryوهذه الدالة تقوم باختصار بتنفيذ استعلامات (sql) وفي هذا السطر استخدمنا أمر الاستعلام المراد تنفيذه بواسطة الدالةmysql_queryهو (Insert)
هذا الأمر أو الدالة فيsqlتقوم بإضافة البيانات في قاعدة البيانات والصيغة أو القاعدة الثابتة له هي
INSERT INTO tablename VALUES(var andvalues)
INSERT INTO
هذا ثابت لدينا بعده يأتي اسم الجدول الذي نريد إضافة البيانات بداخله
وبعد ذلك تأتي كلمةVALUES (varوتفتح قوس وتيحط المتغيرات والقيم المراد إضافتها بأقواس اقتباس (" ") وتنهيه بفاصلة منقوطة;
تلاحظ حين استخدمتmysql_queryوinsertلم أضع القيم بل وضعة المتغيرات التي تحمل القيم المراد تخزينة في جدولdalalربما هذا يسهل علينا الكثير
بعد ذلك في تأتي الدالةmysql_colseوهي تعني طلب إغلاق الاتصال بخادم قاعدة البيانات
بهذا انتهيانا من ملفadd.phpوconfig.php
هنا سوف نعرف كيف نستخرج البيانات الموجودة داخل قاعدة البيانات
وهي في غاية السهولة
بدايةً سوف أضع كودshow.phpكاملاً واشرحه مثل سابقه
<html><head><style type="text/css">body {font-family:verdana,verdana; font-size:10pt}TD {font-family:verdana,verdana; font-size:10pt}#header {color:black; font-weight:bold; font-family:verdana,verdana}A {color:navy; text-decoration:underline}A:hover {color:red}A:visit {color:navy}</style></head><titel><center><b>view The sites</b></center><br><center><a href='add.php'>Add Your Site</a></center> <hr color="#000080"></titel><body><?phpinclude("config.php");mysql_pconnect($dbhost,$dbuname,$dbpw);@mysql_select_db("$dbname") or die ("Unable to select database");$query="select * from dalal ";$result=mysql_query($query);mysql_close();/*Display Results*/$num=mysql_numrows($result);$i=0;while ($i<$num) {$sitename=mysql_result($result,$i,"sitename");$add_date=mysql_result($result,$i,"add_date");=mysql_result($result,$i,"email");$siteurl=mysql_result($result,$i,"site_url");$description=mysql_result($result,$i,"description");$id=mysql_result($result,$i,"id");?><table border="0" cellspacing="0" cellpadding="0"><tr><td width="100%"><b>SiteName :</b><a href='<?echo$siteurl;?>'><i><?echo$sitename;?></i></a><p><b>Date Add :</b> <i><?echo$add_date;?></i></p><p><b>description :</b><?echo$description;?></p><p><b>URL :</b><i><?echo$siteurl;?></i></p><p><b>Email :</b><i> <a href="mailto:<?echo;?>"><?echo;?></a></i> </p></td></tr></table><a href='edit.php?id=<?echo$id;?>'><b><b>[Edit This Site]</b></b></a><hr color="#000080"><?++$i;}?></body></html>
كما تلاحظ تقريباً شبيه بالملفadd.phpفي عملية الاتصال لكن الجديد لدينا هنا
السطر الذي يلي عملية الاتصال وهو$query="select * from dalal ";
في هذا السطر قمنا بتعريف متغير يدعىqueryوقمنا بوضع قيمة هذا المتغير عملية الاستعلام عن المعلومات الموجودة في الجدولdalal
أظن هذا واضح لكن دعني أشرح عملselectفهي تقوم بتحديد الحقول بداخل الجداول أو الجدول وهي دائماً تستخدم في إخراج البيانات من الجداول فتلاحظ وضعنا قيمة الحقل أو الحقول في استعلامنا هذا علامة الضرب( * ) وهي تعني تحديد جميع الحقول الموجودة وبعدها استعملناfromوهذا يعني من ودائماً يأتي بعده أسماء الجدول أو اسم الجدول الذي قمت بتحديد الحقول بداخله
ببساطة واختصاراً لهذا السطرselect * from dalal
حدد جميع الحقول من جدول الدليل
هنا سوف يحدد جميع الحقول الموجودة في جدول الدليل ويقوم بتخزينها في المتغيرquery
بسيطة
لا تنس أن تضعها بين أقواس اقتباس مزدوجة (" ")
بعد ذالك يأتي هذا السطر$result=mysql_query($query);
قمنا هنا أيضاً بتعريف المتغيرresultوقمنا بتخزين قيمة الدالةmysql_qureyوقيمة المتغير الذي استعلمت به الدالةmysql_queryفي المتغيرresult
بوضوح هنا قمنا بالاستعانة بالدالةmysql_queryوانسبنا اليها قيمة المتغيرqueryالموجود به مسبقاً قيمة الاستعلام مسبقاً في السطر الذي يسبق هذا السطر وقمنا بهذا لكي يتم فرز جميع القيم الموجودة في الجدولdalalبواسطة الدالةmysql_query
( هذا ابسط من اللي قبل )
بعد ذلك قمنا بإغلاق قاعدة البيانات بالدالةmysql_colse
وبعد ذلك قمنا بتنويه بسيط وتعليق يوضح أننا سوف نعرض ونطبع القيم الموجودة في الجدول في هذا السطر
/*Display Results*/
بعد هذا السطر قمنا بتعريف متغير يدعىnumوأضفنا القيمة إليه باستخدام الدالةmysql_numrowsمسندين إليه قيمة المتغيرresult
الدالةmysql_numrowsتقوم باسترجاع ومعالجة نتيجتنا المخزنة في المتغيرresultوتقوم بتخزينها في المتغيرnumعلي شكل مصفوفة
بعد ذالك قمنا بتعريف عداد يدعىiووضعنا قيمته صفر لكي نستخدمه مع أمر التكرارwhileوقمنا بوضع الشرط في أمر التكرارwhile
$i < $num
هذا يعني إذا كان قيمة العدادiاصغر من قيمة المتغيرnumالمتوجد بداخله جميع المعلومات فاستمر بطباعة التالي
وهي هذه السطور$sitename=mysql_result($result,$i,"sitename");$add_date=mysql_result($result,$i,"add_date");$email=mysql_result($result,$i,"email");$siteurl=mysql_result($result,$i,"site_url");$description=mysql_result($result,$i,"description");$id=mysql_result($result,$i,"id");?><table border="0" cellspacing="0" cellpadding="0"><tr><td width="100%"><b>SiteName :</b><a href='<?echo$siteurl;?>'><i><?echo$sitename;?></i></a><p><b>Date Add :</b> <i><?echo$add_date;?></i></p><p><b>description :</b><?echo$description;?></p><p><b>URL :</b><i><?echo$siteurl;?></i></p><p><b>Email :</b><i> <a href="mailto:<?echo;?>"><?echo;?></a></i> </p></td></tr></table><a href='edit.php?id=<?echo$id;?>'><b><b>[Edit This Site]</b></b></a><hr color="#000080"><?++$i;}
هنا قمنا بالكثير في أمر التكرارWHILEفسوف يطبع جميع القيم الموجودة في الجدول كما رمزت إليها في هذا السطر
$sitename=mysql_result($result,$i,"sitename");
قمنا في هذا السطر والسطور الخمسة التي تليه بتعريف العديد من المتغيرات وقمنا بتخزين قيم المعلومات بداخله باستخدام الدالةmysql_resultمسندين إليه المتغيراتresultوiو الحقل الذي نريد إخراج القيمة منه
واستخدمنا في هذا السطر الحقلsitename
كما استخدمنا كودhtmlلكي ننسق ونرتب شكل ظهور المعلومات
وفي آخر سطر قبل أن ننهي عملية التكرارwhileبالقوس { جعلنا قيمة العدادiتزيد بمقدار واحد مع كل لفة أو بمعنى طباعة قيم من قاعدة البيانات لكي يتم توقفها أرجو أن تنتبه لهذه الأمور الصغيرة لأنها من مشاكل البرمجة المشهورة
هنا انتهينا من ملفshow.phpيتبقى لنا ملفedit.phpوهو الملف الخاص بتعديل الموقع فربما يخطئ أحدهم في إدخال اسم أو عنوان موقعه فهنا يمكنك تعديلها حتى بعد تخزينها في قاعدة البيانات
هذا آخر ملف سوف اشرحه اليوم من ضمن مشروع دليل المواقع وربما اشرح عملية الحذف والبحث في وقت آخر
فقط ادعوا لي بالستر والهداية والوقت الكافي
سوف أضع كودedit.phpكاملاً كسابقيه
<html><head><style type="text/css">body {font-family:verdana,verdana; font-size:10pt}TD {font-family:verdana,verdana; font-size:10pt}TH {font-size:10pt; color:white; font-weight:bold; font-family:verdana,verdana}A {color:navy; text-decoration:underline}A:hover {color:red}A:visit {color:navy}#mySelect {font-family:verdana,arial; font-size:9pt}</style></head><titel><center><b>Edit Site</b></center><br><center><a href='add.php'><b>Add Your Site </b></a> |<a href='show.php'><b>View Edit database</b></center></a> <hr color="#000080"></titel><body><table border=0 cellpadding=4 cellspacing=0 width=600><?echo"<form method='post' action='$PHP_SELF'>";?><table border="1" width="100%" bordercolor="#000080" cellspacing="1" cellpadding><tr><td width="100%"><p align="center">Edit The Info </td><?include("config.php");mysql_pconnect($dbhost,$dbuname,$dbpw);@mysql_select_db("$dbname") or die ("Unable to select database");$query1="select * from dalal where id = '$id'";$result1=mysql_db_query('links',$query1);while($row=mysql_fetch_object($result1)) {echo"<td align=middle>SiteNmae<br><input type=text name='name' value='$row->sitename'></td>";echo"<td align=middle>Add Date<br><input type=text name='add_date' value='$row->add_date'></td>";echo"<td align=middle>Email<br><input type=text name='email' value='$row->email'></td>";echo"<td align=middle>SiteUrl<br><input type=text name='siteurl' value='$row->site_url'></td></tr>";echo"<td align=middle>Description<br><input type=text name='desc' value='$row->description'></td></tr>";$id=$row->id;}echo"</table><p>";echo"<br><input type=hidden name='id' value='$id'>";?><input type=submit name="update" value="Edit The Info"></form></tr></table><?if ($update) {if($name==""||$add_date==""||==""||$siteurl==""||$desc=="") {die("<b>You left one or more fields blank.</b>");}$query2="update dalal set sitename='$name', add_date='$add_date', email='$email', site_url='$siteurl', description='$desc'where id='$id'";mysql_db_query('links',$query2);echo"<b>Your record has been updated</b></p>";}mysql_close();?></body></html>
هنا سوف يسهل علي شرح هذا الملف أكثر من سابقيه لأنه يكرر ما يفعله إخوانه لكن مع بعض التجديدات التي لا تذكر فالجديد هنا وفي هذا السطر$query1="select * from dalal where id = '$id'";
هنا تلاحظ عرفنا متغير يدعىquery1وقمنا بتخزين ناتج الاستعلام بداخله فهذا ليس بجديد الجديد ما يوجد في الاستعلام فقد استخدمناwhereوهي تعني بالترجمة إلي العربية "بحيث" وتعني في البرمجة وخاصةً مع أوامرsql"بشرط" أي هنا اشترطنا في استعلامنا أن تكون قيمة المتغيرidمساوية لنفس القيمة الموجودة في الجدول وهيidوربما هنا يسعني أن أوضح أكثر ما هوidولماذا عرفته وجعلتهprimary key
هنا إذا ضغط أحد الذين أضافوا مواقعهم بعد أن أخطأ في إضافة موقعه عليeditفسوف يعتمد علي الرقم المخزن فيidوهو كما سبق وأن عرفتها في قاعدة البيانات عدد صحيح ويزداد تلقائياً فلو كان لدينا مثلاً في قاعدة البيانات أربعة مواقع فلن يجري التعرف علي الأربعة مواقع ومعلوماتهم إلا عن طريقidلأن كل موقع منهم رقم بمعنى الأول منهم 1 والأخير 4 أرجو أنك فهمته وأرجو أن تحاول تشغيل السكربت لكي تفهمه أكثر وأكثر
بعد ذلك يأتي هذا السطر$result1=mysql_db_query('links',$query1);
هنا أيضاً عرفنا المتغيرresultوخزنا بداخله قيمة استعلام الدالة
mysql_db_queryوأسندنا إليها اسم قاعدة البيانات والمتغيرquery
الدالةmysql_db_queryوهي مشابة في عملها معmysql_queryما عدا الفرق بينهم أنك تستطيع تحديد اسم قاعدة البيانات الذي تريد الاستعلام عنه واستعملتها هنا لكي يتم إعطائنا النتائج بوضوح أكثر
بعد هذا السطر يأتي أمر التكرارwhileمرة أخرى في هذا الملف
while($row=mysql_fetch_object($result1))
هنا قمنا بخلق المتغيرrowولا تنسى فيphpليس من الضروري تعريف المتغيرات قبل استخدامها وقمنا بمساواته ( وهو الشرط الخاص بأمر التكرارwhile) بالدالةmysql_fetch_objectمسندين إليه قيمة المتغيرresult1
الدالةmysql_fetch_objectوظيفته أو من ضمن الوظائف التي تقوم به أنها تقوم بانتزاع وعرض نتائج الاستعلام
فإذا تحقق شرط أمر التكرارwhileفستنفذ هذا الكود الطويل قليلاً
while($row = mysql_fetch_object($result1)) {echo "<td align=middle>SiteNmae<br><input type=text name='name' value='$row->sitename'></td>";echo "<td align=middle>Add Date<br><input type=text name='add_date' value='$row->add_date'></td>";echo "<td align=middle>Email<br><input type=text name='email' value='$row->email'></td>";echo "<td align=middle>SiteUrl<br><input type=text name='siteurl' value='$row->site_url'></td></tr>";echo "<td align=middle>Description<br><input type=text name='desc' value='$row->description'></td></tr>";$id = $row->id;}echo "</table><p>";echo "<br><input type=hidden name='id' value='$id'>";?><input type=submit name="update" value="Edit The Info"></form></tr></table><?if ($update) {if($name==""||$add_date==""||==""||$siteurl==""||$desc=="") {die("<b>You left one or more fields blank.</b>");}$query2="update dalal set sitename='$name', add_date='$add_date', email='$email', site_url='$siteurl', description='$desc'where id='$id'";mysql_db_query('links',$query2);echo"<b>Your record has been updated</b></p>";}mysql_close();?>
هنا قمنا بطباعة المعلومات والتحقق بواسطة شرطIFدعنا نأخذ عملية طباعة المعلومات :
echo"<td align=middle>SiteNmae<br><input type=text name='name' value='$row->sitename'></td>";echo"<td align=middle>Add Date<br><input type=text name='add_date' value='$row->add_date'></td>";echo"<td align=middle>Email<br><input type=text name='email' value='$row->email'></td>";echo"<td align=middle>SiteUrl<br><input type=text name='siteurl' value='$row->site_url'></td></tr>";echo"<td align=middle>Description<br><input type=text name='desc' value='$row->description'></td></tr>";$id=$row->id;
هنا في أول سطر قام بطباعة كودHTMLوبداخله أيضاً بعض الأشياء منPHPلا تخف فالمقصود هنا أنه قام بتخزين جميع ما يطبعه بداخل المتغير الخاص بلغةHTMLفهنا مثلاً
echo"<td align=middle>SiteNmae<br><input type=textname='name' value='$row->sitename'></td>";
قام بطباعة كودHTMLوهو عبارة عن حقل الإدخال (INPUT) من نوع (TEXT) وقام بترمز إلي الحقل الموجود بقاعدة البيانات من المتغيرrowوتخزينة في قيمة المتغير فيhtml (name)
والأكثر وضوحاً ما قمنا به في السطر السابق قمنا بوضع المتغيرrowثم يليه اسم الحقل في الجدول وهنا اسم الحقلsitename
أظن مع تشغيلك للسكربت سوف تتضح أكثر وأكثر وهذا الذي استخدمته مع الجميع
بعد ذلك قمت بطباعة أكوادhtmlوهي عبارة عن فورم للإدخال ويأتي بعده شرطifوهو هنا
<input type=submit name="update" value="Edit The Info"></form></tr></table><?if ($update) {if($name==""||$add_date==""||==""||$siteurl==""||$desc=="") {die("<b>You left one or more fields blank.</b>");}$query2="update dalal set sitename='$name', add_date='$add_date', email='$email', site_url='$siteurl', description='$desc'where id='$id'";mysql_db_query('links',$query2);echo"<b>Your record has been updated</b></p>";}mysql_close();?>
في الشرط نريد التأكد هل تم تعديل أحد البيانات أم لا وهو شبيه بالشرط الذي استخدمته مع ملفadd.phpبعده إذا كان هناك إدخال فسيقوم بعدة أوامر وأولها شرط أخرifيتأكد هل هناك من الحقول التي جعلت فارغة أم لا وهي هنا
if($name==""||$add_date==""||==""||$siteurl==""||$desc=="") {die("<b>You left one or more fields blank.</b>");}
إذا كان هناك حقول فارغة سوف يطبع له You left one or more fields blankأي أنك تركت حقل أو أكثر فارغ
بعد ذالك يأتي هذا$query2="update dalal set sitename='$name', add_date='$add_date', email='$email', site_url='$siteurl', description='$desc'where id='$id'";mysql_db_query('links',$query2);echo"<b>Your record has been updated</b></p>";}mysql_close();
قمنا هنا في أول سطر بتعريف المتغيرquery2بعد ذلك خزنا بداخله قيمة أمرSQLالتحديثupdate
أمرupdateيقوم بتحديث المعلومات في قواعد البيانات من تجديد وحذف
ويكتب هكذا
Update tablename Set (values الكلمات التي تبدأ بحروف كبيتل هي الثوابت بمعنى لا يتم تغييرها والتي تبدأ بحروف سمول مثلsitenameوvaluesفهي التي يتم تغييرها
كما وضحت في الكود السابق فقد قمت بمساوات المتغيرات
name,add_date,email,site_url,description
بما يقابلها من الحقول في الجدولdalalووضعت شرطwhere
أن يكون المتغير
$id=id
وفي السطر الذي يليه هذا قمت باستخدام الدالةmysql_db_query
مسنداً إليه اسم قاعدة البيانات والمتغير الذي خزن قيمة التحديث وهوquery2
لكي يتم تحديث قاعدة البيانات
وفي السطر الذي يليهما استعملت الدالةmysql_colseلكي يتم إغلاق الاتصال بقاعدة البيانات
وهو آخر سطر اليوم