انشاء سكربت php لاإدخال البيانات الى قاعدة بيانات mysql


في هذا الشرح سأقوم ببرمجة سكربت ادخال الى قاعدة بيانات mysql باستخدام الـphp والـhtml
ليكون سكربت دليل الهاتف للمحلات التجاريه او سكربت اسماء الموظفين والمشتركين او اي فكرة تود العمل عليها، فالقائمة تطول ،،،،،

هنا قررت كبداية انشاء سكربت دليل الهاتف للمحلات التجارية ولكن قبل ذلك يجب علينا تحليل السكربت قبل البدء كخطوة اولى لاتقان العمل على السكربت فمن فكرة السكربت سنحتاج الى صفحة ادخال البيانات، وصفحة تاكيد نجاح الارسال، واخيرا صفحة لاستعراض وحذف المتاجر  ،
قبل البدء قم بالتوجه الى التدوينة متطلبات انشاء السكربت

المرحلة الاولى انشاء قاعدة بيانات 


 وسنسميها بـ (Directory_of_ shops) بمعنى دليل التسوق بداخلها جدول بأسم (STORES) بمعنى المحلات التجاريه يظم الصفوف التالية :

  1. رقم المعرف التلقائي  (ID)
  2. اسم المحل التجاري و سنضع اسم الصف في الجدول (STORE_NAME)
  3. رقم الهاتف وسنضع اسم الصف في الجدول (PHONE_NUMBER)
  4. معلومات اضافية عن المتجر وسنضع اسم الصف في الجدول ( INFO)
لمعرفة طريقة انشاء قاعدة بيانات او جدول قم بزيارة الشروحات السابقة  بالنقر على  : ( انشاء قاعدة بيانات MYSQL - انشاء جدول بداخل قاعدة بيانات MYSQL

بعد ادخال الصفوف في جدول البيانات قمت بالتالي


  • تحديد الصف ID كمفتاح اساسي بالاضافة الى AUTO_INCREMENT اي يتم تعبئته تلقائيا 
  • قمت بتحديد انواع الصفوف TYPE
بعد انشاء القاعدة والجدول سأقوم بإنشاء مجلد بأسم STORES "والتسميه هنا اختياريه " حتى اضيف ملفات الموقع بداخله على مسار السيرفر المحلي التالي:

C:\xampp\htdocs\stores

المرحلة الثانية انشاء نموذج ادخال بيانات بلغة الويب html


  • بعد الدخول الى المسار اقوم بإنشاء ملف نصي جديد notepad 
  • بعد فتح الملف اقوم بتصميم نموذج ادخال البيانات بلغة html يحتوي على الحقول التالية : 

  1. ادخال اسم المحل التجاري 
  2. ادخال رقم جوال المحل التجاري 
  3. ادخال معلومات اضافية عن المحل التجاري 
  4. زر ارسال البيانات 


مثال على الكود : 


<html>
<head>

<link type="text/css" rel="stylesheet" href="mystylefor.css">
</head>

<center>



<h2>قم بادراج محل تجاري جديد</h2>
<body><form action="insert.php" method="POST">

<table>
<tr>
<td>أسم المحل التجاري:</td><td><input type="text" name="name" ></td>
</tr>
<tr>
<td>رقم الهاتف:</td><td><input type="text" name="phone"></td>
</tr>

<td>معلومات اكثر:</td><td><textarea name="info"></textarea></td>
</tr>
</div>



<td></td><td><input type="submit"value="إضـافة" ></td>
</table>


</body></form></center></html>

الشرح :

  • استخدمت اكواد تنسيق النصوص <H> للعناوين والرقم الذي يليه لتحديد حجم النص حيث ان اكبر حجم يبدأ من 1 الى اصغر حجم ينتهي بـ 6 
<h2>قم بادراج محل تجاري جديد</h2>

  • قمت بفتح كود ادراج النماذج <form> وقمت بتحديد وجهة ارسال البيانات الى الصفحة التالية insert.php باستخدام الكود action= وحددت اسلوب النموذج بـ POST باستخدام الكود method
<form action="insert.php" method="POST">   هنا ستتم كتابة حقول الادخال   </form>


  • بداخل كود النموذج قمت بإدراج جدول باستخدام الكود <table> لضبط تنسيق الحقول التي سأضيفها بداخله وقمت بانشاء صف الجدول باستخدام الكود <tr> حيث انني احتاج الى صف لكل حقل ثم بداخل كل صف قمت بإنشاء خليتين خلية لعنوان الحقل وخلية اخرى لكود حقل الادخال باستخدام الكود <td>

<table><tr><td>عنوان الحقل</td><td>هنا كود حقل الادخال</td>

  • بداخل الخليتين السابقتين اولا اقوم بكتابة العنوان الذي سيظهر بجوال الحقل 
<td>
أسم المحل التجاري:
</td>
  • ثانيا اضافة كود الحقل باستخدام الكود <input> ثم قمت بتحديد نوع الحقل type="text" نصي ثم حددت اسم الحقل بأستخدام name = "اسم الحقل" ويرجى ملاحظة ان هذا الاخير مهم جدا لربطه لاحقا بقاعدة البيانات ثم اخيرا قمت باغلاق وسمي الخلية والصف وقمت بتكرير هذه العملية لحقول الادخال الاخرى 
<td><input type="text" name="name" ></td>
</tr>


  • ثالثا اضافة كود زر ارسال البيانات وهو نفس الطريقة السابقة ولكن احدد نوع الادخال الى type="submit" واضيف على ذلك قيمة الحقل أي الاسم الذي سيظهر بداخل الزر بأستخدام الكود value = "اضافة" وهنا لا احتاج الى تسمية الحقل باستخدام كود التسمية name = "" ويرجى ملاحظة انه عند النقر على الزر سيتم توجيهنا مباشرة الى الصفحة التي حددناها مسبقا في بداية كود النموذج "insert.php"
<td></td><td><input type="submit"value="إضـافة" ></td>

  • ختام هذه المرحلة اقوم بحفظ الملف النصي واقوم بتسميته insrt.html  واقوم بتحديد نوع الحفظ الى all files واقوم بتحديد الترميز " utf8" حتى يظهر النتائج بالعربية بدون اخطاء


المرحلة الثالثة الاتصال بقاعدة البيانات 

قمت مسبقا بشرح اكواد الاتصال بقاعدة البيانات من خلال ملف php  للشرح التفصيلي انقر هنا

  • قمت بانشاء ملف نصي بنفس الطريقة السابقة وقمت بكتابة كود الاتصال التالي بداخله وقمت بكتابة اسم قاعدة البيانات directory_of_ shops بداخل الكود mysql_select_db("اسم قاعدة البيانات")
<?php
$con = mysql_connect("localhost","root","");
mysql_select_db("directory_of_ shops") OR die('db not connected' .mysql_error());
if (!$con)
{
die('Could not connect: ' .myaql_error());
}

  • اخيرا حفظت الملف باسم db.php وعند دخولى على مسار القاعده من المتصفح http://localhost/stores/db.php الاحظ صفحة فارغه وهذا يعني ان الاتصال ناجح✅ ولكن في حال حوث خطأ ❌ستظهر لي الرساله التالية حيث ان الخطأ في اسم قاعدة البينات تعمدت كتابة اسم القاعدة بطريقة خاطئة لتظهر رسالة الخطأ في حال لم تظهر لك اي رسالة فأنت في المسار الصحيح انتقل مباشرة الى المرحلة الرابعة ،، 


المرحلة الرابعة والاخيرة ارسال البيانات المدخلة الى قاعدة البيانات

في هذه المرحلة سأقوم برط صفحة النموذج الذي قمت بتصميمه في المرحلة الثانية بقاعدة البيانات ولاتمام هذه العملية سأحتاج الى وسيط بين الموذج وبين قاعدة البيانات هو ملف php بواسطة هذا الملف سأقوم بتضمين ملف الاتصال db.php وربط حقول ادخال البيانات مع ما يقابلها من حقول في قاعدة البيانات لتفهمها القاعدة   ،، سيكون الملف الوسيط هذا باسم insert.php دعوني اشرح ذلك بالتفصيل لتتضح الصورة 

  • اولا انشىء ملف نصي جديد وقم بكتابة الكود التالي بداخله 
<?php
require("db.php");

$store_name=$_POST['name'];
$phone_number=$_POST['phone'];
$info=$_POST['info'];
$query="INSERT INTO stores VALUE('','$store_name','$phone_number','$info')";
$result=@mysql_query($query);
$lastItemID = mysql_insert_id();
if($result)
{
echo"تم الادراج بنجاح بواسطة رقم المعرف الخاص بالمتجر 
ID: ".$lastItemID;

}

else{echo"لم يتم التسجيل";}

?>


  • ثانيا قمت باستدعاء ملف الاتصال بالقاعدة بواسطة كود الامر require
  • ثالثا قمت بربط حقول الادخال التي انشأتها في ملف النموذج insert. html  مع قاعدة البيانات بواسطة الدالة post_$ 
هنا قمت بشرح تعريف الحقل " اسم المحل التجاري " الذي رمزت له ب"name" في المرحلة الثانية بالحقل المقابل له في قاعدة البيانات الذي اسميناه في المرحلة الاولى بـ store_name وللتنويه اذا قمنا باستدعاء اي حقل في قاعدة البيانات نقوم بكتابة الرمز $ قبله 


$store_name=$_POST['name'];

إيضاح

  • اسم الحقل في قاعدة البيانات 
  • دالة الربط وهي كذلك : اسلوب النموذج في الملف insert.html
  • اسم الحقل " اسم المحل التجاري " الذي رمزنا له ب"name" في الملف insert.html


  • رابعا قمت بكتابة  الامر  بادراج البيانات التي تم تعريفها الى قاعدة البيانات بإستخدام الامر :
$query="INSERT INTO stores VALUE('','$store_name','$phone_number','$info')";

إيضاح : 

قبل كتابة الامر استخدمت الدالة $query ويتبعها نص الامر INSERT INTO  ثم اسم الجدول في قاعدة البيانات " stores" ثم قمت بتحديد القيم باستخدام الامر value  ثم بين قوسين ( اسماء القيم "الحقول ") ونلاحظ ان اول قيمة حددتها فارغة "" وهي للمعرف ID الذي اضفت له في المرحلة الاولى الخاصية AUTO_INCREMENT اي يتم تعبئته تلقائيا لذلك لست بحاجة هنا الى كتابته اما فيما يخص القيم الاخرى حددتها بأسمائها $store_name','$phone_number','$info
على سبيل المثال store_name سيتم تخزين بيانات "اسم المحل التجاري" بداخله مع مراعاة الفصل بين القيم "" ب الفاصلة , ثم في نهاية الكود نقوم بإغلاقه بالفاصلة ;

  • خامسا سيتم ارسال البيانات الى القاعدة بواسطة كود "النتائج" 
$result=@mysql_query($query);

  • سادسا عند ارسال البيانات طلبت من قاعدة البيانات اخباري عن معرف ارسال البيانات "معرف اخر قيم تم ارسالها لقاعدة البيانات فقط " 
$lastItemID = mysql_insert_id();

  • سابعا طلبت من قاعدة البيانات اخباري برسالة اذا تم ارسال البيانات بنجاح بإستخدام الدالة الشرطية {}() if
   بداخل اقواس {} الدالة الشرطية ساقوم بكتابة الرسائل بإستخدام امر طباعة الرسائل echo " " ; مرفقا برقم المعرف Id الذي قمت بتعريفه سابقا .$lastItemID;

echo"تم الادراج بنجاح بواسطة رقم المعرف الخاص بالمتجر 
ID: ".$lastItemID;


  • ثامنا طلبت منه طباعة رسالة في حالة وجود خطأ في الارسال بإستخدام الدالة else{}وبداخلها امر طباعة الرسائل echo

else{echo"لم يتم التسجيل";}

  • تاسعا  اقوم بحفظ الملف باسم insert.php 

  • عاشرا واخيرا اقوم بتجربة السكربت بالدخول من المتصفح على المسار التالي
http://localhost/stores/insert.html

  
تم ارسال النتائج بنجاح الى قاعدة البيانات حيث ان الجزء المضلل في الصورة السابقة هو رقم المعرف lastitemid.
المسجل في قاعدة البيانات باسم ID
ندخل الى مسار قاعدة البيانات من خلال phpmyadmin لمشاهدة المدخلات في قاعدة البيانات 
http://localhost/phpmyadmin/

في الدرس القادم سأقوم بشرح اخراج البيانات من قاعدة البيانات الى ملف php كونوا قريبين :) ولا تترددوا بطرح اي استفسار في حال واجهتكم اي اشكالية .

تعليقات

  1. السلام عليكم ممكن عندي سوال إذا كان عندي 2formونبي كل مانعبي formيخزن محتواها في قاعدة البيانات ...لكن جربت نربطها بالقاعدة والنتيجة كانت انه ايخزن لي كل محتوي form في سطر في قاعدة البيانات ..واني نبي ايخزن في سطر واحد محتويات form الاول والتاني ..ياريت اتساعدني في حل مشكلتي

    ردحذف

إرسال تعليق

شركنا الاراء ،،

المشاركات الشائعة من هذه المدونة

طريقة حساب الغياب المسموح به قبل الحرمان من المقرر

تجربتي في استخراج بطاقة احوال بدل فاقد