qwertyuiopasdfghjklzxcvbnmqwertyui opasdfghjklzxcvbnmqwertyuiopasdfgh jklzxcvbnmqwertyuiopasdfghjklzxcvb PHP and MySQL Database nmqwertyuiopasdfghjklzxcvbnmqwer [Type the document title] tyuiopasdfghjklzxcvbnmqwertyuiopas [Type the document subtitle] dfghjklzxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcvbnmq wertyuiopasdfghjklzxcvbnmqwertyuio pasdfghjklzxcvbnmqwertyuiopasdfghj klzxcvbnmqwertyuiopasdfghjklzxcvbn mqwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasdf ghjklzxcvbnmqwertyuiopasdfghjklzxc vbnmqwertyuiopasdfghjklzxcvbnmrty uiopasdfghjklzxcvbnmqwertyuiopasdf ghjklzxcvbnmqwertyuiopasdfghjklzxc [Pick the date] SOELINAUNG
PHP and MySQL Database
PHP and MySQL Database အေျခခံသင္ခန္း စာမ်ားကို မရွင္း ျပခင္မွာ MySQL Database အေၾကာင္း ကို ေရွ႕ဦး စြာ ရွင္း ျပေပးမွာ ျဖစ္ပါသည္။ ကၽြန္ေတာ္ရဲ႕သင္ခန္း စာေတြမွာ WAMP Server ကို အသံုး ျပဳမွာ ျဖစ္တဲ့အတြက ္ Wamp Install ျပဳလုပ္ပံုကို PHP ကို အေျခခံကေန စတင္ေ လ့လာၾကမယ္ (သင္ခန္း စာ - ၁) မွာ ၾကည့္ရႈ႕ႏိုင္ပါသည္။
MySQL Introduction
MySQL သည္ Open Source Relational Database Management System ျဖစ္ျပီး MySQL သည္ Database ျဖစ္သည္။ American National Standards Institute- ANSI/ISO SQL Standard အျဖစ္သတ္မွတ္ထ ားသည့္ SQL (Structured Query Language) သည္ Standardlized အက်ဆံုး language တစ္ခုျဖစ္ပါသည္။ Open Source Relational Database Management System ဆိုတာ MySQL ထဲမွာ Database Objects လို႔ ေခၚသည့္ Table ေတြပိုင္း ျခားၿပီး Flexibility ျဖစ္တဲ့ Data ေတြကို အျမန္ေပါင္း ထည့္ျပီး သိုေလွာင္ထားျခင္း ျဖစ္ပါသည္။ Data ေတြကို အျမန္ေပါင္း ထည့္ျပီး ျမန္ဆန္စြာအသံုး ျပဳ လုပ္ေဆာင္ႏိုင္ဖို႔အ တြက္ Database Engine ကိုအ သံုး ျပဳရပါသည္။
SQL : DML AND DDL
Database ထဲက Date ေတြကို လုပ္ေဆာင္တဲ့ အပိုင္း (၂) ခုရွိပါတယ္။ ၁။ Data Manipulating Language (DML) ၂။ Data Definition Language (DDL)(သို႔) Data Description Language (DDL)
Data Manipulating Language (DML) DML သည္ database ထဲမွာ သတ္မွတ္ထ ားေသာ data ေတြက ို ျပန္လ ဲရယူျခင္း သိမ္း ဆည္း ျခင္း ၊ ေျပာင္း လဲျခင္း ၊ ဖ်က္ျခင္း နွင့္ ထည့္သြင္း ျခင္း စသည္ စီမံခန္႔ခမ ြဲ ႈ႕ အပိုင္း ေတြကို လုပ္ေဆာင္ပါသည္။ SELECT - database ထဲမွာ data ေတြကို ဆြယ ဲ ူျပီး အသံုး ျပဳႏိုင္ပါသည္။ (Select … From …. Where) UPDATE - database ထဲမွာ data ေတြကို Update လုပ္ႏိုင္တယ္။ (Update … Set … Where) DELETE - database ထဲမွာ data ေတြကို Delete လုပ္ႏိုင္တယ္။ (Delete … From Where) INSERT INTO - database တစ္ခုအ တြင္း သို႔ data အသစ္ေတြေပါင္း ထည့္ႏိုင္သည္။ (Insert into ... Value ...)
Data Definition Language (DDL) (သိ႔)ု Data Description Language (DDL) Database Table ေတြ ဖန္တီး ျခင္း ၊ ျဖတ္ျခင္း ကိုခြင့္ျပဳပါသည္။ ေအာက္မွာ လုပ္ေဆာင္ႏိုင္တဲ့ DDL statement ေတြကို ေဖာ္ျပေပးထားပါသည္။ • CREATE DATABASE - Database အသစ္တစ္ခုဖန္တီျခင္း • ALTER DATABASE - Database တစ္ခုကို ျပဳျပင္ျခင္း • CREATE TABLE - Database ထဲမွာ Table အသစ္ဖန္တီး ျခင္း • ALTER TABLE - Table ကို ျပဳျပင္ျခင္း • DROP TABLE - Table ကို ဖ်က္ျခင္း
• CREATE INDEX - အညႊန္း ကိန္း ေတြ ဖန္တ ီး ျခင္း • DROP INDEX - အညႊန္း ကိန္း ေတြကို ဖ်က္ျခင္း တို႔ ျဖစ္ပါသည္။
သင္ခန္းစာ (၂) အေနနဲ႔ DML = Data Manipulation Language (SELECT,UPDATE,DELETE,INSERT INTO) ကို ရွင္း ျပေပးမွာ ျဖစ္ပါတယ္။ Select Statement Select Statement က Data ေတြကို Select ဆြထ ဲ ုတ္တအ ဲ့ ခါမွာ အသံုးျပဳပါတယ္။ MySQL SELECT Statement Syntax SELECT column_name(s) FROM table_name (သိ)ု႔ SELECT * FROM table_name asterisk
(*)
star
shortcat
ကို
table
တစ္ခုလံုးမွာရွိတဲ့
Columns
ေတြအားလံုးကို
မွတ္တဲ့အခါမွာအသံုး ျပဳပါတယ္။ ဥပမာ အေနျဖင့္ ကၽြန္ေတာ္တို႔ employees ဆိုတဲ့ Table တစ္ခုတည္ေဆာက္ထားတယ္ဆိုပါစို႔။
Select
ဒီလိုမ်ိဳးေလးေရးလိုက္ပါမယ္။ SELECT * FROM employees ဒါဆိုရင္ေတာ့ Select * လို႔ေရးထားတဲ့ အတြက္ Columns ေတြ အားလံုးကို Select မွတ္လိုက္ပါျပီ။ ထို႔ေနာက္ From employees ဆိုတဲ့ အတြက္ employees ဆိုတဲ့ table ကို ဆြယ ဲ ူလိုက္တာျဖစ္ပါတယ္။ အေျဖကေတာ့ employees ဆိုတဲ့ table ထဲက Columns ေတြအကုန္လံုး ကို ယူလိုက္တာျဖစ္ပါတယ္။
ပိုျပီး နားလည္သြားေအာင္ ထပ္ေရးၾကည့္ပါဦးမည္။ SELECT lastname,firstname,jobtitle FROM employees
ဒီတခါမွာေတာ့ employees table ထဲက lastname,firstname,jobtitle column ေတြကို select မွတ္လိုက္တာပဲ ျဖစ္ပါတယ္။ အေျဖကေတာ့ ဒီလိုရပါမယ္။
ဒီေနရာမွာ conditional statement ေတြ၊ query ေတြနဲ႔ တြျဲ ပီး အသံုးျပဳတဲ့ Where Clause ကို ရွင္း ျပေပးပါ့မည္။ Where clause ကို record ေတြ စစ္ထုတ္တဲ့ အခါမွာ အသံုးျပဳပါသည္။ where clause တြင္ operator ေတြကိုသတ္မွတ္ေပးတဲ့အခါမွာစာသားနွင့္ကိန္းတန္ဖိုးေတြပါ၀င္္ပါတယ္။ ထို႔ေၾကာင့္ Text ေတြကို စစ္တဲ့အခါမွာ ( ‘ ’ ) ကိုသံုးျပီးစစ္ရပါတယ္။ Numeric ဆုိရင္ေတာ့ () ထည့ရ ္ င္ရသလို မထည့္ရင္လည္းရပါတယ္။ SELECT column_name(s) FROM table_name WHERE column_name operator value ဥပမာ SELECT firstname,lastname,email FROM employees
WHERE jobtitle="president"
ယခု ပံုေလးနဲ႔ ေရးထားတာကို ရွင္း ျပပါမည္။ employees table ထဲက jobtitle column မွ president ပါတဲ့ row ကို စစ္မွာျဖစ္ပါတယ္။ ျပီးရင္ေတာ့ firstname,lastname,email ကို ေဖာ္ျပေပးခိုင္း လိုက္တာ ျဖစ္ပါတယ္။
ဒီေလာက္ဆို သေဘာေပါက္ျပီ ထင္လိုပါတယ္။ Update Statement Update Statement ကေတာ့ ရွိျပီးသား Record ေတြကe ို dit လုပ္တဲ့သေဘာပါပဲ။ Gmail Password ခ်ိန္းသလိုမ်ိဳးေပါ့။ MySQL Update Statement Syntax UPDATE table_name SET column_name=value, column_name=value2,... WHERE column_name
ဥပမာ +-----------+-----------+--------------------------------+ | lastname | firstname | email
|
+-----------+-----------+--------------------------------+ | m51a
| thl
| m51a@gmail.com |
+-----------+-----------+--------------------------------+
ဒီတခါ ကၽြန္ေတာ္တို႔ employees table ကို Update လုပ္ပါမယ္။ UPDATE employees SET email = ‘mistake51area@gmail.com’ WHERE employeeNumber = 1 ဒါဆိုရင္ေတာ့ ေအာက္မွာျပထားသလို Email ခ်ိန္း သြားမွာ ျဖစ္ပါတယ္။ ဒီေနရာမွာ သတိထားရမွာ တစ္ခုကေတာ့ where clause ကို မသံုးပဲ set ကိုပဲ သံုးခဲ့မယ္ဆိုရင္ေတာ့ Column မွာ ရွိတဲ့ record ေတြ အားလံုးကို ခ်ိန္း သြားမွာ ျဖစ္ပါတယ္။ +-----------+-----------+--------------------------------+ | lastname | firstname | email
|
+-----------+-----------+--------------------------------+ | m51a
| thl
| mistake51area@gmail.com|
+-----------+-----------+--------------------------------+
Delete Statement Delete
Statement
ကေတာ့
ေတြကိုဖ်က္ခ်င္တဲ့အခါမွာအသံုးျပဳပါတယ္။ MySQL Delect Statement Syntax DELETE FROM table_name WHERE column_name
ရွိျပီးသား
table
ထဲမွာမလိုခ်င္ေသာ
rowေတြ
၊
Record
ဥပမာ DELETE FROMemployees WHERE lastname ='Murphy'
Table တစ္ခုလံုးကို ဖ်က္ခ်င္ရင္ေတာ့ DELETE FROM employees Insert Into Statement Insert Into Statement ကေတာ့ table ထဲ row အသစ္ေတြ ထည့္ထပ္တဲ့အခါမွာအသံုးျပဳပါတယ္။ Insert Into ကို အသံုးျပဳနည္း ၂မ်ိဳးရွိပါသည္။ column name သတ္မွတ္ျပီးထည့္သြင္း ျခင္း column name မသတ္မွတ္ဘထ ဲ ည့္သြင္းျခင္းတို႔ ျဖစ္ပါတယ္။ MySQL Insert Into Statement Syntax INSERT INTO table_ Name
VALUES ဥပမာ ကၽြန္ေတာ္တို႔ Column Name မသတ္မွတ္ပဲ ထည့္ၾကည့္ပါမယ္။ INSERT INTO employees VALUES (‘Diane’,'Murphy', 'dmurphy@classicmodelcars.com')
column name သတ္မွတ္ျပီးထည့္သြင္းမယ္ဆိုရင္ေတာ့ ဒီလိုေရးရပါတယ္။ INSERT INTO employees (firstname,lastname,email) VALUES (‘Diane’,'Murphy', 'dmurphy@classicmodelcars.com') ဒီေလာက္ဆို
နားလည္သေဘာေပါက္မယ္လို႔
အဆံုးသတ္ပါမယ္ခင္ဗ်ာ။
ေမွ်ာ္လင့္ပါတယ္။
သင္ခန္းစာ
(၂)
ကို
ဒီေနရာမွာပဲ
သင္ခန္းစာ (၃) အေနနဲ႔ သင္ခန္းစာ (၂)မွာ ရွင္းျပခဲ့တဲ့ WHERE clause ကို ထပ္ရွင္း ျပမွာ ျဖစ္ပါတယ္။
SQL Where WHERE clause Where
clause
ကို
record
ေတြစစ္ထုတ္တဲ့အခါမွာအသံုးျပဳပါသည္။
where
clause
တြင္
operator
ေတြကိုသတ္မွတ္ေပးတဲ့အခါမွာစာသားနွင့္ကိန္းတန္ဖိုးေတြပါ၀င္္ပါတယ္။ထို႔ေၾကာင့္ Text ေတြကိုစစ္တဲ့အခါမွာ( ‘ ’ ) ကိုသံုးျပီးစစ္ရပါတယ္။ Numeric ဆုိရင္ေတာ့ () ထည့္ရင္ရသလိုမထည့္ရင္လည္းရပါတယ္။ MySQL WHERE clauseSyntax SELECT column_name(s)
FROM table_name WHERE column_name / operator value
ဥပမာ SELECT firstname,lastname,email FROM employees WHERE jobtitle="president"
ယခု ပံုေလးနဲ႔ ေရးထားတာကို ရွင္း ျပပါမည္။ employees table ထဲက jobtitle column မွ president ပါတဲ့ row ကို စစ္မွာျဖစ္ပါတယ္။ ျပီးရင္ေတာ့ firstname,lastname,email ကို ေဖာ္ျပေပးခိုင္း လိုက္တာ ျဖစ္ပါတယ္။
WHERE Clause မွာ အသံုး ျပဳနိုင္သည့္ Operators မ်ားကေတာ့ -
Equal , Not Equal, .. အစရွိတာေတြကေတာ့ အေသးစိတ္ ရွင္း ျပဖို႔လိုမယ္ မထင္ပါဘူး။ PHP အေျခခံသင္ခန္းစာေတြကို ေလ့လာခဲ့ျပီး သာ သူေတြအေနျဖင့္ သိျပီးသား ျဖစ္ၾကမွာပါ။
ကၽြန္ေတာ္အခု Between Operator ကို ရွင္း ျပေပးပါမည္။ BETWEEN Operator Between operator ကေတာ့ သတ္မွတ္ထားေသာNumber ေတြ၊ Text ေတြ၊ Date ေတြရဲ႕တန္းဖိုးနွစ္ခု၏ၾကားက data ေတြကို select လုပ္ေပးဖို႔ WHERE Clause တစ္ခုမွာ အသံုးျပဳပါသည္။ SQL BETWEEN Syntax SELECT column_name(s) FROM table_name
WHERE column_name BETWEEN value1 AND value2
ဥပမာ - tblCompany လို႔ အမည္ ေပးထားတဲ့ Table ႏွင့္ ရွင္ျပပါမည္။
SELECT * FROM tblCompany WHERE Sales BETWEEN ‘10000’ AND ‘19000’ ကၽြန္ေတာ္တို႔ tblCompany Table ထဲက Sale Column ထဲမွ 10000 နဲ႔ 19000 ၾကားမွာ ရွိတဲ့ တန္ဖိုးေတြကို Select ဆြထ ဲ ုတ္လိုက္တာ ျဖစ္ပါတယ္။ အေျဖကို ေအာက္က ပံုကိုၾကည့္လိုက္ပါ။
ေနာက္တစ္ခုအေနနဲ႔ NOT BETWEEN ကို ရွင္းျပပါမည္။ ဥပမာ -
SELECT * FROM tblCompany WHERE Sales NOT BETWEEN ‘10000’ AND ‘19000’ ဒီတခါေတာ့ Not Between ျဖစ္တ ဲ့အတြက္ 10000 နဲ႔ 19000 ၾကားမွာ မပါတဲ့ တန္ဖိုးကို Select ေရြးထုတ္မွာ ျဖစ္ပါတယ္။ အေျဖကို ၾကည့္လိုက္ရင္ နာလည္ သေဘာေပါက္မယ္ထင္ပါတယ္။
LIKE Operator Like operator ကေတာ့ Column ေတြထဲမွာ သတ္မွတ္ထားေသာDate ေတြကို ရွာေဖြေပးဖို႔ အသံုး ျပဳပါသည္။ SQL LIKE Syntax SELECT column_name(s) FROM table_name
WHERE column_name LIKE pattern;
ဥပမာ - tblCompany လို႔ အမည္ ေပးထားတဲ့ Table ႏွင့္ ရွင္ျပပါမည္။
SELECT * FROM tblCompany WHERE Town LIKE ‘H%’;
အေပၚမွာ ေရးထားတာကေတာ့ H ပါတဲ့ ျမိဳ႔ေတြကို ဆြထ ဲ ုတ္လိုက္တာပဲ ျဖစ္ပါတယ္။ ဒီေနရာမွာ ရွင္းျပခ်င္တာကေတာ့ % ပဲျဖစ္ပါတယ္။ % က wildcards ျဖစ္ပါတယ္။ wildcards ဆိုတာကေတာ့ ကၽြန္ေတာ္တို႔ Data ေတြကို ရွာေဖြခ်င္တဲ့အခါ
အစစာလံုးကိုပဲ မွတ္မိတဲ့ အခါမွာ wildcards ကို သံုးျပီးရွာရပါတယ္။ wildcards ကို WHERE Clause ႏွင့္တဖ ြဲ က္ျပီး အထက္မွာ
ျပထားသည့္အတိုင္း
အသံုးျပဳႏိုင္ပါသည္။
wildcards
ကို
ေနာက္ပိုင္း သင္ခန္းစာေတြမွာ
အေသးစိတ္ထပ္ရွင္း ျပေပးပါမည္။
IN Operator In operator ကေတာ့ WHERE clause ထဲမွ တန္ဖိုးေတြကို ဆင့္ပြားျပီး အသံုးျပဳပါသည္။ SQL IN Syntax SELECT column_name(s)
FROM table_name WHERE column_name IN (value1,value2,value3...)
ဥပမာ - tblCompany လို႔ အမည္ ေပးထားတဲ့ Table ႏွင့္ ရွင္ျပပါမည္။
SELECT * FROM tblCompany WHERE Town IN (‘Pisa’, ‘Hamburg’); ကၽြန္ေတာ္တို႔ tblCompany Table ထဲက Town Column ထဲမွ Pisa နဲ႔ Hamburg အမည္ပါတဲ့ တန္ဖိုးေတြကို Select ဆြထ ဲ ုတ္လိုက္တာ ျဖစ္ပါတယ္။ အေျဖကို ေအာက္က ပံုကိုၾကည့္လိုက္ပါ။
သင္ခန္းစာ
(၁)
ကေန
ရွင္း ျပေပးခဲ့သည့္အတြက္
(၃)
အထိကေတာ့
SQLႏွင့္
သက္ဆိုင္သည့္
အေျခခံ
သင္ခန္းစာ
အနည္းငယ္ကို
SQL ကို နဲနဲေတာ့ တီးမိေခါက္မိမယ္ထင္ပါတယ္။ ကၽြန္ေတာ့္ရဲ႕ သင္ခန္းစာေတြက SQL
အေၾကာင္း သီးသန္႔ေရးတဲ့ သင္ခန္းစာ မဟုတ္တဲ့အတြက္ အဓိက ရွင္းျပေပးမယ့္ အေၾကာင္း အရာေတြျဖစ္တဲ့ PHP ႏွင့္ MySQL ေပါင္းစပ္ျပီး ေရးသားသည့္ သင္ခန္းစာမ်ားကို သင္ခန္းစာ (၄) ကေန စျပီး ရွင္းျပေပးမွာ ျဖစ္ပ ါတယ္။ SQL ႏွင့္ သက္ဆိုင္သည္မ်ားကို သင္ခန္းစာေတြထဲမွာ အသံုး ျပဳတဲ့အခါ သက္ဆိုင္ရာ အလိုက္ အေသးစိတ္ ရွင္း ျပေပးသြားပါမယ္။
သင္ခန္းစာ (၄) ကၽြန္ေတာ္တို႔ PHP ႏွင့္ Database ေတြေပါင္းစမ္ျပီးေရးသားဖို႔အတြက္ PHP, MySQL ႏွင့္ Apache အားလံုးပါ၀င္သည့္ Package ျဖစ္တဲ့ WAMP ကို အသံုးျပဳပါမည္။ ထို႔ေၾကာင္း Wamp Server ကို မိမိ ကြန္ပ်ဴတာမွာ Install ျပဳလုပ္ထားဖို႔လိုအပ္ပါသည္။ Create New Database Table ေတြေဆာက္ဖို႔အတြက္
Database
စတင္တည္ေဆာင္ေတာ့မည္ဆိုလွ်င္
တစ္ခု
Browser
ဖန္တီးရပါမည္။
ကေန
Wamp
Server
http://localhost/phpmyadmin/
မွာ
Database
ဆိုျပီးေခၚဆို
အသစ္ ႏိုင္သလို
Localhost ဟု ရိုက္ျပီး Enter ေခါက္လိုက္ပါက Wamp Home Page က်လာပါက Tools မွာရွိတဲ့ PHPmyadmin Tool ကို ႏွိပ္ျပီး အသံုး ျပဳႏိုင္ပါသည္။ Browser ကေန မေခၚပဲ Wamp Server ကေန ေခၚမယ္ဆိုလွ်င္ Taskbar ရဲ႕ ညာဘက္မွာရွိတဲ့ WAMPServer image icon ကို Click ႏွိပ္ျပီး ပံုမွာ ျပထားသည့္အတိုင္း phpMyAdmin ကို Select လုပ္ျပီး ေခၚဆိုႏိုင္ပါသည္။
ထို႔ေနာက္ Create New Database မွာ မိမိၾ ကိဳက္ႏွစ္သက္သည့္ DB Name ကို ေပးလိုက္ပါ။ ကၽြန္ေတာ္ကေတာ့ m51a_db
လို႔
ေပးလိုက္ပါတယ္။
ျပီး လွ်င္
Collation
ထဲမွာ
မိမိၾကိဳက္ႏွစ္သက္သာကို
ကၽြန္ေတာ္ကေတာ့ utf8_general_ci ကို ေရြးေပးလိုက္ပါတယ္။ ျပီး လွ်င္ Create ကို ႏွိပ္လိုက္ပါ။
ေရြးေပးႏိုင္ပါတယ္။
ပံုမွာ ျပထားသည့္အတိုင္ ျမင္ေတြရျပီဆိုလွ်င္ ကၽြန္ေတာ္တို႔ DB တစ္ေဆာက္လို႔ျပီးပါျပီ။
Creating a New User ကၽြန္ေတာ္တို႔ တည္ေဆာက္ထားတဲ့ Database မွာ User အသစ္ျပဳလုပ္ရန္အတြက္ Privileges ဆိုတာကို ရွာျပီး Click ႏွိပ္လိုက္ပါ။
ထို႔ေနာက္ ပံုမွာျပထားသည့္အတိုင္း Add a new User ကို Click ႏွိပ္လိုက္ပါ။ Add a New User ကို မေတြ႔ရွိပါက Open new phpMyAdmin window ကို ရွာျပီး Click ႏွိပ္လိုက္လွ်င္ ေတြ႔ရပါမည္။
ထို႔ေနာက္ User Name ေနရာမွာ မိမိၾ ကိဳက္ႏွစ္သက္တဲ့အမည္ကို ေပးလိုက္ပါ။ ကၽြန္ေတာ္ကေတာ့ ကၽြန္ေတာ့္အမည္ တင္ထြန္းလြင္ ကိုပဲ ေပးလိုက္ပါတယ္။ Host မွာေတာ့ localhost လို႔ေပးလိုက္ပါ။ Password မွာေတာ့ မိမိၾ ကိဳက္တာ ေပးလိုက္ပါ။ ကၽြန္ေတာ္ကေတာ့ m51a လို႔ ေပးလိုက္ပါတယ္။
ပံုမွာ ျပထားသည့္အတိုင္း Global privileges မွာ Check All ကို ေရြးေပးပါ။ ျပီးလွ်င္ Go ကိႏ ု ွိပ္လုက္ပါ။
အထက္ပါ ပံုမွာ ျပထားသည့္အတိုင္း ျမင္ေတြ႔ရျပီဆိုလွ်င္ေတာ့ User အသစ္ ဖန္တီးလို႔ ျပီးပါျပီ။ သင္ခန္းစာ (၄) ကိုေတာ့ ဒီေနရာမွာပဲ ရပ္နားပါမယ္။ အားလံုးပဲ ေပ်ာ္ရြင္စြာ ေလ့လာႏိုင္ၾ ကပါေစ။
သင္ခန္းစာ (၅)
ကၽြန္ေတာ္တို႔ သင္ခန္းစာ (၄) မွာ Database ႏွင့္ User အသစ္ ဖန္းတီးခဲ့ျပီး ျဖစ္တ ဲ့အတြက္ ကၽြန္ေတာ္တို႔ ဖန္တီးထားတဲ့ Database ထဲမွာ Table ေဆာက္ၾကပါမယ္။ Table ေဆာက္ရန္အတြက္ ကၽြန္ေတာ္တို႔ phpMyadmin ကို ေခၚလိုက္ပါ။
ထို႔ေနာက္ ဘယ္ဘက္မွာ မိမိေဆာက္ခဲ့တဲ့ DB Name ကို ရွာျပီး Click ႏွိပ္လိုက္ပါ။ ကၽြန္ေတာ္ကေတာ့ m51a_db ဆိုျပီး ေဆာက္ခဲ့ပါတယ္။
Create new table on database ဆိုတဲ့ ေနရာရဲ႕ Name မွာ members လို အမည္ေပးျပီး Number of fields: မွာ ၃ လို႔ ေပးလိုက္ပါ။ ျပီးလွ်င္ Go ကို ႏွိပ္လိုက္ပါ။
ကၽြန္ေတာ့ Field ရဲ႔ ပထမ row မွာ id လို႔ အမည္ေပးလိုက္ျပီ Type ကို INT ေရြးေပးကာ length value ကို 10 ေပးျပီး Extra မွာ auto_increment ေပးကာ PRIMARY KEY ကို ေရြးခဲ့ပါတယ္။ က်န္တာေတြကို ပံုမွာ ျပထားသည့္အတိုင္း ျဖည့္လိုက္ပါ။ length value က input character ေတြရဲ႕ လက္ခံႏိုင္တဲ့ အရွည္ကို ထည့္သြင္ရတာျဖစ္ပါတယ္။
ျပီးလွ်င္ Save မွတ္လိုက္ပါ။ ထို႔ေနာက္ မိမိေဆာက္ခဲ့တဲ့ Members Table ကို ျပန္ၾကည့္ရန္အတြက္ ညာဘက္မွာရွိတဲ့ member ဆိုတဲ့ အမည္ကို Click ႏွိပ္လိုက္ရင္ ေတြ႔ရမွာ ျဖစ္ပါတယ္။ ကၽြန္ေတာ္တို႔ members table ထဲမွာ တန္ဖိုးေတြရိုက္ထည့္မွာ ျဖစ္တဲ့အတြက္ members table ရွိ Menu မွာ Insert ဆိုတာရွိပါတယ္။ Click ႏွိပ္လိုက္ပါ။ ထို႔ေနာက္ ပံုမွာ ျပထားသည့္အတိုင္း ျဖည့္ျပီး Go ကို ႏွိပ္ပါ။
ကၽြန္ေတာ္တို႔ထည့္လိုက္တဲ့ Data ေရာက္မေရာက္ကို သိခ်င္ရင္ Menu ရွိ Browse ကို ႏွိပ္ျပီး ၾကည့္ႏိုင္ပါသည္။
ကၽြန္ေတာ္တို႔ members Table ေဆာက္တာကို SQL Statement နဲ႔ ေဆာက္ခ်င္တယ္ဆိုရင္ မိမိရဲ႔ DB ကို သြားျပီး ညာဘက္ရွိ Menu မွာ SQL ဆိုတာ ရွိပါတယ္။ အဲ့ဒီမွာ Click ႏွိပ္ျပီး ေအာက္မွာ ေပးထားတာကို ျဖည့္လိုက္ရင္ ရပါျပီ။ CREATE TABLE `members` ( `id` int(10) NOT NULL auto_increment, `username` varchar(65) NOT NULL default '', `password` varchar(65) NOT NULL default '', PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=2 ; --- Dumping data for table `members` -INSERT INTO `members` VALUES (1, m51a, '1234'); ကၽြန္ေတာ္တို႔ အခုဆို DB နဲ႔ Table လည္း တည္ေဆာက္ျပီးျပီဆိုေတာ့ ယခု သင္ခန္းစာမွာ PHP နဲ႔ Login Script တစ္ခုေရးၾကပါမည္။ PHP သင္ခန္းစာမ်ားမွာ ကၽြန္ေတာ္ေျပာခဲ့တဲ့အတိုင္း C:wamp ေအာက္က www folder ေအာင္မွာ login ဆိုျပီ Folder တစ္ခုေဆာက္ျပီး login.php, checklogin.php , login_success.php ဆိုျပီး page ေတြ ဖန္တီး လိုက္ပါ။ ကၽြန္ေတာ္တို႔ login.php မွာ ေရးရမည့္ Coding ကို ေအာက္မွာ ေပးထားပါတယ္။ <table width="300" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC"> <tr> <form name="form1" method="post" action="checklogin.php"> <td> <table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF"> <tr><td colspan="3"><strong>Member Login </strong></td></tr> <tr><td width="78">Username</td><td width="6">:</td> <td width="294"><input name="myusername" type="text" id="myusername"></td>
</tr> <tr><td>Password</td><td>:</td> <td><input name="mypassword" type="password" id="mypassword"></td> </tr> <tr><td>&nbsp;</td><td>&nbsp;</td> <td><input type="submit" name="Submit" value="Login"></td> </tr> </table></td></form></tr></table> ကၽြန္ေတာ္တို႔
ဒီ
Page
မွာ
ေရးထားတာကို
တည္ေဆာက္ထားတာျဖစ္ပါတယ္။
ဒီ
Page
ျပန္ၾ ကည့္မယ္ဆိုရင္ ရဲ႔
Form
ကို
HTML
ရဲ႔
Table
ၾကည့္မယ္ဆိုလွ်င္
နဲ႔
Login
Box
method="post"
ဆိုျပီးေရးထားသည့္အတြက္ Post Method ကို သံုးထားပါတယ္။ action="checklogin.php" ျဖစ္တဲ့အတြက္ Submit ကို ႏွိပ္လိုက္တာနဲ႔ ဒီ checklogin.php က အလုပ္လုပ္မွာ ျဖစ္ပါတယ္။ checklogin.php အတြက္ ေအာက္မွာ ကူးထည့္လိုက္ပါ။ သတိထားရမွာက username နဲ႔ Pw ၊ DB Name မွာ Database ေဆာက္တုန္းက ေပးထားတဲ့ DB name ၊ username နဲ႔ Password ကို ထည့္ေပးရမွာ ျဖစ္ပါတယ္။ <?php $host="localhost"; // Host name $username="tinhtunlwin"; // Mysql username $password="m51a"; // Mysql password
$db_name="m51a_db"; // Database name $tbl_name="members"; // Table name // Connect to server and select databse. mysql_connect("$host", "$username", "$password")or die("cannot connect"); mysql_select_db("$db_name")or die("cannot select DB");
// username and password sent from form $myusername=$_POST['myusername']; $mypassword=$_POST['mypassword']; $sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'"; $result=mysql_query($sql); // Mysql_num_row is counting table row $count=mysql_num_rows($result); // If result matched $myusername and $mypassword, table row must be 1 row if($count==1){ // Register $myusername, $mypassword and redirect to file "login_success.php" session_register("myusername");
session_register("mypassword"); header("location:login_success.php"); } else { echo "Wrong Username or Password"; } ?> PHP
ေရးထားတာေတြကိုေတာ့
ကၽြန္ေတာ္မရွင္းျပေတာ့ပါဘူး။
နာမလည္တာရွိရင္
PHP
သင္ခန္းစာေတြကို
ျပန္ေလ့လာပါ။ Variable ကို ဘယ္လို႔ သတ္မွတ္တယ္ဆိုတာ PHP သင္ခန္းစာမွာ မရွင္း တဲ့ သူေတြ ဒီ Page ကို ၾကည့္ရင္ နာလည္းမယ္လို႔ ထင္ပါတယ္။ မသိတာရွိရင္ ကၽြန္ေတာ့္ Mail ကိ္ု ဆက္သြယ္ျပီး ေမးျမန္ႏိုင္ပါတယ္။ mysql_connect("$host", "$username", "$password")or die("cannot connect"); mysql_connect ဆိုျပီးေရးထားတာကေတာ့ Database ထဲက Data ေတြကို Access
မလုပ္ခင္
Connection
ခ်ိတ္ဆက္ရပါတယ္။ အဲ့ဒါေၾကာင့္ mysql_connect() function ကို သံုးျပီး PHP Page ေတြနဲ႔ Database ကို Connection ခ်ိတ္ဆက္ထားျခင္းပဲ ျဖစ္ပါတယ္။ သူ႔ရဲ႕ Syntax ကေတာ့ mysql_connect(servername,username,password); ျဖစ္ပါတယ္။ or die("cannot connect") ကေတာ့ Variable သတ္မွတ္ထားတဲ့ $host ၊ $username ၊ $password တို႔ရဲ႔ Data ေတြ မွန္ကန္မႈ႔မရွိခဲ့ရင္ cannot connect ဆိုျပီး ျပပါဖို႔ေရးထားတာ ျဖစ္ပါတယ္။
mysql_select_db("$db_name") ကေတာ့ mysql_select_db()function ကို သံုး ျပီး $db_name ကို Select လုပ္ထားတာ ျဖစ္ပါတယ္။ login_success.php အတြက္ ေအာက္က Coding ကို ကူးထည့္လိုက္ပါ။ ဒီ Page က Login လုပ္တာမွန္ရင္ Login Successful ဆိုျပီး ျပေပးမွာ ျဖစ္ပါတယ္။ <? if ($_REQUEST['action']== 'dologout') { session_destroy(); header ("location: login.php"); }?> <html><body> <center><font size="5">Login Successful (PHP & MySQL Lesson - 5)</font> <br><br> <a
href="login.php?action=dologout"><input
type="submit"
name="Submit"
value="logout"></a></center> </body></html> ကၽြန္ေတာ္တို႔ အခုလုပ္ခဲ့တဲ့ သင္ခန္းစာကို Browser ကေန
ျပန္ၾ ကည့္မယ္ဆိုလွ်င္ Localhost ရိုက္ျပီး Enter
ေခါက္လိုက္ပါက Wamp Home Page က်လာပါလိမ့္မယ္။ အဲ့ဒီေနာက္ Your projects ေခါင္းစဥ္ေအာက္မွ www
ေအာက္မွာ မိမိေဆာက္ခဲ့တဲ့ Folder ကို ျမင္ေတြ႔ရမွာ ျဖစ္ပါတယ္။ Click ႏွိပ္ျပီး login.php ကိုႏွိပ္ခါ စမ္း သပ္ႏိုင္ပါတယ္။ သင္ခန္းစာ (၅) ကို ဒီေနရာမွာပဲ ရပ္နားမွာ ျဖစ္ပါတယ္ခင္ဗ်ာ။