ចែក​រំលែក​គំនិត​ និង​ចំណេះដឹង​ជាមួយគ្នា

វិធី​សាស្ត្រ​រក្សា​អក្សរ​​​​យូនីកូដ​ខ្មែរក្នុង MySQL ជាមួយ​ PHP

Posted in HTML, php by ប្រាក់ សុភី on ខែ​ឧសភា 7, 2010

ខ្ញុំ​អាច​និយាយ​បាន​ថា​ អស់​រយៈ​ពេល​ជា​យួរ​មក​ហើយ​ដែល​ខ្ញុំ​មិន​បាន​ដឹង​ថា​​ ត្រូវ​រក្សា​អក្សរ​​យូនីកូដខ្មែរ​យ៉ាង​ដូច​​ម្ដេច​នៅ​ក្នុង​​​ Database របស់​ MySQL។ ​ Web Application ជា​ច្រើន​ដែល​ខ្ញុំ​បាន​ធ្វើ​​​ជាមួយ​យូនីកូដ​ខ្មែរ​កន្លង​មក​ ហើយ​ត្រូវ​រក្សា​ទិន្នន័យ​ទៅ​ក្នុង​ MySQL Table ​ទិន្នន័យ​ទាំង​នោះ​បាន​បម្លែង​ទៅ​ជា​អក្សរ​ផ្សេង​ដែល​ខ្ញុំ​មើល​មិន​ដាច់(សូម​មើល​រូប​ខាង​ក្រោម)​ ប្រសិន​បើមាន​នរណា​ជួប​ប្រទះ​ដូច​ខ្ញុំ វិធីខាងក្រោមនឹង​អាច​ជួបាន​។ តែ​ខ្ញុំ​បាន​ឃើញ​ WordPress ​រក្សា​យូនីកូដ​ខ្មែរ​បាន​ល្អ​ណាស់​​ ហើយ​មិន​មាន​ការ​ផ្លាស់​ប្ដូរ​អី​នោះ​ទេ គឺ​ចេញ​ជា​ភាសខ្មែរ​យើង​ធម្មតា​ ដូច​ដែល​យើង​បាន​ឃើញ​នៅ​លើ​ Browser អញ្ចឹង។ ទើប​តែ​យប់មិញ​នេះ​គិត​ថា​នឹង​រក​វា​អោយ​ឃើញ​ថា​គេ​ធ្វើ​វាយ៉ាង​ដូចម្ដេច​​ ក៏បាន​ដូច​បំណង​សូម​មើល​ការ​នែ​នាំ​ដូច​ខាង​ក្រោម

  1. មិនទាន់បន្ថែម mysql_query(“SET NAMES utf8”)
  2. ក្រោយពីបន្ថែម mysql_query(“SET NAMES utf8”)

(more…)

Tagged with: ,

Embed Khmer Unicode font for all browser!!!

Posted in ចំណេះដឹង, ពត៌មាន, css, HTML by ប្រាក់ សុភី on ខែ​កុម្ភៈ 19, 2010

ដោយ​ភាស​ខ្មែរ​​យើង​មិន​ទាន់​បាន​ប្រើទួលំទួលាយ​ក្នុង​វិស័យ​ព័ត៌មាន​វិទ្យា ពិសេស​ផ្នែក​បង្កើត​វេបសាយ គឺមាន​ការ​ពិបាក​ណាស់​ប្រសិន​បើ​ចង់​ធ្វើ​វេបសាយ​មួយ​អោយ​ដើរ​ជា​មួយ​ភាសាខ្មែរ​។ ដោយ​សារតែ​គ្រប់ OS ទាំង​ Windows  Linux និង Mac មិន​ទាន់​បាន​ដាក់​ពុម្ភអក្សរ​ខ្មែរ​យើង​អោយ​បង្ហាញ​បាន​ត្រឹម​នោះ​ទេ។

(more…)

Simple JQuery Modal Window Tutorial

Posted in HTML, Javascript by ប្រាក់ សុភី on ខែ​មីនា 17, 2009

Simple Jquery Modal Windows ជា Jascript pop-up មើ​លទៅ​គួអោយ​ទាក់ទាញអារម្មណ៏ខ្លាំងណាស់

login

Login Dialog Box

pic21

Sticky Note

Tagged with: ,

អ្វីទៅ​ជា Cheat Sheet ?

Posted in HTML, Javascript, php by ប្រាក់ សុភី on ខែ​មីនា 2, 2009

html-cheat-sheet-v1

Cheat Sheet ជាដ្យាក្រាមបង្រូម​មួយ ​ដែល​បង្ហាញ​​ពី​តូនាទី សកម្ម​ភាព រចនា​សម្ព័ន្ធ​ របស់កម្មវិធីអ្វីមួយ។ សំរាប់​ Programmer ឬ Developer ការប្រើ​ Cheat Sheet ពិត​ជាមានផល​ប្រយោជន៍​ខ្លាំង​ណាស់​ យើង​មិន​ចាំបាច់​ចំណាយ​ពេល​ច្រើន​ក្នុង​ការ​ស្វែង​រក​អ្វីមួយ​ក្នុងកម្ម​វិធីនោះ តូយ៉ាងដូច​ជា HTML Cheat Sheet (រូបខាងលើ) វាបាន​បង្ហាញ​មក​ទាំងអស់ នូវ HTMl Tag ដែល​​យើង​អាច​ស្វែង​រក​បាន​ក្នុង​រូបភាពខាងលើ ។

នៅក្នុង​ Cheat Sheet នេះ​បាន​បែង​ចែក​ទៅ​តាម​ប្រភេទ​របស់វា ដួច​ជានៅ​ក្នុង​ HTML យើង​អាច​សែ្វងរក​ Tab និមួយ​ទៅ​តាម​ប្រភេទ​របស់វា​ដូច Link, Table, Form, Object…

មិន​ថា​តែកម្ម​វិធី ភាសា សូម្បី​វត្ថុ​អីមួយដែល​យើង​បាន​បង្កើត​ យើង​ក៏អាច​បង្កើត​ Cheat Sheet បាន​ផង​ដែរ វា​ជាការ​បង្រូម​ពីការ​ពន្យល់​នៃការ​ប្រើប្រាស់វត្ថុដែល​យើង​បាន​បង្កើត​នោះ​ សំរាប់​អ្នក​ប្រើ​ទួទៅ។

css-cheat-sheet-v2javascript-cheat-sheet-v1

សូមទាញយក Cheat Sheet បន្ថែមដូចខាងក្រោម​នេះ

– PHP 

– Cakephp 

-Prototype 

-Jquery

-Mootools

-SEO (Search Engine Optimization)

Download

បង្កើត Pagination ជាមួយ PHP និង​ Mysql

Posted in HTML, php by ប្រាក់ សុភី on ខែមករា 29, 2009

pagination-main

វិធីបំបែកទំព័រចេញ​ជា​ផ្នែកៗ ជាគំនិតមួយដែលកំពុងពេញនិយម សំរាប់អ្នកបង្កើត​ និង រចនា គេហទំព័រ។ វិធីនេះភាកច្រើន គេប្រើនៅពេលដែលទាញទិន្នន័យចេញពី Database ហើយទិន្នន័យនោះមានចំនួនច្រើន គេត្រូវបំបែកវា​ដាក់ជាច្រើនទំព័រ ដើម្បីងាយមើល និងធ្វើអោយគេហទំព័រដំណើរការលឿនទៀតផង។

ខាងក្រោមនេះជាការបង្ហាញពីការ បំបែកទំព័រជាផ្នែកៗ ជាមួយភាសា PHP និង​ Mysql ដែលខ្ញុំបានប្រើជាមួយ គំរោងរបស់ខ្ញុំកន្លងមក។

១.បង្កើត Database និង Table

ដំបូងយើងត្រូវមាន Database រូចហើយត្រូវបង្កើត Table ។ ខ្ញុំបង្កើតដាតាបេស មួយឈ្មោះ learnphp ហើយ table ឈ្មោះ product

CREATE TABLE `product` (
`id` int(10) unsigned NOT NULL auto_increment,
`name` varchar(50) NOT NULL default ”,
`price` decimal(10,2) NOT NULL default ‘0.00’,
`on_promotion` tinyint(4) NOT NULL default ‘0’,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=57 ;

រូចបញ្ចូលទិន្នន័យខាងក្រោមនេះ(សូមបញ្ជាក់លោកអ្នកអាចបញ្ចួលវាអោយច្រើនជានេះក៏បានដែរ)
INSERT INTO `product` (`id`, `name`, `price`, `on_promotion`) VALUES
(1, ‘Santa Costume’, ‘14.99’, 0),
(2, ‘Medieval Lady’, ‘49.99’, 1),
(3, ‘Caveman’, ‘12.99’, 0),
(4, ‘Costume Ghoul’, ‘18.99’, 0);

២. បង្កើត file ‘config.php’
file នេះបានកំនត់ Constant មួយចំនូនដែលចាំបាច់ភ្ជាប់ទៅកាន់ Database

<?php
// defines database connection data
define('DB_HOST', 'localhost');//host name
define('DB_USER', 'root');// Database user
define('DB_PASSWORD', '');//database password
define('DB_DATABASE', 'learnphp'); //database name
// defines the number of visible rows in grid
define('ROWS_PER_VIEW', 10);//ចំនូនដែលត្រូវបង្ហាញក្នុង ទំព័រនីមួយៗ
?>

៣. បង្កើត Class ‘database.class.php’
class នេះមានទូនាទីទាញយក ទិន្នន័យពី database, កំនត់ចំនួន Product ដែលត្រូវបង្ហាញ និងចំនួនទំព័រដែលត្រូវបំបែកចេញ។
ប្រហែលប្លែកពីអ្នករាល់គ្នាធ្លាប់ប្រើហើយមើលទៅ ចំពោះការភ្ជាប់ កាន់ database ខ្ញុំបានប្រើ class Mysqli ដើម្បីភ្ជាប់ទៅកាន database។ ព្រោះ Mysqli
មានលក្ខណះជា OOP ហើយងាយស្រូលប្រើ វា support តែ PHP5 ឡើងទៅ។

<?php
/**
*Database class to connect to database
*author: Prak Sophy
*email:sophy.prak@gmail.com
*phone:011735918
*date:28-01-2009
*/
require_once('config.php');
class Database
{
		/*
		 * ចំនួនទំព័រសរុប
		 */
		public $totalPages;
		/*
		 * ចំនួន product
		 */
		public $itemCount;
		/*
		 * ទំព័រដែលត្រូវផ្តល់អោយ
		 */
		public $returnedPage;
		/*
		 * database handler
		 * to use Mysqli Class support php 5.x
		 */
		private $mMysqli;
		/*
		 * Table name to use
		 */
			private $tableName;
		/*
		 * Class Contructor
		 */
	  function __construct($table)
	  {
	    // create the MySQL connection
	    $this->mMysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD,
	                                DB_DATABASE);
	     $this->tableName = $table;
	    // call countAllRecords to get the number of grid records
	    $this->itemCount = $this->countAllRecords();
	  }

	  // class destructor, closes database connection
	  function __destruct()
	  {
	    $this->mMysqli->close();
	  }
	  /*
	   * count all products
	   * @return number of product rows
	   */
	  private function countAllRecords()
	  {
	   		// Query select count product
	   		$query = "SELECT COUNT(*) FROM $this->tableName";
	   		if ($result = $this->mMysqli->query($query))
      		{
      			 $row = $result->fetch_row();
      			  $result->close();
      		}
      		return $row[0];
	  }
	  public function readPages($page)
	  {
	  	// create the SQL query that returns a page of products
    	$query = $this->createSubpageQuery("SELECT * FROM $this->tableName", $page);
    	if ($result = $this->mMysqli->query($query))
    	{
    		$i=0;
    		while($rows = $result->fetch_assoc())
    		{

    			$row[$i]['id'] = $rows['id'];
    			$row[$i]['name'] = $rows['name'];
    			$row[$i]['price'] = $rows['price'];
    			$row[$i]['on_promotion'] = $rows['on_promotion'];
    			$i++;
    		}
    		//return row of product
    		return $row;
    		$result->close();
    	}
	  }
	  private function createSubpageQuery($query,$pageNo)
	  {
	  	// if we have few products then we don't implement pagination
	    if ($this->itemCount <= ROWS_PER_VIEW)
	    {
	      $pageNo = 1;
	      $this->totalPages = 1;
	    }
	    // else we calculate number of pages and build new SELECT query
	    else
	    {
	      $this->totalPages= ceil($this->itemCount / ROWS_PER_VIEW);
	      $start_page = ($pageNo - 1) * ROWS_PER_VIEW;
	      $query.= ' LIMIT ' . $start_page . ',' . ROWS_PER_VIEW;
	    }
	    // save the number of the returned page
	    $this->returnedPage = $pageNo;
	    // returns the new query string
	    return $query;
	  }
}
?>

៤. បង្កើត file ‘product.php’ ដើម្បី test class ‘database.class.php’

<style type="text/css">
	a span{
		margin-left:2px;
	}
</style>
<?php
require_once 'database.class.php';
//request page number
$page = intval($_REQUEST&#91;'page'&#93;);
//page number 0 or less than 0
if($page <= 0)
	$page =1;
$products = new Database('product');
//read page and get products
$rows = $products->readPages($page);
//Write pagination
echo 'Pages:';
for($i=1; $i <= $products->totalPages; $i++)
{
	echo '<a href="products.php?page='.$i.'"><span>'.$i.'</span></a>';
}
?>
<table border="1" cellspacing="0" width="400">
<thead>
<th>Id</th>
<th>Name</th>
<th>Price</th>
</thead>
</tbody>
<?php
if(count($rows )>0)
{
	foreach ($rows as $row )
	{
		echo '<tr><td>'.$row['id'].'</td>';
		echo '<td>'.$row['name'].'</td>';
		echo '<td>'.$row['price'].'</td></tr>';
	}
}
?>
</tbody>
</table>

ទាញយកកូដទាំងមួល

Tagged with: ,
%d bloggers like this: