Published On: Fri, Feb 17th, 2012

បង្កើត​កម្មវិធី​ហោរាសាស្ត្រ​ខ្មែរ​ដាក់​លើ​គេហទំព័រ​ដោយ​ប្រើXML&PHP

 

នេះ​គឺជា​គន្លឹះ​ថ្មី​មួយ​ទៀត​សម្រាប់​អ្នក​តាម​ដាន​សិក្សា​ភាសា Programming ដើម្បី​បង្កើត​គេហទំព័រ​ស្រប​ទៅ​តាម​គោលបំណង​ក្នុង​ការ​ដាក់​ឱ្យ​មាន​ភាព​ទាក់​ទាញ​ពី​អ្នក​ទស្សនា។​គោល​បំណង​សំខាន់​នៅ​ពេល​នេះ​គឺ​យើង​ខ្ញុំ​ចង់​ឱ្យ​អ្នក​អាន​ក៏​ដូច​អ្នក​កំពុង​សិក្សា​ភាសា Programming XML & PHP ឱ្យ​ចេះ​ពី​វិធីសាស្ត្រ​ភ្ជាប់​គ្នា​រវាង​កម្មវិធី​ទាំង​ពីរ​នេះ​ដើម្បី​បង្កើត​បាន​ជា​សភាព​មួយ​ដាក់​នៅ​លើ​គេហទំព័រ​របស់​អ្នក​ប្រកប​ដោយ​ភាព​ទាក់ទាញ​និង​ងាយស្រួល​ក្នុង​ការ​បង្កើត។​តើ​យើង​ត្រូវ​ភ្ជាប់​វា​យ៉ាង​ដូចម្ដេច?​ហើយ​មាន​សារៈសំខាន់​អ្វី​ខ្លះ?​ដូច្នេះ​ដើម្បី​ឱ្យ​ជ្រាប​ច្បាស់​សូម​មើល​ពី​របៀប​បង្កើត​តួនាទី​និង​របស់​ភ្ជាប់​រវាង​កម្មវិធី​ពីរ​តាម​ជំហាន​នីមួយៗ​ដូច​ខាង​ក្រោម។
I) បង្កើត​ឈ្មោះ file ទៅ​តាម​វត្ថុ​បំណង
១-ជា​ដំបូង​អ្នក​ត្រូវ​បង្កើត​ឈ្មោះ Database​ឈ្មោះ​ថា CM_store និង​តារាង​ឬ table មួយ​សម្រាប់​រក្សា​ទិន្នន័យ​នៅ​ក្នុង MySQL។
២-បង្កើត file មួយ​សម្រាប់​បញ្ចូល​និង​លុប​ទិន្នន័យ​ឈ្មោះ​ថា insert.php។
៣-បង្កើត file getdata.php សម្រាប់​ទាញ​ទិន្នន័យ​មក​បង្ហាញ​នៅ​ពេល​អ្នក​ទស្សនា​មាន​សកម្មភាព​លើ​កម្មវិធី។
៤-បង្កើត file index.php សម្រាប់​បង្ហាញ​ព័ត៌មាន​ដល់​អ្នក​ទស្សនា​ដើម្បី​ធ្វើការ​ជ្រើសរើស​នូវ​វត្ថុ​បំណង​របស់​ខ្លួន។
៥-បង្កើត file សម្រាប់​កែប្រែ​ទិន្នន័យ​ដោយ​ដាក់​ឈ្មោះ​ថា update.php។
៦-បង្កើត folder ឈ្មោះ​ថា images សម្រាប់​រក្សា​រូបភាព​ដែល​យើង​បាន upload បញ្ចូល។
II) ចាប់​ផ្ដើម​ដំណើរការ​កូដ​លើ​ទំព័រ​នីមួយៗ
១)​ដំណើរការ​កម្មវិធី MySQL សម្រាប់​រក្សា​ទិន្នន័យ​ដោយ​បង្កើត table មួយ​ឈ្មោះ​ថា datastoreនៅ​ក្នុងDatabase CM_store ​មាន​ដូច​រូប​ខាង​ក្រោម។


២)​បើក file insert.php បញ្ចូល​កូដ PHP សម្រាប់​បញ្ចូល​និង​លុប​ព័ត៌មាន​ផ្សេងៗ​ចូល​ក្នុង database និងtable ខាង​លើ។“
<html>
<script language=“javascript“>
function delete_file(){
document.myform.cmddelete.click()
}
</script>
<?php
mysql_connect(‘localhost‘,‘root‘,‘123‘);
//ភ្ជាប់​កាន់ Database ឈ្មោះ​ថា CM_store។
mysql_select_db(‘CM_store‘);
//កំណត់​លក្ខខណ្ឌ​មុន​ពេល​បញ្ចូល​ទិន្នន័យ​ប្រសិនបើ​មិន​ទាន់​មាន table យើង​និង​ចាប់​ផ្ដើម​បង្កើត table ។
if(isset($_POST[‘cmdupload‘])==‘Upload‘){
mysql_query(‘CREATE TABLE user_info(us_id integer(10) default NULL auto_increment primary key,name varchar(50),img_file longblob,us_desc text)‘);
//បញ្ចូល​រូបភាព​ទៅ folder ហើយ​ទិន្នន័យ​ចូល​ក្នុង table ឈ្មោះ​ថា use_info។
$uploaddir = ‘images/‘;
$uploadfile = $uploaddir. $_FILES[‘userfile‘][‘name‘];
if (move_uploaded_file($_FILES[‘userfile‘][‘tmp_name‘], $uploadfile)) {
mysql_query(‘INSERT INTO user_info(name,img_file,us_desc) VALUES(‘.‘‘”.$_POST[‘us_name‘].”‘,‘”.$_FILES[‘userfile‘][‘name‘].”‘,‘”.$_POST[‘us_desc‘].”‘”.”)”);
}
}
if(isset($_POST[‘cmddelete‘])==”delete”){
if( mysql_query(“delete from user_info where us_id=”.”‘”.$_POST[‘us_id‘].”‘”)){
if(File_Exists(“images/”.$_POST[‘img_name‘])){
unlink(“images/”.$_POST[‘img_name‘]);
}
}
}
?>
<form enctype=”multipart/form-data” method=”POST” name=”myform”>
//ទាញ​ទិន្នន័យ​មក​បង្ហាញ​លើ​គេហទំព័រ​ពេល​យើង​បញ្ចូល​ក្នុង table រួច។
<?
$rsimg=mysql_query(“SELECT * FROM user_info”);
if($rowimg=mysql_fetch_array($rsimg)){
while($rowimg=mysql_fetch_array($rsimg)){
?>
<table border=0 cellpadding=0 cellspacing=0 width=”400″>
<tr>
<td align=”justify”><img src=”images/<?=$rowimg[‘img_file‘]?>” width=”100″ height=”130″ align=”left”> ♦ <?=$rowimg[‘us_desc‘]?><br><a href=”update.php?us_id=<?=$rowimg[‘us_id‘]?>&img=<?=$rowimg[‘img_file‘]; ?>” target=”_blank”> Edit</a> ||

<a href=”javascript:delete_file()” onMouseOver=”document.myform.st_id.value=‘<?=$rowimg[‘us_id‘]?>‘,document.myform.img_name.value=‘<?=$rowimg[‘img_file‘]?>‘”>Delete</a></td></tr>
</table>
<?
}
}
?>
<input type=”file” name=”userfile” size=”35″><br>
<input type=”text” name=”us_name” size=”35″><br>
<textarea rows=”7″ cols=”50″ name=”us_desc”></textarea>
<input type=submit value=”Upload” name=cmdupload>
<input type=”submit” name=”cmddelete” value=”delete” style=”width:1px;height:1px;visibility:hidden”>
<input type=hidden name=”us_id”>
<input type=hidden name=”img_name”>
</form>
</html>
កូដ​ខាង​លើ​នេះ​មាន​លំនាំ​ស្រដៀង​ក្នុង​សៀវភៅ​លេខ​៩៣​បោះពុម្ព​នៅ​ថ្ងៃ​ទី​០១​ខែ​កក្កដា​ឆ្នាំ​២០១១។
៣)បើក file getdata.php ដើម្បី​បំពេញ​កូដ​សម្រាប់​ចាប់​តម្លៃ​បោះ​ឱ្យ​គេហទំព័រ index.php ដើម្បី​ព័ត៌មាន​ដល់​អ្នក​ប្រើ។
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<?php
//បោះ​តម្លៃ​បន្ត​ឱ្យ​គេហទំព័រ index.php តាមរយៈ id ដោយ​កំណត់​យក us_id។
$us_id=$_GET["us_id"];
$con = mysql_connect(‘localhost‘,‘root‘,‘123‘);
if (!$con){
die(‘Could not connect: ‘ . mysql_error());
}
//mysql_select_db(“ajax_demo”, $con);ភ្ជាប់​ទៅ​កាន់Database ។
mysql_select_db(“cm_store”, $con);
$sql=”SELECT * FROM user_info WHERE us_id = ‘”.$us_id.”‘”;
$result = mysql_query($sql);
//បង្កើត​តារាង​ឬ Table សម្រាប់​បង្ហាញ​ទិន្នន័យ​នៅ​ពេលuser បាន​ជ្រើសរើស​យក​ជម្រើស​ណាមួយ។
echo “ជោគជតា​រាសីរបស់លោកអ្នក​ថ្ងៃនេះ​មាន​ដូច​ត​ទៅ!”;
echo “<table border=‘1‘ cellpadding=0 cellspacing=0 height=‘150‘ width=‘40%‘>”;
echo “<tr>”;
echo (“<td>”.$row[‘name‘].”</td>”);
echo “</tr>”;
//echo “</table”;
while($row = mysql_fetch_array($result))
{
echo “<tr>”;
echo “<td><img src=images/” . $row[‘img_file‘] . ” align=‘left‘ height=‘200‘>
<u>♦ចំពោះលោក​អ្នក​កើត​ឆ្នាំ៖ ”".$row[‘name‘].”"</u><br>” . $row[‘us_desc‘] . “</td>”;
echo “</tr>”;
}
echo (“</table>”);

mysql_close($con);
?>
៤)បើក file index.php សម្រាប់​បង្ហាញ​ទិន្នន័យ​ពី Database នៅ​ពេល user បាន​ជ្រើសរើស​យក​ឆ្នាំ​ដែល​គេ​បាន​កើត​ចេញ​ពី Selection box។
<html>
<head>
//កំណត់​ឱ្យ​អាច​ដាក់​អក្សរ​ខ្មែរ​យូនីកូដ​ដើរ​លើ​គេហទំព័រ​ដោយ​ប្រើ charset=utf-8។
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<script type=”text/javascript”>
//បង្កើត function showUser() ដោយ​មាន​អញ្ញាត str សម្រាប់​ពិនិត្យ​មើល​លក្ខណ​នៃ​ទិន្នន័យ​ថា​មាន​ឬ​មិន​មាន។
function showUser(str)
{
if (str==”") {
//getElementByIdសម្រាប់​បង្កើតid ឈ្មោះ​ថាtxtHint ហើយ innerHTMLសម្រាប់​បោះ​ទិន្នន័យ​ទៅ​លើ​គេហទំព័រ​ដែល​វា​ឈរ​នៅ។
document.getElementById(“txtHint”).innerHTML=”";
return;
}
if (window.XMLHttpRequest) {// កូដ​សម្រាប់​ដំណើរការ IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}else {
// សម្រាប់ IE6, IE5
xmlhttp=new ActiveXObject(“Microsoft.XMLHTTP”);
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById(“txtHint”).innerHTML=xmlhttp.responseText;
}
}
//សម្រាប់ Web browser ដែល​អ្នក​កំពុង​តែ​ឈរ​នៅ​ដើម្បី​ទទួល​យក​ទិន្នន័យ​ពី​គេហទំព័រ getdata.php​តាមរយៈ id។
xmlhttp.open(“GET”,”getdata.php?us_id=”+str,true);
xmlhttp.send();
}
</script>
</head>
<body>
♥ហោរាសាស្រ្ត​ប្រចាំថ្ងៃ៖
<form>
<select name=”students” onChange=”showUser(this.value)”>
<option value=”students”>ជ្រើសរើសឆ្នាំ​ដែល​អ្នក​បាន​កើត​​ទីនេះ</option>
<option value=”1″>-ឆ្នាំ​ជួត-</option>
<option value=”2″>-ឆ្នាំ​ឆ្លូវ-</option>
<option value=”3″>-ឆ្នំ​ខាល-</option>
<option value=”4″>-ឆ្នាំ​ថោះ-</option>
<option value=”5″>-ឆ្នាំ​រោង-</option>
<option value=”6″>-ឆ្នាំ​ម្សាញ់-</option>
<option value=”7″>-ឆ្នាំ​មមី-</option>
<option value=”8″>-ឆ្នាំ​មមែ-</option>
<option value=”9″>-ឆ្នាំ​វក-</option>
<option value=”10″>-ឆ្នាំ​រកា-</option>
<option value=”11″>-ឆ្នាំ​ច-</option>
<option value=”12″>-ឆ្នាំកុរ-</option>
</select>
</form>
<br />
<div id=”txtHint”><b>លទ្ធផល​និង​បង្ហាញ​នៅទីនេះ</b></div>
</body>
</html>
៥)បើក file update.php សម្រាប់​ធ្វើការ​កែប្រែ​ទិន្នន័យ​ដែល​អ្នក​ចង់​ធ្វើការ​កែប្រែ​ក្រោយ​ពី​បាន​បញ្ចូល​រួច។
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=iso-8859-1″ />
<title>update</title>
</head> <body>

<?php

mysql_connect(“localhost”,”root”,”123″);
mysql_select_db(“CM_store”);
//ទទួល​ទិន្នន័យ​ឬ​តម្លៃ​ក្រោយ​ពេល​អ្នក​ចុច​លើ​ប៊ូតុង Edit។
$us_id=$_GET[‘us_id‘];
//ទាញ​ទិន្នន័យ​មក​ដាក់​លើ​ប្រអប់​ដែល​យើង​ចង់​ធ្វើការ​កែប្រើ។
$rsing=mysql_query(“select * from user_info where us_id=‘”.$us_id.”‘”);

?>

<form name=”myform” enctype=”multipart/form-data” method=”post”>
<table>

<?php while($row=mysql_fetch_array($rsing)){ ?>
<tr><td><input type=”file” name=”userfile” size=”35″></td></tr>
<tr><td><input type=”text” name=”us_name” size=”35″ value=”<?=$row[‘name‘];?>”>Year‘s name
<tr><td><textarea rows=”7″ cols=”50″ name=”us_desc”><?=$row[‘us_desc‘]?></textarea></td></tr>
<tr><td><input type=submit value=”update” name=cmdupdate></td></tr>
<tr><td><input type=hidden name=”us_id”></td></tr>
<tr><td><input type=hidden name=”img_name”></td></tr>

<?php }?>
</table>
</form>

//ប្ដូរ​ទិន្នន័យ​នៅ​ពេល​យើង​បាន​ចុច​លើ​ប៊ូតុង​ឈ្មោះ​ថា update។
<?php
if(isset($_POST[‘img_name‘]))
{
$us_desc=$_POST[‘us_desc‘];
$us_name=$_POST[‘us_name‘];
mysql_query(“UPDATE user_info SET name=‘”.$us_name.”‘, us_desc=‘”.$us_desc.”‘ WHERE us_id=‘”.$us_id.”‘”);
$uploaddir = ‘images/‘;
$uploadfile = $uploaddir. $_FILES[‘userfile‘][‘name‘];
if (move_uploaded_file($_FILES[‘userfile‘][‘tmp_name‘], $uploadfile)) {
//unlink image we‘re uploaded
unlink($uploaddir.$_GET[‘img‘]);
mysql_query(“update user_info SET img_file=‘”.$_FILES[‘userfile‘][‘name‘].‘‘ where us_id= ‘‘.$us_id.‘‘‘);
}
}
?>
</body>
​-ក្រោយ​ពី​យើង​បាន​បំពេញ​កូដ​ដូច​ខាង​លើ​រួម​យើង​ត្រូវ upload file & folder ទាំង​អស់​ចូល​ទៅ Server ដើម្បី​ដំណើរការ។
III)ដំណើរការ file បាន​បង្កើត​ខាង​លើ
-វាយ​ពាក្យ៖ http://localhost/phpMyAdmin/backup/index.php​អ្នក​និង​ទទួល​បាន​ដូច​ខាង​ក្រោម៖


-ចុច​លើ​ប្រអប់ Selectionដើម្បី​ជ្រើសរើស​យក​ឆ្នាំ​អ្នក​បាន​កើត​ដើម្បី​មើល​ជតារាសី។


-បន្ទាប់​មក​អ្នក​ទទួល​បាន​លទ្ថផល​ដូច​ខាង​ក្រោម។


-កម្មវិធី​ខាង​លើ​នេះ​សម្រាប់​អ្នក​យក​ទៅ​ប្រើប្រាស់​ដើម្បី​បង្ហាញ​ដល់​អ្នក​ទស្សនា​អាច​មើល​ពី​រាសី​របស់​គេ​បាន​នៅ​លើ​គេហទំព័រ​របស់​អ្នក​បាន​ហើយ​អ្នក​សិក្សា​ក៏​អាច​អនុវត្ត​តាម​បាន​យ៉ាង​ងាយ។

 

Leave a comment

រក្សាសិទ្ធិគ្រប់យ៉ាងដោយទស្សនាវដ្តីវិទ្យាសាស្រ្តកុំព្យូទ័រ ចេញផ្សាយឆ្នាំ ២០១២