Php

طريقة أنشاء قاعده بيانات mysql و إضافة وتعديل وحذف وترتيب البيانات في الجدول في php

طريقة أنشاء قاعده بيانات mysql  و إضافة وتعديل وحذف وترتيب البيانات في الجدول في php


تحتوي قاعدة البيانات على جدول أو اكثر .



إنشاء قاعدة بيانات mysql


يمكن إنشاء قاعدة بيانات من خلال التعبير CREATE DATABASE .

التركيبة


CREATE DATABASE database_name
		  
لاستخدام التعبير يمكن استخدام الوظيفة mysql_query() و بهذه الوظيفة يمكن استخدام لارسال الأوامر الى الاتصال مع MySQL .

مثال

في المثال التالي سنقوم بإنشاء قاعدة بيانات تسمى my_db
<?php
		  $con = mysql_connect("localhost","root","root");
		  if (!$con) {
		  die('Could not connect: ' . mysql_error());
		  }
		  if (mysql_query("CREATE DATABASE my_db",$con))
		  {
		  echo "Database created";
		  } else {
		  echo "Error creating database: " . mysql_error();
		  }
		  mysql_close($con);

		  ?>






إنشاء جدول


يمكن إنشاء قاعدة بيانات من خلال التعبير CREATE TABLE .

التركيبة


CREATE TABLE table_name
		  (
		  column_name1 data_type,
		  column_name2 data_type,
		  column_name3 data_type,
		  ....
		  )
		  
لإنشاء الأمر يجب اضافة التعبير CREATE TABLE الى الوظيفة mysql_query() .

مثال

في المثال التالي سيتم إنشاء جدول مسمى Persons مع ثلاثة أعمدة . ستكون أسماء الأعمدة كالتالي FirstName و LastName و Age :

<?php
		  $con = mysql_connect("localhost","root","root");
		  if (!$con)
		  {
		  die('Could not connect: ' . mysql_error());
		  }
		  // Create database
		  if (mysql_query("CREATE DATABASE my_db",$con))
		  {
		  echo "Database created";
		  }
		  else
		  {
		  echo "Error creating database: " . mysql_error();
		  }
		  // Create table
		  mysql_select_db("my_db", $con);
		  $sql = "CREATE TABLE Persons
		  (
		  FirstName varchar(15),
		  LastName varchar(15),
		  Age int
		  )";

		  // Execute query
		  mysql_query($sql,$con);
		  mysql_close($con);

		  ?>



ملاحظة هامة 

  • يجب اختيار قاعدة البيانات قبل إنشاء الجدول حيث يمكن اختيار قاعدة البيانات من خلال الوظيفة mysql_select_db() .

  • عند إنشاء حقل قاعدة بيانات بنوع varchar , يجب تحديد الحد الأقصى للطول في الحقل مثل varchar(15) .

  • تحدد نوع البيانات نوع العمود الذي سيقوم بحمل البيانات فيها .





الحقول Primary Keys و Auto Increment


يجب أن يحتوي كل حقل على وسم أساسي Primary Keys .

يستخدم primary key لتحديد فريد ومميز للصفوف في الجدول . يجب أن يكون primary key فريد ضمن الجدول بالاضافة بأن primary key لايجب أن يكون فارغ null لأن محرك قاعدة البيانات يحتاج الى قيمة لتحديد مكان الصف في الجدول .

في المثال التالي سيتم تحديد حقل لعنوان id للجدول personID مثل حقل primary key . غالباً مايكون primary key يحتوي على رقم ID و غالباً مايكون مع AUTO_INCREMENT . تزيد AUTO_INCREMENT تلقائياً قيمة الحقل برقم واحد في كل مرة يزيد عدد الصفوف . وذلك للتأكد بأن primary key ليس فارغاً null يجب تحديد ضبط بأن القيمة غير فارغة NOT NULL .

مثال
$sql = "CREATE TABLE Persons
		  (
		  personID int NOT NULL AUTO_INCREMENT,
		  PRIMARY KEY(personID),
		  FirstName varchar(15),
		  LastName varchar(15),
		  Age int
		  )";
		  mysql_query($sql,$con);
		  






ادراج بيانات الى جدول قاعدة البيانات


تستخدم INSERT INTO لإدراج صف جديد في الجدول .

التركيبة


من الممكن كتابة التعبير INSERT INTO من خلال طريقتين .

لايحدد الشكل الأول اسماء الأعمدة حيث سيتم ادراج البيانات فقط قيمهم :
INSERT INTO table_name
	  VALUES (value1, value2, value3,...)
	  

يحدد الشكل الثاني كلاً من اسماء الأعمدة و قيمهم التي سيتم ادراجها :
INSERT INTO table_name (column1, column2, column3,...)
	  VALUES (value1, value2, value3,...)
	  
لاستخدام التعابير السابقة بشكل جيد يمكن استخدام الوظيفة mysql_query() حيث سيتم ارسال الأوامر و الطلبات الى الاتصال الخاص مع MySQL .

مثال

في الدرس السابق قمنا بإنشاء جدول باسم Persons مع ثلاثة أعمدة Firstname و Lastname و Age كما سنقوم باستخدام نفس الجدول في هذا المثال . يضيف المثال التالي صف جديد للجدول Persons :
<?php
	  $con = mysql_connect("localhost","root","root");
	  if (!$con)
	  {
	  die('Could not connect: ' . mysql_error());
	  }
	  mysql_select_db("my_db", $con);
	  mysql_query("INSERT INTO Persons (FirstName, LastName, Age)
	  VALUES ('Root', 'Griffin', '35')");
	  mysql_query("INSERT INTO Persons (FirstName, LastName, Age)
	  VALUES ('Glenn', 'Quagmire', '33')");
	  mysql_close($con);

	  ?>






ادراج بيانات من نموذج الى قاعدة البيانات


الآن سنقوم بإنشاء نموذج HTML والذي بدوره سيقوم بإضافة صف جديد للجدول Persons .

هنا كود نموذج HTML :
<html>
	  <body>
	  <form action="insert.php" method="post">
	  Firstname: <input type="text" name="firstname" />
	  Lastname: <input type="text" name="lastname" />
	  Age: <input type="text" name="age" />
	  <input type="submit" />
	  </form>
	  </body>
	  </html>
	  

عند ضغط المستخدم على زر الارسال في نموذج HTML سيتم ارسال المعلومات الى الملف insert.php .

يقوم الملف insert.php بالاتصال بقاعدة البيانات ثم يحوّل المعلومات المسجلة في النموذج الى متغيرات $_POST .

ثم يرسل mysql_query() أمراً الى INSERT INTO ليتم ادراج صف جديد الى جدول Persons .

هناالكود الموجود في صفحة insert.php :
<?php
	  $con = mysql_connect("localhost","root","root");
	  if (!$con)
	  {
	  die('Could not connect: ' . mysql_error());
	  }
	  mysql_select_db("my_db", $con);
	  $sql="INSERT INTO Persons (FirstName, LastName, Age)
	  VALUES
	  ('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";
	  if (!mysql_query($sql,$con))
	  {
	  die('Error: ' . mysql_error());
	  }
	  echo "1 record added";
	  mysql_close($con)

	  ?>







اختيار البيانات من جدول قاعدة البيانات


يستخدم التعبير SELECT لاختيار البيانات من قاعدة البيانات .

التركيبة


SELECT column_name(s)
	  FROM table_name
	  
لاستخدام التعبير يمكن استخدام الوظيفة mysql_query() و بهذه الوظيفة يمكن استخدام لارسال الأوامر الى الاتصال مع MySQL .

مثال

يختار المثال التالي جميع البيانات المخزنة في جدول Persons ( تستخدم الاشارة * لاختيار جميع البيانات الموجودة في الجدول ) :
<?php
	  $con = mysql_connect("localhost","root","root");
	  if (!$con)
	  {
	  die('Could not connect: ' . mysql_error());
	  }
	  mysql_select_db("my_db", $con);
	  $result = mysql_query("SELECT * FROM Persons");
	  while($row = mysql_fetch_array($result))
	  {
	  echo $row['FirstName'] . " " . $row['LastName'];
	  echo "<br />";
	  }
	  mysql_close($con);

	  ?>



يخزن المثال السابق البيانات العائدة من خلال الوظيفة mysql_query() في المتغير $result . ثم سنقوم باستخدام mysql_fetch_array() لاسترجاع الصف الثاني من صفوف الجدول . أما الحلقة while فإنها ستدور حول جميع الصفوف في جدول البيانات وتقدم النتيجة .

لعرض النتيجة لجميع الصفوف يمكن استخدام متغير $row كالتالي :
($row['FirstName'] and $row['LastName'])
	  

ستظهر النتيجة كالتالي :
Ahmad Jasem
	  Samer Masri
	  Fuad Alasad
	  




عرض النتيجة في جدول HTML


يختار المثال التالي نفس البيانات في المثال السابق لكن سيتم عرض البيانات في جدول HTML كالتالي :
<?php
	  $con = mysql_connect("localhost","root","root");
	  if (!$con)
	  {
	  die('Could not connect: ' . mysql_error());
	  }
	  mysql_select_db("my_db", $con);
	  $result = mysql_query("SELECT * FROM Persons");
	  echo "<table border='1'>
	  <tr>
	  <th>Firstname</th>
	  <th>Lastname</th>
	  </tr>";
	  while($row = mysql_fetch_array($result))
	  {
	  echo "<tr>";
	  echo "<td>" . $row['FirstName'] . "</td>";
	  echo "<td>" . $row['LastName'] . "</td>";
	  echo "</tr>";
	  }
	  echo "</table>";
	  mysql_close($con);

	  ?>


ستظهر النتيجة على المتصفح كالتالي 



FirstNameLastName
AhmadJasem
SamerMasri
FuadAlasad







عبارة WHERE


تستخدم عبارة WHERE لتحديد صف معين في جدول قاعدة البيانات .

التركيبة


SELECT column_name(s)
	  FROM table_name
	  WHERE column_name operator value
	  
لإنشاء كود PHP لاستخدام التعبير السابق يمكن استخدام mysql_query() و هي تستخدم لارسال الأوامر أو الطلبات الى اتصال MySQL .

مثال

يختار المثال التالي جميع الصفوف من الجدول Persons حيث WHERE الاسم Ahmad
<?php
	  $con = mysql_connect("localhost","root","root");
	  if (!$con)
	  {
	  die('Could not connect: ' . mysql_error());
	  }
	  mysql_select_db("my_db", $con);
	  $result = mysql_query("SELECT * FROM Persons
	  WHERE FirstName=Ahmad");
	  while($row = mysql_fetch_array($result))
	  {
	  echo $row['FirstName'] . " " . $row['LastName'];
	  echo "<br />";
	  }

	  ?>
	

ستظهر النتيجة على المتصفح كالتالي 


Ahmad Jasem
	  






الترتيب Order By


تستخدم الترتيب ORDER BY لترتيب البيانات المعروضة من قاعدة البيانات .

عند استخدام ORDER BY يكون الترتيب تصاعدي بشكل تلقائي ولكن ان أردت الترتيب بشكل آخر مكن استخدام الكلمة DESC والتي تشكل ترتيب تنازلي .

التركيبة


SELECT column_name(s)
	  FROM table_name
	  ORDER BY column_name(s) ASC|DESC
	  
مثال

يختار المثال التالي جميع البيانات في الجدول Persons ثم يقوم بترتيب الجدول حسب العمر تصاعدياً :
<?php
	  $con = mysql_connect("localhost","root","root");
	  if (!$con)
	  {
	  die('Could not connect: ' . mysql_error());
	  }
	  mysql_select_db("my_db", $con);
	  $result = mysql_query("SELECT * FROM Persons ORDER BY age");
	  while($row = mysql_fetch_array($result))
	  {
	  echo $row['FirstName'];
	  echo " " . $row['LastName'];
	  echo " " . $row['Age'];
	  echo "<br />";
	  }
	  mysql_close($con);

	  ?>



ستظهر النتيجة على المتصفح كالتالي 

Ahmad Jasem33
	  Samer Masri35
	  





الترتيب من خلال عمودين


أيضاً من الممكن ترتيب أكثر من عمود . عند استخدام الترتيب من خلال أكثر من عمود فإن العمود التاني سيتم استخدامه اذا كانت القيمة الأولى متساوية :
SELECT column_name(s)
	  FROM table_name
	  ORDER BY column1, column2
	  







تحديث البيانات في قاعدة البيانات


تستخدم خاصية التحديث UPDATE للتعديل على البيانات الحالية في الجدول .

التركيبة


UPDATE table_name
	  SET column1=value, column2=value2,...
	  WHERE some_column=some_value
	  

ملاحظة : لاحظ بأن التعبير WHERE يحدد أي الصف أو الصفوف الذي ينبغي تحديثه لكن بينما اذا لم تستخدم WHERE عندها سيتم تحديث جميع الصفوف .
لإنشاء كود PHP لاستخدام التعبير السابق يمكن استخدام mysql_query() و هي تستخدم لارسال الأوامر أو الطلبات الى اتصال MySQL .

مثال

في دروس سابقة قمنا بإنشاء جدول اسمه Persons وها هنا يظهر كالتالي 


FirstNameLastNameAge
AhmadJasem33
SamerMasri35
FuadAlasad40


سيقوم المثال التالي بتحديث بعض البيانات في الجدول Persons :

<?php
	  $con = mysql_connect("localhost","root","root");
	  if (!$con)
	  {
	  die('Could not connect: ' . mysql_error());
	  }
	  mysql_select_db("my_db", $con);
	  mysql_query("UPDATE Persons SET Age = '36'
	  WHERE FirstName = 'Ahmad' AND LastName = 'Jasem'");
	  mysql_close($con);

	  ?>


بعد التحديث سيبدو الجدول كالتالي 


FirstNameLastNameAge
AhmadJasem36
SamerMasri35
FuadAlasad40






حذف بيانات من قاعدة البيانات


يستخدم التعبير DELETE FROM لحذف بيانات من جدول قاعدة البيانات .

التركيبة


DELETE FROM table_name
	  WHERE some_column = some_value
	  

ملاحظة : لاحظ بأن التعبير WHERE يستخدم مع تركيبة الحذف DELETE لتحديد معين أي البيانات التي سيتم حذفها من الجدول ولكن ان لم تستخدم WHERE سيتك حذف جميع صفوف الجدول .
لإنشاء كود PHP لاستخدام التعبير السابق يمكن استخدام mysql_query() و هي تستخدم لارسال الأوامر أو الطلبات الى اتصال MySQL .

مثال

لاحظ الجدول في هذا المثال التالي 


FirstNameLastName
AhmadJasem
SamerMasri
FuadAlasad

يحذف المثال التالي البيانات من الجدول Persons حيث where الكنية LastName='Griffin' :
<?php
	  $con = mysql_connect("localhost","root","root");
	  if (!$con)
	  {
	  die('Could not connect: ' . mysql_error());
	  }
	  mysql_select_db("my_db", $con);
	  mysql_query("DELETE FROM Persons WHERE LastName='Masri'");
	  mysql_close($con);

	  ?>



بعد الحذف سيصبح الجدول كالتالي 


FirstNameLastName
AhmadJasem
FuadAlasad





تعليقات