السلام عليكم ورحمة الله
اخي aladawi , قاعدتك بسيطة ومثالية للشرح عليها
طبعا نسيت ذكر اسم القاعدة , ولكي لايطول الموضوع , ساضعها كمتغير , يمكنك تغييره في اي لحظة , كذلك اسم المستخدم وكلمة المرور ,
العمل سيتكون من 3 اجزاء للتبسيط :
1- ملف الاعدادات config.php : وهذا الملف سحتوي على المعلومات الرئيسية للموقع , بحيث نطلب استدعاء هذا الملف في جميع الملفات , وبهذا لن نضطر لكتابة المعلومات الموجودة
فيه في كل صفحة .
2- ملف form.html : وهو ملف يحتوي على فورم ادخال البيانات للبحث ( تعمدت وضعه في ملف مستقل للتبسيط , كما يمكنك ان تضع الكود الحاص بالفورم في اي مكان في موقعك دون
اي مشاكل لاحقا )
3- ملف info_id.php : وهو الملف الذي يحتوي على الاوامر الخاصة بجلب البيانات من قاعدة البيانات وعرضها
***********************
1- ملف config.php :
كود PHP:
<?php
$host="localhost" ;
$dbname="test" ;
$dbuser="";
$dbpass="" ;
?>
في هذا الملف عرّفنا اسم القاعدة , والمزود واسم المستخدم وكلمة المرور , بحيث اذا احتجنا هذه المعلومات في اي ملف كل ماعلينا هو استدعاء هذا الملف بواسطة include"config.php
";
طبعا يمكننا الاستغناء عن هذا الملف وذلك بنقل جميع البيانات التي به الى اعلى الملف info_id.php وحذف الاستدعاء include"config.php"; ولكن هذا هو الاسلوب الامثل في حالة تطوير
السكريبت
***********************
2- ملف form.html :
كود PHP:
<form method=post action=info_id.php>
<table>
<tr>
<td>الرقم</td>
<td><input type=text size=40 name=ID1></td>
</tr>
<tr>
<td><p><input type=submit name=send value="أرسل"></p></td>
</tr>
</form></table>
هذا عبارة عن كود HTML عادي , عبارة عن ادخال رقم الرقم لكي نجلب بياناته من القاعدة , وفضلت ابقاء الكود مستقلا , تسهيلا على من يقرأ الموضوع , ايضا لمن يريد ان يضع هذا الكود
في اي صفحة HTML اخرى , مثل جلة نيوك او صفحة اخرى في موقعه
لاحظ هنا اننا وضعنا action=info_id لكي ياخذ البيانات من هذا الفورم ويذهب بها لصفحة السكريبت الذي سنراجعه سوية بعد قليل , ايضا لاحظ ان اسم الحقل هنا name=ID1 وهو ماسنجلب معلوماته في سكريبت php التالي
***********************
3- ملف info_id.php :
كود PHP:
<?
include"config.php";
$ID1= $HTTP_POST_VARS['ID1'] ;
if (!$ID1){
echo"لم تقم بكتابة الرقم";
}
else
{
$link=mysql_connect($host,$dbuser,$dbpass)
or die("connection Failed");
mysql_select_db($dbname)
or die("cann't connect to db");
$query="SELECT * FROM aladawiads WHERE ID1=$ID1";
$result=mysql_query($query)
or die(mysql_error());
if ($row=mysql_fetch_object($result))
{
echo" الرقم : $row->ID1";
echo"<br>الاسم : $row->name";
echo"<br>الموقع : $row->site";
}
else
{
echo"الرقم المطلوب غير صحيح";
}
}
?>
الكود بسيط جدا جدا , و سأشرح كل مافيه ببساطة :
* طلبنا استدعاء ملف config.php وذلك بكتابة : include"config.php"; لنأخذ منه البيانات المطلوبة مثل اسم القاعدة وكلمة المرور واسم المستخدم ( المثال هنا بسيط , ولكن لو كان
برنامجا كبيرا لكان حجم البيانات كبير ومن الصعب كتابة المعلومات مرة اخرى في كل الصفحات )
* الان نخير البرنامج ان يأخذ الحقل ID1 ويعتبره هو الرقم الذي سنتعامل معه وذلك بكتابة $ID1= $HTTP_POST_VARS['ID1'] ;
* بعد ذلك عملنا جملة شرطية , حيث اذا قام الزائر بالضغط على زر الارسال بدون ادخال اي بيانات , تظهر له رسالة خطأ وذلك بالشرط التالي : if (!$ID1){
echo"لم تقم بكتابة الرقم";
}
else
{ , والتي تعني اذا كان الحقل فارغا if(!$ID1) اظهر له رسالة الخطأ , والا ( يعني اذا لم يكن الحقل فارغا انتقل للخطوة التالية )
*سنجري الان الاتصال بالقاعدة $link=mysql_connect($host,$dbuser,$dbpass)
or die("connection Failed"); ( هنا عرّفنا ان link هو الاتصال بالقاعدة واعطيناه المعلومات التي يريدها وهي $host اي المستضيف و $dbuser اسم المستخدم و $dbpass وهي كلمة مرور
القاعدة ( جميع هذه المعلومات جلبناها من ملف config.php الذي استدعيناه في اول السكريبت. طبعا اخبرنا الاتصال انه لن لم يتمكن من الاتصال بالقاعدة ان يظهر لنا رسالة خطا وهي
connection Failed ولذلك كتبنا or die ( تعني ان لم تتمكن من الاتصال )
* بعد ان اجرينا الاتصال بالقاعدة , سنختار القاعدة التي سنعمل عليها mysql_select_db($dbname)
or die("cann't connect to db"); ولذلك عرّفنا اسم القاعدة على انها $dbname ومعلوماتها موجودة في ملف config.php , نفس حال الاتصال بالقاعدة , ان لم يتمكن من الاتصال سيظهر
لنا رسالة خطا cann't connect to db وهي تعني انه لم يتمكن من اختيار القاعدة المطلوبة ( يمكن كتابة اي رسالة تريدها )
* الان بعد نجاح الاتصال واختيار القاعدة , سنقوم بتعريف طلبنا وهو $query="SELECT * FROM aladawiads WHERE ID1=$ID1"; والتي تعني بالعربي ( اختر جميع الأعمدة من الجدول
aladawiads والذي رقم الـ ID1 هو الرقم المدخل في الفورم ) ( * هنا تعني كل الاعمدة ) ( SELECT تعني اختر )
* الان نخبر السكريبت ان النتيجة المرغوبة هي عبارة عن الطلب query ولذلك كتبنا : $result=mysql_query($query)
or die(mysql_error()); ( ايضا هنا ذكرنا انه لن لم تتمكن من احضار النتيجة اكتب لي رسالة الخطأ mysql_error
* الان سنعرض النتيجة ولذلك كتبنا : if ($row=mysql_fetch_object($result))
{
echo" الرقم : $row->ID1";
echo"<br>الاسم : $row->name";
echo"<br>الموقع : $row->site";
( يمكن استخدام مصفوفة array ولكن للتسهيل استخدمت object حيث لايوجد اختلاف كبير بينهما , ولكن object اسهل لي في التعامل
* في الاخير اخبرناه انه ان لم يجد الرقم المطلوب ان يظهر لنا رسالة تفيدنا بذلك
والله ولي التوفيق
تحياتي