ကဗ်ာ/ရသ/နည္းပညာ

Create C box

May 11, 2014

အရင္ဆံုးဒါေလးေတြမွတ္ထား
CREATE TABLE IF NOT EXISTS tableName(
id int(11) NOT NULL AUTO_INCREMENT,
title VARCHAR(150) NOT NULL,
bodytext TEXT NOT NULL,
created VARCHAR(100) NOT NULL,
PRIMARY KEY (id)
)
ဒီကုတ္က PHP Code မဟုတ္ပါဘူး mysql database မွာသံုးတဲ့ Query Language ေတြပါ။
အေပၚကေျပာတာကtablename အမည္နဲ႕ ရွိၿပီးသား database ထဲမွာ table တစ္ခုေဆာက္မယ္လို႔ေျပာတာ
အဲဒီ table ထဲမွာ id က integer အမ်ိဳးအစားျဖစ္ရမယ္ Null ခြင့္မျပဳဘူး AutoIncrement အလိုအေလွ်ာက္
တစ္တိုးတိုးေပးသြားရမယ္လို႔ ေၾကျငာေပးတာပါ။ ေနာက္ထပ္ title ,bodytext စတာေတြကုိလည္း ေၾကျငာေပး
ထားပါတယ္။အလိုအေလွ်ာက္တစ္တိုးတာမလိုခ်င္၇င္AUTO_INCREMENT ဆိုတာေလးျဖဳတ္လိုက္ယံုပါ။
Nullable ျဖစ္ခ်င္ရင္လည္းNOT NULL ကုိခ်န္ထားခဲ့ယံုပါပဲ ။Relational database အမ်ိဳးအစားျဖစ္တာေၾကာင့္
PRIMARY KEY လိုပါတယ္ PRIMARY KEY id ကုိေပးလိုက္ပါတယ္ ။

INSERT INTO `tableName` (`tablecolumn1`,`tablecolumn2`) VALUES ('value1','value2')
ဒါက table ထဲကုိ data လွမ္းထည့္လိုက္တာပါ။

"SELECT * FROM `tablename` ဆိုတာက table ထဲက record အားလံုးယူမယ္လို႔ေျပာတာပါ

UPDATE tablename SET `title`='$title',`bodytext`='$bdtxt' WHERE `id`='$id
table ထဲကid=$id ျဖစ္တဲ့ row အတြက္ title ကုိ PHP ရဲ႕ $title variable ထဲကdata ,bodytext ထဲကုိေတာ
့ PHP ရဲ႕ $bdtxt variable ထဲကdata အစားထိုးထည့္သြင္းမယ္လို႔ေျပာတာပါ။
Quety ရဲ႕ name ေတြကုိ `` ႏွစ္ခုၾကားေရးတာက ပိုၿပီး Safe ျဖစ္ေစပါတယ္။မထည့္လည္းရပါတယ္။
Query language ဟာသပ္သပ္ထပ္ေလ့လာရမယ့္ နည္းပညာတစ္ခုျဖစ္ပါတယ္။
အခုေျပာသြားတာေတြကုိ သေဘာတရားေလာက္ေတာ့ေသခ်ာနားလည္ေအာင္လုပ္ပါ။
အရမ္းခက္တာကုိမလုပ္ေသးဘူး လြယ္တာေလးစလုပ္ၾကည့္မယ္ ။
WAMP server ကုိ run ၿပီး phpmyadmin ထဲကုိသြားလိုက္ပါ ။ database တစ္ခု create လုပ္ပါ ။
အခု WWW folder ထဲမွာ Cbox ဆိုတဲ့နာမည္နဲ႕ folder တစ္ခုထပ္ေဆာက္လိုက္ ။ အဲဒီထဲမွာ
index.php နာမည္နဲ႕ PHP ဖိုင္တစ္ဖိုင္ထပ္ဖန္တီး ။
ၿပီးရင္အဲဒီဖိုင္ကုိဖြင့္ HTML Code ေတြေရးမယ္ ။အခုစမ္းသပ္မွာက Website ေတြမွာေတြ႕ရတတ္တဲ့ Cbox
ေလးတစ္ခုလုပ္ၾကည့္မွာ name ရယ္ message ရယ္ပါမယ္ submit ခလုပ္ကုိႏွိပ္ရင္ အေပၚဘက္ျခမ္းမွာ
အဲဒီ Message ေလးကုိလာျပေပးရမယ္ ။ အိုေခ ... စေရးမယ္
<!DOCTYPE HTML>

<html lang="en-US">

<head>

<meta charset="UTF-8">

<title></title>
</head>

<body>
<div>
<p>NAME</p>
<article>MESSAGE</article>
<hr/>
</div>
<br/>
<div>
<form action="index.php" method="post">
Name:<input type="text" name="name"/>
Message:<textarea name="message"></textarea>
<input type="submit" value="submit" name="submit"/>
</form>
</div>

</body>

</html>

browser မွာ run ၾကည့္ ... အဆင္ေျပတယ္ထင္တယ္ ။ အခု အဲဒီ HTML ေတြအားလံုးရဲ႕ အေပၚမွာ PHP ကုိ
စေရးမယ္။ ပထမ database နဲ႕ခ်ိတ္မယ္ ။ လံုျခံဳမွဳအားနည္းတဲ့ mysql_ Code အစား mysqli_ ကုိေျပာင္းသံုးထားတယ္။
<?php
$dbHost='localhost';
$dbUser='root';
$dbPass='';
$dbName='cbox';
$conn=mysqli_connect($dbHost,$dbUser,$dbPass,$dbName);
?>
mysqli_connect() က database နဲ႕ခ်ိတ္ဖို႕ ေဆာင္ရြက္ေပးပါတယ္ ။အခုဆို database နဲ႕ခ်ိတ္မိေနပါၿပီ။
HTML မွာတုန္းက submit ကိုႏွိပ္ရင္ index.php ကုိသြားမယ္ Post method သံုးမယ္လို႕ေျပာထားၿပီးပါၿပီ
ဘယ္ data ေတြလည္းဆိုေတာ့ name နဲ႕ message ထဲက data ေတြ အဲဒါကုိျပန္ျပဖို႕
<p>NAME</p>
<article>MESSAGE</article> ကုိလည္းထည့္သြင္းထားၿပီးသား... PHP မွာ post နဲ႕ ေရာက္လာမယ့္ data
ကုိ $_POST[] ဆိုတဲ့ Global variable နဲ႕ဖမ္းယူရတယ္ ။ အခု name နဲ႕ message မွာ data ရွိမရွိၾကည့္မယ္
ရွိရင္ $_POST[]နဲ႕လက္ခံမယ္ ။ၿပီးရင္ database ထဲထည့္မယ္ ။
if(isset($_POST['submit'])){
$name=$_POST['name'];
$message=$_POST['message'];
if(empty($name) OR empty($message)){
echo "<p style='color:red'>Please write something.</p>";
}else{
$sql="INSERT INTO `testing` (`name`,`message`) VALUES ('$name','$message')";
$query=mysqli_query($conn,$sql);
}
}
isset() method က ရွိမရွိစစ္ေပးတယ္။function ေတြအေၾကာင္းေျပာတုနး္က ပါၿပီးသား ။
ဒါဆိုရင္ testing ဆိုတဲ့ table ထဲ name နဲ႕ message ဆိုတဲ့ column မွာ data ေတြသြားထည့္ေပးလုိက္ပါၿပီ။
ဒီလိုသြားထည့္ေပးႏိုင္ဖို႕ testing ဆိုတဲ့ table ေဆာက္ရမယ္ အဲ့ဒီထဲမွာ id, name,message ဆိုတဲ့ column
ႀကိဳဖန္တီးထားဖို႔လိုပါတယ္ ။ အဲဒါကုိကုိယ့္ဖာသာကုိယ္ေဆာက္ၾကည့္ပါ ။

အခု Cbox ေနာက္ဆံုးတစ္ဆင့္ table ထဲက data ေတြကုိ ျပန္ထုတ္ျပဖို႔ပါ ။
name,message တစ္တြဲ name,message တစ္တြဲထုတ္ျပရမွာပါ ။ဆယ္ခါေရးရင္ဆယ္တြဲထြက္ရပါမယ္။
ဒီေတာ့ပထမ array ထဲမွာ name နဲ႕ Message ကုိတြဲထား ေနာက္ ထပ္ array တစ္ခုကမွ ေရးသမွ် အႀကိမ္
အတိုင္း looping နဲ႕Output ထုတ္ျပ ။ ဒါဆိုအဆင္ေျပပါလိမ့္မယ္။ အဲဒီလိုျဖစ္ဖို႕ ေရးၾကည့္မယ္။
?> အတြင္းမွာပဲေရးရမယ္။
$sql="SELECT * FROM `testing` ";
$query=mysqli_query($conn,$sql);
$rows=array();
while($row=mysqli_fetch_assoc($query)){
$rows[]=array(
'name'=>$row['name'],
'message'=>$row['message']
);
}
mysqli_fetch_assoc() က data ေတြကို associate array အျဖစ္ထုတ္ထားေပးပါတယ္။
associate array ရဲ႕ေကာင္းတဲ့အခ်က္က index ဟာ no. မဟုတ္လည္းရပါတယ္။
array([0]=>'AungAung',[1]=>'PaiOo',[2]=>'Shanlay');ဆိုတဲ့ ပံုစံမ်ိဳးကုိ associate arrayမွာ
array(['Mandalay']=>'AungAung',['Monywa']=>PaiOo,['InHome']=>Shanlay);
ပံုစံမ်ိဳးဖန္တီးလို႕ရပါတယ္ ။
အခု Output ျပဖို႔ HTML ထဲမွာ PHP ေရာၿပီးေရးမယ္ ။
နမူနာထည့္ထားတဲ့
<p>NAME</p>
<article>MESSAGE</article>
ေနရာမွာ PHP နဲ႕အစားသြင္းအေျဖထုတ္မယ္ ။ looping နဲ႕ထုတ္မွာမို႕ Looping statement
ေလးေရာေရးရေအာင္ ။
<body>
<?php foreach($rows as $row) { ?>

<div>
<p><?php echo $row['name']?></p>
<article><?php echo $row['message']?></article>
<hr/>
</div>
<?php } ?>
<br/>

လံုေလာက္ၿပီ ။ Server မွာသြား run ၾကည့္ ။ Shout box လို႕ ေခၚေခၚ cbox ေခၚေခၚ ေခၚလို႔ရတဲ့
Basic Web app ေလးဖန္တီးၿပီးပါၿပီ ။ တစ္ခုသတိထားမိလိမ့္မယ္ ။အခုေရးျပသြားတာက OOP Style
မဟုတ္ေသးဘူးဆိုတာ ။ လြယ္တာေလးအရင္လုပ္ျပမယ္လို႔ ေျပာထားတယ္ေလ ။
OOP Style နဲ႕ ေနာက္က်ေတာ့စမ္းၾကည့္ရေအာင္ ။စိတ္ပါရင္အခုရွင္းျပတာေလးကုိပဲ OOP
အေနနဲ႕ေျပာင္းေရးၾကည့္ပါလား ??

No comments:

Post a Comment