Hide this notice

مرحبا أنت تستخدم انترنت اكسبلورر ٦ و هو متصفح اصدر في العام 2001 الا يبدو لك ذلك قديما .

نحن ننصحك بقوة بترقية متصفحك إلى نسخة أحدث مثل أنترنت اكسيلورر ٨ أو فايرفوكس و الذي سيتيح لك تصفح أفضل ليس لموقعنا فقط بل في كل أرجاء الأنترنت..

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

Post Pic

أساسيات التعامل مع mysql من خلال الphp

إنشاء الإستعلامات و الإستعلام في mysql عن طريق php

الإتصال بقواعد البيانات

هناك عدد من الطرق التي تتمكن من خلالها الاتصال بقاعدة بيانات و تنفيذ عدد من الإستعلامات عليها مثل مثلا تركيب برنامج بي اتش بي ليعمل كواجهه لقاعدة بياناتك اكثر البرامج شهرة هي ..PhpMyAdmin كما توفر بعض المواقع خاصية الدخول على حسابك عن طريق التلنت telnet وذلك عن طريق الخطوات التالي..

  1. من start>run اطبع telnet وهناك اخترconnect > remote system و ادخل عنوان موقعك و ضغط connect
  2. ادخل كلمة المرور و اسم المستخدم الخاص بموقعك
  3. اكتب mysql -p
  4. اكتب use databasename حيث databasenme هو اسم قاعدة البيانات التي تريد اختيارها
  5. اطبع الاستعلام الذي تريد

انشاء جدول

ما تعلم فقاعدة البيانات عبارة عن عدد من الجدوال و التي تحتوي على بيانات متصله ببعضها البعض … في مثالنا هنا سنفترض قاعدة بيانات لمجموعة من الكتب … كل كتاب له اسم، مؤلف، دار نشر ، طبعه ، و رقم تسلسلي مميز بحيث لا يكون لاكثر من كتاب الرقم التسلسلي ذاته..
يكون الإستعلام كالتالي ..


CREATE TABLE book
(

searial INT NOT NULL AUTO_INCREMENT,

name text NOT NULL,

author text not null,

publisher text

copy int(4) ,

PRIMARY KEY (searial)

);

حيث طلبنا انشاء جدول اسمه book الجدول يحتوي على عدد من الحقول مثلا name و هو من نوع نص text و not null لا يمكن ان يترك فارغا ..
و Publisher من نوع نص و لكن يمكن ان يترك فارغا …
copy من نوع رقمي و حددنا طوله باربع ارقام..
اما searial الرقم التسلسلي لكل كتاب فهو رقم int لا يمكن ان يترك فارغا ويزداد في كل مرة AUTO_INCREMENT بمعنى في كل مرة نضيف كتاب جديد يعطى رقم متسلسل تلقائيا ..و في النهاية حددنا الرقم التسلسلي كمفتاح اساسي primary key اي لا يمكن لا كثر من كتاب ان يكون له نفس الرقم ..

هناك عدد من الانواع للحقول.مثلا

  • text وهو للنصوص الكبيرة .
  • bolb مشابه للسابق لكن في الحروف الانجليزية في حال استخدامه يصبح هناك فرق بين الحروف الكبيرة و الصغيرة مثلا case تحتلف عن CASE
  • Date للتاريخ الصيغة التلقائية هي YYYY-MM-DD
  • INT رقم يتراوح بين -2147483648 و 2147483648

هناك انواع اخرى مثل

  • “TINYINT”,
  • “SMALLINT”
  • “MEDIUMINT”
  • “INT”
  • “BIGINT”
  • “FLOAT”
  • “DOUBLE”
  • “DECIMAL”
  • “DATE”
  • “DATETIME”
  • “TIMESTAMP”
  • “TIME”
  • “YEAR”
  • “CHAR”
  • “VARCHAR
  • “TINYBLOB”
  • “TINYTEXT”
  • “TEXT”
  • “BLOB”
  • “MEDIUMBLOB”
  • “MEDIUMTEXT”
  • “LONGBLOB”
  • “LONGTEXT”
  • “ENUM”
  • “SET”

و الان يمكنك وضع استعلام انشاء الجدول في التلنت او يمكنك انشاء برنامج php لهذا الغرض..

mysql و php

اولا يجب عليك الاتصال بقواعد البيانات عن طريق


$db = 'اسم قاعد البيانات'; // mySQL database name

$user = 'اسم المستخدم'; // mySQL usernam

$pw = 'كلمة المرور'; // mySQL passwor

$mysql_access = mysql_connect("localhost", $user, $pw)

mysql_select_db($db, $mysql_access) or die("خلل في الإتصال")

و الان نضيف الكود اللازم لتنفيذ الاستعلام

  • $db = ‘اسم قاعد البيانات'; // mySQL database name
  • $user = ‘اسم المستخدم'; // mySQL username
  • $pw = ‘كلمة المرور'; // mySQL password
  • $mysql_access = mysql_connect(“localhost”, $user, $pw);
  • mysql_select_db($db, $mysql_access);

نضع الاستعلام في متغيير و نسميه مثلا $sql


$sql = " CREATE TABLE book

searial INT NOT NULL AUTO_INCREMENT

name text NOT NULL

author text not null

publisher tex

copy int(4)

PRIMARY KEY (searial) )"

mysql_query($sql ) or die (mysql_error);

نفذ الإستعلام السابق .. في حال تمت العملية بنجاح اكمل البرنامج و الا اظهر رسالة الخلل من خلال Mysql_error

فكرة التعامل مع قواعد البيانات تقوم على ارسال الإستعلام الذي تريد عبر متغيير باستخدام دالة معينه لتفيذ الإستعلام ..
الدالة التي تستخدم دائما لتفيذ اي استعلام هي
mysql_query

الإضافة إلى قواعد البيانات

لو اكملنا المثال السابق حول جدول الكتب.. و اردناانشاء استعلام ياخد البيانات من استمارة و يضيفها في قاعدة البيانات ..

الإستمارة ستحتوي على الحقول التالية : name,author,pblisher , copy
سنأخذ البيانات من هذه الإستمارة و ننسقها في استعلام محتوى في متغير باسم مثلا sql


sql = "insert into book (name, author,publisher,copy) values ('$name','$author','$pblisher','$copy') ";

و من ثم نقوم بتنفيذه من خلال الدالة


mysql_query($sql) or die (mysql_error) ;

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


echo "شكرا لك ...";

عرض البيانات

لعرض البيانات نستخدم الإستعلام التالي

 $sql = "select * from book" ;

سيعرض جميع البيانات في قاعدة البيانات السابقة

$sql = "select name from book "; 

سيعرض فقط الحقل name


$sql ="select * from book where author = 'drnet' ";</p>

سيعرض فقط الكتب المؤلفة من قبل الدكتور نت ..
لعرض البيانات نستخدم التالي اولا سنتصل بقاعدة البيانات


$db = 'dhname'

$user = 'username'

$pw = 'yourpassword'

$mysql_access = mysql_connect("localhost", $user, $pw)

mysql_select_db($db, $mysql_access);

ثم سننفذ الإستعلام بواسطة الدالة

$resutls = mysql_query($sql);

نتائج الإستعلام ستوضع في متسلسلة نسميها results
و من ثم سنفك هذه المتسلسلة .. في متغيير جديد نسميه $row و نعرض النتائج باستخدام حلقة


while($row = mysql_fetch_array($resutls ) ){
$name= $row["name"];
$author = $row["authoer"];
$serial = $row["serial " ] ;
echo "اسم الكتاب :$name";
echo "المؤلف = $author";
echo "الرقم التسلسلي : $serial";
}

في داخل الحلقة loop قمنا بوضع الإسم الذي نقرأه من السلسلة المفكوكة $row في متغيير اسمه name و هكذا..

تعديل قواعد البيانات

للتعديل نستخدم الإستعلام التالي .

 $sql = "update book set name='drnet' " 

هذا الإستعلام سيغيير كل اسماء الكتب في قاعدة البيانات إلى drnet

 $sql = "update book set name = 'drnet ' where serial = '2' "

هذا الإستعلام سيغيير اسم الكتاب صاحب الرقم التسلسلي 2 إلى drnet

استعلام بدون نتائج

للتاكد من ان الاستعلام فارغ او يحوي نتائج نستخدم الدالة mysql_num_rows
مثلا


$results = mysql_query($sql) or die (mysql_error))

$check = mysql_num_rows[$resutls)

if ($check ==0 )

echo "لايوجد نتائج "

}

else

{

echo"يوجد نتائج للبحث "

}

نتاكد من النتائج ان كان عددها صفر فمعنا ذلك ان البحث لم يسفر عن اي نتيجة و بذلك نطبع رسالة تفيد بعدم وجود نتائج ..و الا نعرض رسالة بوجود نتائج .

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

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

$sql ="delete from book where name= 'drnet' "

اي احذف السجلات التي يكون فيها اسم الكتاب drnet

بقلم : فاطمة العمادي

أم و زوجة .. مصممة حرة و مصورة .. عرف الناس كتاباتي التقنية من خلال شخصية خيالية هي الدكتور نت . اصمم المواقع منذ العام ١٩٩٩م .

أوسمة : , , ,

التعليقات مغلقة .