شرحنا في درس سابق كيفية تثبيت سيرفر محلي لملفات PHP. وفي هذا الدرس تحتاج إلى قاعدة بيانات mysql ويفضل استخدام الملحقة في السيرفر PHPmyAdmin كما تحتاج لسيرفر apache يقوم على تشغيل ملفات php وأيضاً محرر نصوص بسيط وأنا شخصياً استخدم Sublime text أو يمكنك استخدام محرر النصوص المفضّل لديك.
سنعمل في هذا الدرس على إنشاء ملف php ثم نقوم بالإتصال مع قاعدة بيانات قمنا بإنشائها مسبقاً ثم سنقوم بجلب المعلومات من قاعدة البيانات وعرضها في صفحة الويب باستخدام وسوم html حيث ستكون جاهزة للتنسيق.
الخطوة 0 : إنشاء قاعدة بيانات
هذه الخطوة سنشرح بها رؤوس أقلام فقط لأنها كونك تريد إنشاء اتصال مع قاعدة البيانات فهذا حتماً يعني أنك على دراية تامة باستخدام لغة PHP وأيضاً قواعد البيانات MySQL. وإن لم تكن على خبرة واسعة في هذه اللغات يمكنك الإطلاع على دورة PHP مع MySQL وأيضاً يمكنك الإطلاع على مصادر لتلك اللغات موقع PHP وموقع MySQL .
لنبدأ بهذه الخطوة قم بالخطوات التالية:
- افتح السيرفر (اذا كنت تعمل على السيرفر المحلي) ثم افتح برنامج PHPmyAdmin.
- في قسم قواعد البيانات قم بكتابة اسم قاعدة البيانات الجديد ثم اضغط على إنشاء جديد.
- ادخل إلى قاعد البيانات ثم قم بإنشاء جدول.
- قم بإنشاء أعمدة للجدول مثل id ثم عمود للإسم وعمود للكنية وعمود للعمر وعمود للدولة ..إلخ
الخطوة 1 : الإتصال بقاعدة البيانات
- تحتاج لتبدأ بهذه الخطوة اسم المستخدم وكلمة المرور وعنوان السيرفر (غالباً مايكون
localhost أو 127.0.0.1). - قم بإنشاء ملف وسميه connect.php أو قم بتسميته كما تريد ثم ضع بداية ونهاية لكود php قبل وسوم html.
- ضمن وسم php قم بإنشاء متغير وليكن
$db
وارفق معه الدالّةmysql_connect()
مع إرفاق المتغيرات ضمن القوسين وهي قيم معلومات قاعدة البيانات بالترتيب عنوان السيرفر ثم اسم المستخدم ثم كلمة المرور. - لاتنسى استخدام الدوال
die()
وmysql_error()
لإظهار رسالة الخطأ في حال حدوث خطأ عند الاتصال. - احفظ الملف ثم قم بفتح الملف عبر المتصفح والنتيجة ملف فارغ باستثناء عنوان الصفحة مالم يكن هناك خطأ في معلومات عنوان السيرفر أو اسم المستخدم أو كلمة المرور فعندها ستظهر رسالة خطأ موضحّة نوع الخطأ لإصلاحه.
شاهد المثال التالي
<?php $db = mysql_connect("localhost","username","password"); if (!$db) { die("Database connection failed miserably: " . mysql_error()); } ?> <html> <head> <title>الخطوة الأولى</title> </head> <body> </body> </html>
يستخدم المتغير
$db
في خطوات لاحقة لإتمام عملية الإتصال.الخطوة 2 : إختيار لغة البيانات التي تريد استخدامها
هذه الخطوة بسيطة جداً فبعد إنشاء قاعدة بيانات من خلال phpmyadmin كما فعلنا سابقاً في الخطوة 0 سنقوم الآن باستخدام اسم قاعدة البيانات مع الدالّة
mysql_select_db()
كما في المثال التالي:<?php //Step1 $db = mysql_connect("localhost","username","password"); if (!$db) { die("Database connection failed miserably: " . mysql_error()); } //Step2 $db_select = mysql_select_db("databasename",$db); if (!$db_select) { die("Database selection also failed miserably: " . mysql_error()); } ?> <html> <head> <title>الخطوة الثانية</title> </head> <body> </body> </html>
أيضاً في هذه الخطوة ستشاهد صفحة بيضاء فارغة لأننا لم نجلب أي شيء من قاعدة البيانات بعد. باستثناء اذا كان هناك مشكلة في شيفرة php البرمجية عندها ستظهر رسالة خطأ.
الخطوة 3 : إنجاز طلب قاعدة البيانات
في هذه الخطوة سنعمل داخل الوسم <body> حيث سنقوم بجلب جميع البيانات أو الصفوف الموجودة في الجدول الموجودة ضمن قاعدة البيانات التي سميناها واستخدمناها في الخطوة السابقة لذلك سنحتاج في هذه الخطوة إلى اسم الجدول المراد جلب البيانات منه كما يجب ألا ننسى عند استخدام شيفرة php استخدام بداية ونهاية وسم php. كما سنستخدم أيضاً المتغير $result والذي سيقوم بجلب جميع البيانات من الجدول.
لاحظ تكملة المثال
<?php //Step1 $db = mysql_connect("localhost","username","password"); if (!$db) { die("Database connection failed miserably: " . mysql_error()); } //Step2 $db_select = mysql_select_db("databasename",$db); if (!$db_select) { die("Database selection also failed miserably: " . mysql_error()); } ?> <html> <head> <title>الخطوة الثالثة</title> </head> <body> <?php //Step3 $result = mysql_query("SELECT * FROM mytable", $db); if (!$result) { die("Database query failed: " . mysql_error()); } ?> </body> </html>
أيضاً في هذه الخطوة ستشاهد صفحة بيضاء فارغة لأننا لم نجلب أي شيء من قاعدة البيانات بعد. باستثناء اذا كان هناك مشكلة في شيفرة php البرمجية عندها ستظهر رسالة خطأ.
الخظوة 4 : إظهار البيانات في الصفحة
في هذه الخطوة سنقوم بجلب النتيجة كمصفوفة وعرضها بصف باستخدم loop طبعاً عند جلب النتيجة سأقوم بتخطي الصف 0 حيث أنه عبارة عن id في جدول قاعدة البيانات ولكن سأقوم بنشر المعلومات الموجودة في باقي الأعمدة في جدول قاعدة البيانات. ولعرض البيانات يمكن استخدام أسماء الحقول في جدول قاعدة البيانات عوضاً عن الأرقام وذلك ضمن "إشارات الاقتباس".
تابع المثال
<?php //Step1 $db = mysql_connect("localhost","username","password"); if (!$db) { die("Database connection failed miserably: " . mysql_error()); } //Step2 $db_select = mysql_select_db("databasename",$db); if (!$db_select) { die("Database selection also failed miserably: " . mysql_error()); } ?> <html> <head> <title>الخطوة الرابعة</title> </head> <body> <?php //Step3 $result = mysql_query("SELECT * FROM mytable", $db); if (!$result) { die("Database query failed: " . mysql_error()); } //Step4 while ($row = mysql_fetch_array($result)) { echo $row[1]." ".$row[2]."<br />"; } ?> </body> </html>
في هذه العملية ستشاهد جميع بيانات جدول قاعدة البيانات على صفحة الويب
الخظوة 5 : إغلاق الإتصال
عند إنشاء اتصال مع قاغدة البيانات يتوجب إغلاق الإتصال تجنباً لحصول أي مشاكل برمجية نقوم بإغلاق الاتصال بعد وسم إغلاق صفحة html وهو </html> .
<?php //Step1 $db = mysql_connect("localhost","username","password"); if (!$db) { die("Database connection failed miserably: " . mysql_error()); } //Step2 $db_select = mysql_select_db("databasename",$db); if (!$db_select) { die("Database selection also failed miserably: " . mysql_error()); } ?> <html> <head> <title>الخطوة الخامسة</title> </head> <body> <?php //Step3 $result = mysql_query("SELECT * FROM mytable", $db); if (!$result) { die("Database query failed: " . mysql_error()); } //Step4 while ($row = mysql_fetch_array($result)) { echo $row[1]." ".$row[2]."<br />"; } ?> </body> </html> <?php //Step5 mysql_close($db); ?>
في حال لديك اي سؤال يمكنك طرحه في مكان التعليقات
عندما اقوم باضافة بيانات باللغة العربية تظهر بالداتا بيس على شكل رموز كيف ممكن اخليهم يظهرو بالعربي
ردحذفعلما اني حاط ال <meta charset="utf-8
ارجو الرد
غير نوع العامود في قاعدة البيانات الي نوع in var char
حذفلازم تغير الترميز الي utf8
حذفتظهر لي هذه الرساله عند الاتصال بقاعدة البيانات
ردحذفDeprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /home/u572880131/public_html/config.php on line 8
Warning: mysql_connect(): Can't connect to MySQL server on '31.170.166.59' (110 "Connection timed out") in /home/u572880131/public_html/config.php on line 8
cannot connect to server
طبعا الموقع استضافه مجانية
الاستضافة المجانية فيها مشاكل دوماً. لكن يقول لك أن تستخدم mysqli بدلاً من mysql
حذفشرح مميز
ردحذفلكن لو من لوحة تحكم مثل ما يستخدمه موقع الاستضافة ipage تقريبا اسمه vDeck
كيف اقوم بتعديل كلمة مرور مستخدم او اضافة مستخدمة لقاعدة البيانات من خلال cpanel
ردحذفمن خلال الدخول على قسم قاعدة البيانات في لوحة التحكم والضغط على المستخدم وتغيير كلمة المرور.
حذفاسلام عليكم
ردحذفهل من الممكن ربط قاعدة بيانات مركبه في جهاز كمبيوتر Offline وربط في سرفر خارجي عبر الانترنت وربط اكثر من جهاز علي السرفر الخارجي وعمل مزامنه بكل جديد في السرفر الخارجي والاجهزة المربوطة عليه ؟
ارجو الرد عبر رسالة للايمايل mhmedsrab@gmail.com او هنا
كيف يمكن ربط قاعده البيانات
ردحذفهذا الدرس حول ربط قاعدة البيانات مع PHP
حذفممكن الدعليا عندي استفسار
حذفالسلام عليكم
ردحذفبيانات الجدول بتظهر لي اعمدة الكلام فقط ولا تظهر اعمدة الارقام ما الحل
يرجى ذكر التفاصيل أكثر أو ارفاق صورة حول الكود الذي تستخدمه
حذفكيف اربط قاعده بيانات الاسم والاميل حيث اذا صح يعبر للصفحة الثانيه أما إذا خطا يبقى في الصفحه الاسم . يعني شرط لل button
ردحذفيرجى ذكر التفاصيل أكثر أو ارفاق صورة حول الكود الذي تستخدمه
حذفتظهر لي رسالة الخطأ التالي:
ردحذفThe requested URL / was not found on this server
apache php 7.2 18 server at localhost port 80
لديك مشكلة في السيرفر أخي
حذفمحتاج مثال عملى جاهز اتدرب عليه
ردحذفtamerprject@gmail.com
عند تفقد الموقع يكتب لي أنه هنالك كود غير معرف
ردحذفأخي الأفضل دائماً إرفاق صورة عند طرح المشكلة هنا
حذفانا عندي قاعدة بيانات جاهزة وموقع جاهز بس عايز اربطهم ببعض كل ما اعمل عملية استيراد قاعدة البيانات اللي معايا مش بترضي تفتح
ردحذفقمت بانشاء قاعدة بيانات وتح تحديد العمود الاول باسم wid وتحديده انه هو primarykey والنوع int لكن عند ادخال البيانات يظهر لي خطا أن الحقل الاول فارغ ، مع العلم بأنه لابد من تركه فارغا لتقوم قاعدة البيانات بالملئ التلقائي له حسب الشرح اللذي شاهدته
ردحذفأخي في الأمثلة السابقة يتم جلب بيانات موجودة مسبقا في قاعدة البيانات وليس إدخال البيانات.
حذفعليك إدخال البيانات بشكل يدوي في قاعدة البيانات و ان كان هذا ما تفعله حقا عليك مراجعة الخطأ الناتج من قاعدة البيانات و ليس الخطأ بالكود
سلامظهرت لي هده الرسالة
ردحذفDeprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\Program Files (x86)\EasyPHP-Devserver-17\eds-www\ex1.php on line 4
Warning: mysql_connect(): php_network_getaddresses: getaddrinfo failed: H�te inconnu. in C:\Program Files (x86)\EasyPHP-Devserver-17\eds-www\ex1.php on line 4
Warning: mysql_connect(): php_network_getaddresses: getaddrinfo failed: H�te inconnu. in C:\Program Files (x86)\EasyPHP-Devserver-17\eds-www\ex1.php on line 4
Database connection failed miserably: php_network_getaddresses: getaddrinfo failed: H�te inconnu.
لديك خطأ في السطر 4 ولايمكنني معرفة السبب بدون مشاهدة الكود.
حذفوالمشكلة من الاتصال mysql_connect()
حذفأزال أحد مشرفي المدونة هذا التعليق.
ردحذفالسلام عليكم
ردحذفاغلب المبرمجين يقومون بفتح الاتصال بقاعدة البيانات وغلقة في نفس اللحظة ما الغاية من ذلك ؟
وما هي مشكلة فتح الاتصال بقاعدة البيانات عند تشغيل البرنامج وغاق الاتصال عند الخروج من البرنامج ؟
لتفادي ظهور أخطاء في الاتصال بقاعدة البيانات.
حذفحيث أنه من المرجح ظهور خطأ في الاتصال بقاعدة البيانات في المرة الأولى التي يتم فيها الاتصال و هذا يعتمد على إعدادات خادم php أو إعدادات خادم الاستضافة.
حيث أنه يمكن ضبط طريقة تشغيل و ايقاف بعض مزايا php لتوفير طاقة و جهد معالج الخادم أو الاستضافة.
السلام عليكم انا بعمل موقع بالوردبريس ومشترك في استضافة هوستينجر انا عملت داتابيز بدرجات الطلبة وعايز اعمل صفحة الطالب بيدخل ال id والباسورد والموقع يظهر درجاته ده مشروع التخرج بتاعي دورت كتير على جوجل لو في حد يفيددني بمعلومات هكون متشكر جدا
ردحذفتظهر هذا لي
ردحذفWarning: mysqli_select_db() expects parameter 1 to be mysqli, string given in C:\xampp\htdocs\amitprograms\replac.php on line 10
Warning: mysqli_error() expects exactly 1 parameter, 0 given in C:\xampp\htdocs\amitprograms\replac.php on line 13
Database selection also failed miserably:
هذا سطر الكود
$db_select = mysqli_select_db("provinces",$db);
if (!$db_select)
{
die("Database selection also failed miserably:". mysqli_error());
}
نحتاج مشاهدة الكود كاملاً لتصحيح المشكلة.
حذفبقلي الغلط في السطر 3 اي عند بيانات الادخال
هاذا الخطأ
Fatal error: Uncaught Error: Call to undefined function mysql_connect() in C:\xampp\htdocs\New folder\reg.php:3 Stack trace: #0 {main} thrown in C:\xampp\htdocs\New folder\reg.php on line 3
نحتاج مشاهدة الكود كاملاً لتصحيح المشكلة.
حذفرسالة الخطأ لا تكفي اخي العزيز
اذا كنا نريد ندخل بيانات من المستخدم و نظهر ما تم اختياره هو كيف الحل
ردحذفFatal error: Uncaught mysqli_sql_exception: Access denied for user 'username'@'localhost' (using password: YES) in C:\xampp\htdocs\gh\connect.php:7 Stack trace: #0 C:\xampp\htdocs\gh\connect.php(7): mysqli_connect('localhost', 'username', 'password') #1 {main} thrown in C:\xampp\htdocs\gh\connect.php on line 7 يحدث لي خطأ دائما فالاتصال
ردحذف