មេរៀនទី១: ការណែនាំអំពី PHP

 

មេរៀនទី១: ការណែនាំអំពី PHP

a2

ប្រវត្តិ  PHP ត្រូវបានផ្ដល់ឈោះជាផ្លូវការ HyperText Preprocessor វាជាភាសាដែលតំណើរការនៅលើ Server ដែលជា ទូទៅ ត្រូវបាន សរសេរក្នុងបរិបទ HTML ប៉ុន្ដែមិនដូចជា HTML page ធមតានោះ ទេPHP script មិនត្រូវបានបញ្ជូន ទៅអោយ client ដោយ server ផ្ទាល់នោះទេ វាធ្វើការបញ្ជូនដោយ PHP engine ។ PHP code ដែលឋិតនៅក្នុង script អាចប្រើដើម្បីធ្វើ ការជាមួយ Databases, បង្កើត ជារូបភាព ,អាន និង បញ្ចូល ទិន្នន័យឬ កែរប្រែអត្ថបទដែលមាននៅខាងក្នុង files ឬ ធ្វើការ ទំនាក់ ទំនងទៅកាន់ Remote Server ព្រមជាមួយនឹងលទ្ធភាពជាច្រើនផ្សេងទៀត ។

Rasmus Lerdorf គឺជាមនុស្សដំបូងដែលអភិវឌ្ឍន៍នូវ PHP/FI ហើយត្រូវបានមនុស្ស រាប់លាន អ្នកប្រើប្រាស់វា ។ ជំនាន់តំបូងនៃ PHP/FI ឈោះថា Personal Homepage Tools/Form Interpreterដែល លក្ខណៈ ជាមួលដ្ឋានគឺស្រដៀងទៅនឹងភាសា Perl ព្រោះបានប្រមូលផ្ដុំនូវ Perl scripts មកអភិវឌ្ឍន៍ នៅក្នុងអំឡុងឆ្នាំ ១៩៩៥ ប៉ុន្ដែវានៅមានកង្វះខាតជាច្រើននៅក្នុង ភាសានេះ ដូចជា for loops ជាដើម ។

 PHP/FI 2  នៅក្នុងឆ្នាំ ១៩៩៧ Rasmus បន្ដការអភិវឌ្ឍន៍នូវ PHP/FI 2 រហូតមកដល់ខែ វិច្ឆិកា ឆ្នាំដដែល បន្ទាប់ពី Andi Gutmans ហើយនិង Zeev Suraski បានប្រទះឃើញនូវ PHP/FI ចំពេលដែលពួក គេកំពុង ស្វែងរកនូវភាសាដើម្បីអភិវឌ្ឍន៍នូវគំរោងបង្កើត E-commerce solution សំរាប់សកលវិទ្យាល័យ របស់ពួកគេ ។ ពួកគេបានអោយដឹងថា PHP/FI ពុំទាន់មានលទ្ធភាព គ្រប់គ្រាន់នៅឡើយហើយខ្វះខាតនូវ លក្ខណៈពិសេស ជាច្រើន ។ ចំនុចមួយដែលមានការចាប់ អារមណ៍ជាង គេ គឺ while loops ដែលពួកគេនឹងត្រូវប្រតិបត្ដិ ។

PHP 3.   Zeev and Andi សំរេចចិត្ដសរសេរ scripting language ឡើងវិញប៉ុន្ដែពុំវត្ដមាន Rasmusចូលរួម ដើម្បីអភិវឌ្ឍន៍នូវ PHP3 ឡើយហើយបានផ្ដល់នូវឈោះថីថាHypertext Preprocessor ដើម្បីបញ្ជាក់ថា PHPគឺជាផលិតផលផ្សេងមួយទៀតហើយនឹង មិនត្រឹមតែយក មកប្រើ សំរាប់តែការងារផ្ទាល់ ខ្លួននោះទេ ។ Zeev and Andi ក៏បានបង្កើតនូវ Extension API ដែល API បង្កើតថីនេះវាមានលទ្ធភាពបំពេញនូវការងារជាច្រើនដូចជា Accessing databases , spell checkers ហើយនឹង បច្ចេក

វិទ្យាដទៃៗទៀត ដែលធ្វើអោយមានការចាប់អារមណ៍ពីសំណាក់អ្នកអភិវឌ្ឍន៍ ជាច្រើនមកចូល រួមក្នុង គំរោង PHP។ នៅខណៈពេលនោះដែរ PHP ក៏ត្រូវបានបព្ចេញញនូវជំនាន់ថីរបស់ខ្លួនគឺ PHP 3 នៅ ថ្ងៃទី ៣ ខែ មិថុនា ឆ្នាំ ១៩៩៨ ដែលតាមការប៉ាន់សាន PHP នឹងត្រូវបានតំឡើង ប្រមាណ ជាង ៥០ ០០០ domains ប៉ុន្ដែជា មួយតួលេខពិតប្រាកដ លើកដំបូងរបស់ PHP ត្រូវបានគេតំឡើង ច្រើនជាងមួយ លាន Domain ទៅទៀត ។

PHP 4.

នៅក្រោយឆ្នាំ ១៩៩៨ Zeev និង Andi ងាកទៅពិតនិត្យលើការងារ PHP 3 ហើយពួកគេមានគំនិត ថាពួក គេអាចសរសរនូវ script language ឡើងវិញអោយមានលក្ខណៈល្អប្រសើរជាងមុនទៅទៀត ក្នុងខណៈ ពេលដែល PHP 3 កំពុងបន្ដការធ្វើសម្ព័ន្ធ និង ប្រតិបត្ដិការនោះ PHP 4 ក៏ ចាប់ផ្ដើមបង្កើត នូវគំរូ ថី គឺ “compile first, execute later.” តំណាក់កាលនៃការ compile មិនត្រូវបាន complie PHP Script អោយទៅជា machine code នោះទេ វាជំនួសដោយការ compile ទៅជា byte code ដែលធ្វើ ការប្រតិបត្ដិការ ដោយ Zend Engine ( Zend មកពីពាក្យថា Zeev និង Andi ) ។ វិធីសាស្ដ្រថμីសំរាប់ការប្រតិបត្ដិ script នេះអាចធ្វើអោយ PHP 4 តំណើរការបាន ល្អប្រសើរ ច្រើនជា PHP 3 ហើយត្រូវបានដាក់បង្ហាញនូវ PHP 4 នេះក្នុង ខែ ឧសភា ឆ្នាំ ២០០២ ប៉ុន្ដែដោយមាន ការផ្លាស់ប្ដូរ នៅក្នុងភាសានេះជាបន្ដបន្ទាប់ទើប PHP 4 បានបង្កើតនូវជំនាន់របស់ខ្លួន ជា PHP 4.1.0 នឹង បានបង្ហាញនូវ Superglobals ដូចជា $_GET និង $_POST ។ ដែល Superglobals នេះអាចយកមកប្រើប្រាស់ពីខាងក្នុង Functions ដោយមិនចាំបាច់ប្រើ global keyword។ រហូតដល់ជំនាន់ចុងក្រោយរបស់ PHP4ត្រូវបាន បង្ហាញ ជាចុង ក្រោយបង្អស់ នៅថ្ងៃទី 27 ខែ ធ្នូ ឆ្នាំ ២០០២ ។

PHP 5 . ដោយមានតំរូវការជាច្រើននូវលក្ខណៈរបស់ object-oriented Andi ក៏មានគំនិត សរសេរនូវObject-Oriented សំរាប់ជាផ្នែកនៃ Zend Engine. Zeev and Andi បានសរសេរ នូវឯកសារអំពី “ Zend Engine II : Feature Overview and Design ” ហើយចាប់ផ្ដើម ពិភាក្សា គ្នាអំពី PHP‟s ទៅថ្ងៃអនាគតដែលក្នុងជំនាន់ PHP 5 មានចំនុចជាច្រើនដែលនឹងត្រូវកែប្រែ បន្ថែម ឬ រំលោះចោល ។

PHP‟s មិនត្រឹមតែប្រែប្រួលដោយអាចអោយប្រើប្រាស់នូវលក្ខណៈ Object-Oriented ប៉ុណ្ណោះ នោះទេ វាថែមទាំង ផ្ទុកនូវមុខ ងារថμីៗជាច្រើនដែលបញ្ចូលជាមួយមុខងារសំរាប់ XML ហើយជា ពិសេសនោះ គឺ SimpleXML extension ដែលធ្វើអោយ មានភាពងាយស្រួល ក្នុងការសម្រប សម្រួលជាមួយឯកសារ XML និង SOAP ឬ MySQLi ថី ហើយនឹង extensions ផ្សេងៗ ទៀតដែលជាចំនុចសំខាន់នៅក្នុង PHP‟s ។ គេរំពឹងថា PHP 5 នឹងអាចក្លាយជាអ្នកនាំមុខគេ នៅលើទីផ្សារនៃការអភីវឌ្ឍន៍ web

មេរៀនទី២: PHP- អថេរ

មេរៀនទី២: PHP- អថេរ

1.អថេរ (Variables) .

Variableគឺជាគ្រឹះដ៏សំខាន់សំរាប់ភាសាកុំព្យូទ័រវាត្រូវបានគេប្រើដើម្បីផ្ទុកនូវតំលៃជាបណ្ដោះអាសន្ននៅពេល
ដែលប្រតិបត្ដិការ script ម្ដងៗ ។ variable ត្រូវបានផ្ដល់តំលៃទៅអោយ នៅពេលដែល Script ចាប់ ផ្ដើម តំណើរការ ឬ នៅពេលអ្នកប្រើប្រាស់ បញ្ជូល ឬបានមកពីការចាប់យកទិន្នន័យពី Database អ្នកអាច ប្រើប្រាស់ variable គ្រប់ពេលទាំងអស់ នៅពេលដែល script ចាប់ផ្ដើមតំ ណើរការជា មួយ ទិន្នន័យ ហើយអ្នកអាចកែប្រែ តំលៃដែល Variable នោះផ្ទុកពីការប្រតិបត្ដិការ script មួយទៅកាន់ការ ប្រតិបត្ដិការ របស់ script មួយផ្សេងទៀត រហូតដល់ពេលដែល script របស់អ្នកត្រូវបានបញ្ចប់ ។

សំរាប់ភាសា PHP ឈោះរបស់ variable ត្រូវតែចាប់ផ្ដើមដោយនិមិត្ដសញ្ញា $ (dollar sign)អ្នក អាច ផ្ដល់ នូវ ឈោះរបស់ variable ជាតួអក្សរ តំលៃលេខ ឬ underscore ( _ ) ក៏ប៉ុន្ដែអ្នកមិនអាច ប្រើអក្សរដកឃ្លាជាមួយឈោះរបស់ variable នោះទេ។

ឧទាហរណ៍ ខាងក្រោមគឺជាការផ្ដល់ឈោះទៅអោយ variable ដែលត្រឹមត្រូវ ៖

$sok ;

$sok_som_neang ;

$_Dara ;

$Chenda22 ;

Variable របស់ PHP អាចផ្ទុកនូវប្រភេទទិន្នន័យដែលជាតំលៃលេខ តួអក្សរ object , array Booleans ហើយរាល់ចំនុះរបស់ variable អាចធ្វើការផ្លាស់ប្ដូរគ្រប់ពេលវេលា ។ ជាទូទៅ ការប្រកាសVariable ឬ ការផ្ដល់តំលៃទៅអោយ variable អ្នកអាចអនុវត្ដន៍នូវ statement ដូចខាងក្រោម ។

$num1 = 5;

$num2 = 8;

ការប្រកាស variable ពីរ ខាងលើអ្នកបានប្រើប្រាស់នូវ assignment operator (=) ដែលនឹងរៀបរាប់លំអិតនៅក្នុងមេរៀន “ Operator and Expression “ ។បន្ទាប់ពីអ្នកបាន ផ្ដល់នូវតំលៃទៅ variableរួចរាល់ហើយ អ្នកអាចយកវាមក ប្រើប្រាស់បាន ដូចខាងក្រោម ៖

print $num2; វាមានតំលៃសើនឹងការប្រើ print 8; ដូចច្នេះមានន័យថា $num2 ផ្ទុកតំម្លៃ ៨ ចូរចងចាំថារាល់ចុងបញ្ចប់នៃរបាយការណ៍របស់ PHP និមួយៗត្រូវតែបញ្ចប់ដោយសញ្ញា ( ; ) semicolon។

2 Data Types .

ប្រភេទខុសៗគ្នានៃទិន្នន័យត្រូវបានប្រើប្រាស់នូវចំនួនសរុបរបស់អង្គចងចាំផ្សេងៗគ្នា ហើយវាអាចប្រព្រឹត្ដទៅនៅពេលអ្នក

រៀបចំវានៅក្នុង script របស់អ្នក ។ មានភាសាកមវិធីមួយចំនួនទាមទារអោយអ្នកសរសេរកមμវិធី ប្រកាសនូវប្រភេទ នៃទិន្នន័យ

a

ឧទាហរណ៍ ១

Gettype.php

01: <html>

02: <head><titile>Display Data Type</title>

03: </head>

04: <body>

05:

06: <h2>Using gettype</h2>

07:

08: <?php

09: $testing;

10: Print gettype($testing);// NULL

11: $testing = 5;

12: print gettype($testing); // integer

14: print “<br />”;

15: $testing = “five”;

16: print gettype($testing); // string

17: print “<br />”;

18: $testing = 5.0;

19: print gettype($testing); // double

20: print “<br />”;

21: $testing = true;

22: print gettype($testing); // boolean

23: print “<br />”;

24: ?>

 

25:

26: </body>

27: </html>

នៅពេលដែល variable $testing ត្រូវបានប្រកាសនៅបន្ទាត់ទី ០៩ ដោយមិនបាន ផ្ដល់តំលៃ ទៅអោយវា ដូចច្នេះនៅពេលដែលប្រើប្រាស់ gettype() function ដើម្បីត្រួតពិនិត្យ variable នៅបន្ទាត់ទី១០ នោះអ្នកនឹង ទទួលបាននូវ លទ្ធផល ជាអក្សរ Null ។ បន្ទាប់ពីនេះ variable $testing ត្រូវបានផ្ទល់នូវតំលៃជាតួលេខនៅបន្ទាត់ទី ១១ គឺលេខ ៥ ដែលជាចំនួនគត់ ឬ អ្នកអាច និយាយបានថាតំលៃលេខដែលគានក្បៀសដូច្នេះលទ្ទផលដែលនឹងទទួលបានបន្ទាប់ពីការប្រើប្រាស់នូវ gettype() function បន្ទាត់ទី១២ គឺ // integerចំណែកការផ្ដល់នូវតំលៃ “five” ទៅអោយ variable $testing នៅបន្ទាត់ទី ១៥ គឺជាបន្ដុំនៃតួអក្សរ ។នៅពេលដែលអ្នកចង់ធ្វើការជាមួយតំលៃជា string អ្នកត្រូវតែដាក់តំលៃនោះស្ថិតនៅក្នុងចន្លោះ សញ្ញា ( “ ) Double quotation mark ឬ ( „ ) single quotation mark ។

តំលៃជាប្រភេទ double ត្រូវបានផ្ដល់ទៅអោយ variable $testing ដែលស្ថិតនៅបន្ទាត់ទី ១៨ជាតំលៃ លេខ 5.0 ដែលតំលៃនេះជាតំលៃលេខទសភាគ ឬ ជាតំលៃលេខដែលមានក្បៀស។ តំលៃជាប្រភេទ Boolean ត្រូវបានផ្ដល់ទៅអោយ variable $testing នៅបន្ទាត់ទី ២១ ហើយតំលៃនេះអាចមានតែពីរប៉ុណ្ណោះគឺ true ឬ false ។

សំគាល់ ៖

ភាពខុសគ្នារវាការប្រើប្រាស់នូវ (“ ) double quotation mark និង ( ‘ ) single quotation mark

Double quotation mark អនុញ្ញាតិអោយយើងប្រើប្រាស់នូវ variable បញ្ចូលជាមួយ ពីព្រោះ PHP engine នឹងជំនួសនូវតំលៃដែលជា variable ។ សូមពិនិត្យមើលឧទាហរណ៍ខាងក្រោម-

$name = “Rithya”; >

print “hello, $name”; // hello,Rithya >

ប្រសិនបើអ្នកប្រើប្រាស់នូវ single quotation mark variable មិនត្រូវបានជំនួសដោយតំលៃនោះទេ ។

print ‘hello, $name’; // hello, $name >

 

ឧទាហរណ៍ ២

Quotation.php

01: <html>

02: <head><title>Single Quotation and Double Quotation mark</title>

03: </head>

04: <body>

05: <h2> Using double quatation and Signle quatation mark</h2>

06:

07: <?

08: $name = “Rithya”;

09: print “Hello,$name<br/>”; // Hello,Rithya

10: print ‘Hello,$name’; // Hello,$name

11: ?>

12:

13: </body>

14: </html>

 

3.Displaying Type Information with var_dump().

gettype() គឺជា function ដែលប្រើដើមី្បទទួលនូវប្រភេទ variable ដោយឡែក var_dump()

ប្រើដើម្បីប្រាប់នូវប្រភេទ variable និង ចំនុះរបស់វា ។ ច្រើនជាងនេះទៅទៀត សំរាប់ប្រភេទតំលៃដែលសគសាញដូចជា arrays និង object var_dump() ផ្ដល់អោយនូវពត៌មានគ្រប់ប្រភេទដែលមាននៅក្នុងVariable នោះ ។

ឧទាហរណ៍ ៣

Var_dump.php

01: <html>

02: <head>

03: <title>Displaying Type Information with var_dump</title>

04: </head>

05: <body>

06: <h2>using Var_dump</h2>

07:

08: <?php

09: $testing=5;

10: print var_dump($testing);

11: ?>

12:

13: </body>

14: </html>

4.The Cast Operators

PHPផ្ដល់អោយនូវវិធីដើម្បធ្វើការផ្លាស់ប្ដូរនូវប្រភេទទិន្នន័យដោយប្រើប្រាស់castoperators ដូចមានរៀបរាប់ក្នុង

តារាងខាងក្រោមៈ

aឧទាហរណ៍ ៥

Casting.php

<html>

<head>

<title>Casting variable</title>

</head>

<body>

<h2>Using Casting to Changing Type</h2>

<?php

$unexpect=3.14;

$holder = (double)$unexpect;

print gettype($holder);

print “— $holder<br/>”;

$holder = (string)$unexpect;

print Gettype($holder);

print “– $holder<br/>”;

$holder = (integer)$unexpect;

print gettype($holder);

print “– $holder<br/>”;

$holder = (Double)$unexpect;

print gettype($holder);

print “—- $holder<br/>”;

$holder = (boolean)$unexpect;

print gettype($holder);

print “– $holder<br/>”;

?>

</body>

</html>

 

5.Operators and Expressions . Operators គឺជានិមិតសញ្ញាទាំឡាយណាដែល អ្នកអាចប្រើ តំលៃមួយ ឬ ច្រើន បង្កើតចេញជាតំលៃថីមួយទៀត ហើយតំលៃដែលប្រតិបត្ដិដោយ operator នោះត្រូវបានគេហៅថា operand ។

Operand គឺជាតំលៃដែលចូលរួមជាមួយ operator ដែលជាទូទៅ មាន operand ពីរជាមួយOperator មួយ ។

ឧទាហរណ៍ការប្រើ operand ពីរ ជាមួយ operator ដើម្បីបង្កើតចេញជាតំលៃថីមួយផ្សេងទៀត។

4 + 5

៤ ហើយនិង ៥ គឺជា operand ដែលត្រូវបាន operated ដោយ addition operator (+) ដើម្បីបង្កើតនូវតំលៃថី គឺ ៩ ។ ការផ្ដុំនូវ operand និង operator ដើម្បីបង្កើតជាលទ្ធផល ត្រូវបានគេហៅថា expression

5.1 The Assignment Operator .

Assignment operators ប្រើដើម្បីផ្ដល់នូវតំលៃទៅអោយ variable ។ ដូចដែលអ្នក បានជួប ខាងលើ assignment operator ត្រូវបាន initialize variable គ្រប់ពេល វាគឺជាអក្សរ ( = ) ។Assignment operator ចាប់យកតំលៃពី operand ខាងស្ដាំទៅអោយ operand ខាងឆ្វេងដូចឧទាហរណ៍

ខាងក្រោម ៖

$name = “ DYCHANDOEUN “ ;

Print $name; .

ជាទូទៅខាងឆ្វេងនៃ Assignment operator ច្រើនតែជា variable ។

5.2 Arithmetic Operators

a

5.3 The Concatenation Operator ( . ) .

Concatenation operator ប្រើដើម្បីភ្ជាប់ string សំរាប់ operator មួយនេះវាធ្វើការជា មួយតែ string ប៉ុណ្ណោះ ។ ដូច្នេះរាល់ operand ដែលមិនមែនជា string វានឹង convert អោយទៅ ជា string សូមពិនិត្យមើលឧទាហរណ៍ ៖

“hello”.” world” ការសរសេរបែបនេះវាសើនឹងការសរសេរ “hello world” ។

$year = 2007; .

Print “Happy khmer new year_”.$year ; .

Variable $year ដែលជាប្រភេទ integer ត្រូវបានបំលែងទៅជា string ” 2007 ” មុន

ពេលដែលវាត្រូវបានភ្ជាប់ជាមួយ string “ Happy khmer new year ” ។

5.4 Combined Assignment Operators

$x = 4; .

$x = $x + 4; // លទ្ធផល $x គឺ 8

ឬ អ្នកអាចជំនួសដោយការសរសេរដូចខាងក្រោម

$x = 4;

$x += 4; // $ លទ្ធផល $x គឺ 8

a5.5 Comparison Operators . Comparison operators ប្រើដើម្បីប្រៀធៀបនូវ operands ទាំងឡាយ ដោយផ្ដល់នូវតំលៃត្រលប់ជា Boolean ( true or false ) ។

ឧទាហរណ៍ដើម្បីត្រួតពិនិត្យតំលៃដែលមាននៅក្នុង $x និងជាតំលៃដែលតូចជាងប្រាំ អ្នកអាចប្រើជាមួយនឹង less than operator ។

$x < 5

ប្រសិនបើ $x ផ្ទុកតំលៃ លេខ 4 expression ខាងលើនឹងផ្ដល់ជាតំលៃ true ប៉ុន្ដែប្រសិនបើ $x ផ្ទុកតំលៃជាលេខ 7 នោះ expression នឹងផ្ដល់នូវតំលៃ false ។

aOperator ខាងលើនេះភាគច្រើនប្រើជាមួយ integers or double ហើយសំរាប់ operator( == ) គឺប្រើដើម្បីប្រៀបធៀបតំលៃដែលជា strings ។

5.6 Logical Operators

aLogical operators បំលែង operand អោយទៅជាតំលៃ Boolean រួចធ្វើការប្រៀបធៀបតំលៃទាំងនោះ ។

Or operator ឬ ( || ) ផ្ដល់តំលៃ true ប្រសិនបើ operand ខាងឆ្វេង ឬ ខាងស្ដាំណាមួយមានតំលៃ true ។

ឧទាហរណ៍ ១. true || false លទ្ធផលគឺ true ។And operator ឬ ( && ) ផ្ដល់តំលៃ true នៅពេលដែល operand ទាំងពីរមានតំលៃ true ។

ឧទាហរណ៍ ២. true && false លទ្ធផលគឺ false ។

ឧទាហរណ៍ ៣. ( $x > 2 ) && ( $x < 15 )

5.7 Increment/Decrement Operators  Increment/decrement operators ប្រើដើម្បីបង្កើន ឬ បន្ថយតំលៃ របស់ variable ដែលជា Integer ហើយជាទូទៅប្រើដើម្បីរាប់ Iteration របស់ loop ។

$x = $x + 1; // $x is incremented.

$x += 1; // $x is incremented.

$x++; // $x is incremented

. $x = $x – 1; // $x is decremented.

$x–; // $x is decremented.

$x- = 1; // $x is decremented.

a

ឧទាហរណ៍

$num1 = 5;

$num2 = $num1++; // post-increment, $num2 ត្រូវបានផ្ដល់នូវតំលៃដើមរបស់ $num1

print $num1; // លទ្ធផលដែលនឹងត្រូវបង្ហាញគឺ តំលៃរបស់ $num1 គឺ ៦

print $num2; // លទ្ធផលដែលនឹងត្រូវបង្ហាញគឺ ជាតំលៃដើមរបស់ $num1 គឺ ៥

ឧទាហរណ៍ ៖

$num1 = 5;

$num2 = ++$num1; // pre-increment, $num2 ត្រូវបានផ្ដល់នូវតំលៃថីរបស់ $num1

ទៅអោយ $num2 ។

print $num1; // លទ្ធផលដែលនឹងត្រូវបង្ហាញគឺ តំលៃរបស់ $num1 គឺ ៦

print $num2; // លទ្ធផលដែលនឹងត្រូវបង្ហាញគឺ ជាតំលៃរបស់ $num1 គឺ ៦

6.Constants . ជាទូទៅ Variables ត្រូវបានគេប្រើដើម្បីផ្ទុកនូវតំលៃ ពីព្រោះតំលៃ និង ប្រភេទរបស់វាអាច នឹងត្រូវផ្លាស់ប្ដូរបានគ្រប់ពេលវេលា ។ ប្រសិនបើអ្នកចង់ធ្វើការជា មួយតំលៃដែល មិនប្រែរប្រួលនៅក្នុងការ ប្រតិបត្ដិការកូដរបស់អ្នក អ្នកអាចប្រើប្រាស់នូវ constant ។ PHP បានផ្ដល់នូវ define() function ដើម្បី

បង្កើតនូវ constant ។

define(“CONSTANT_NAME”, 42);

តំលៃដែលអ្នកអាចផ្ដល់ទៅអោយ constant គឺត្រូវតែជា តំលៃលេខ ឬ តួអក្សរ ហើយសំរាប់ការ

ផ្ដល់ឈេμាះរបស់ constant អ្នកគួរតែប្រើអក្សរធំ ។ រាលការ់ប្រើប្រាស់ constant variable អ្នកគ្រាន់យក ឈោះរបស់ constant នោះមកប្រើ ប៉ុន្ដែមិនមានសញ្ញា ($) dollar symbol នៅពីមុខនោះទេ ។

ឧទាហរណ៍ ៦

constant.php

01: <html>

02: <head>

03: <title>Defining a constant</title>

04: </head>

05: <body>

06: <div>

07:

08: <?php

09: define(“USER”, “Ankor”);

10: print “Welcome “.USER;

11: ?>

12:

13: </div>

14: </body>

15: </html>

នៅបន្ទាត់ទី ១០ យើងបានប្រើ concatenation operator ដើម្បីភ្ជាប់តំលៃរបស់ constant និង

អក្សរ “Welcome” ពីព្រោះ PHP engine មិនមានវិធីសាស្ដ្រដើម្បីបែងចែក រវាង constant និង string

ដែលនៅក្នុង quotation mark នោះទេ ។

ជា Default constant គឺ case sensitive ប៉ុន្ដែអ្នកអាចផ្លាស់ប្ដូរដោយទទួលយកនូវ argument

ទី៣ ជា boolean មកប្រើក្នុង define() function ដើម្បីកំណត់អោយការប្រើប្រាស់ឈោះ constant ជា

Case insensitive ដូចមានក្នុងឧទហរណ៍ខាងក្រោម ។

define(“USER”, “Ankor”, true); .

ដូច្នេះអ្នកអាចប្រើប្រាស់ constant ដោយមិនមានការខ្វាយខ្វល់អំពីអក្សរតូចឬធំឡើយ ។

print User;

print usEr;

print USER;

ឧទាហរណ៍ ៧

constant2.php

<html>

<head>

<title>Defining a constant</title>

</head>
<body>

<div>

<?php

define (“USER”, “Angkor”,true);

print “Welcome”.uSER.”<br/>”;

print “Welcome”.uSeR.”<br/>”;

print “Welcome”.usEr.”<br/>”;

print “Welcome”.uSER.”<br/>”;

?>

</div>

</body>

</html>

 

មេរៀនទី៣: ដំណើរការជាមួយ Flow

មេរៀនទី៣: ដំណើរការជាមួយ Flow

1. The if Statement If statement គឺជាវិធីសាស្ដ្រដែលប្រើដើម្បីត្រួពិនិត្យទៅលើ ការប្រតិបត្ដិការរបស់ statement ដែលនៅបន្ទាប់វា

( អាចជា single statement ឬ ជា block of code ដែលឋិតនូវក្នុងសញ្ញា {——-} )

If statement ធ្វើការវាយតម្លៃ expression ដែលនៅក្នុងសញ្ញា () ប្រសិនបើ expression របស់ ifផ្ដល់តំលៃ true នោះ statement ដែលនៅខាក្រោមនឹងត្រូវអនុវត្ដន៍ ។

កូដខាងក្រោមបង្ហាញពី ទំរង់នៃ if statement ដែលត្រួតពិនិត្យ expression ជា string ។

if(expression)

{

// code ដែលនឹងត្រូវអនុវត្ដន៍នៅពេលដែល expression ផ្ដល់តំលៃ true

}

ឧទាហរណ៍ ៨

<Html>

<head>

<title> Using if Statement </title>

</head>

<body>

<h2>Using if statement</h2>

<?php

$user=”Thanith”;

$pwd=”123″;

If(($user= =”Thanith” && pwd= =”123″))

print “Login successful”;

else

print “Login fail !”;

?>

</body>

</Html>

ការប្រើប្រាស់ comparasion operator (==) ដើម្បីប្រៀបធៀប variable $user និង តំលៃជាអក្សរ ” Thanith ”

variable $pwd ជាមួយនឹងតំលៃ “123” ប្រសិនបើតំលៃដែលត្រូវប្រៀបធៀបនិងតំលៃរបស់ variable

ដូចគ្នានោះ expression នឹងផ្ដល់តំលៃ true ហើយ code block នឹងត្រូវអនុវត្ដន៍ប៉ុន្ដែប្រសិន បើតំលៃរបស់ $user

ប្ដូរទៅជា “Romchong” ឬ តំលៃរបស់ $pwd ប្ដូរទៅជា “124” ហើយតំណើរការ scriptឡើងវិញ នោះ expression ដែលនៅក្នុង if statement និឹងផ្ដល់តំលៃ falseហើយCode block នឹងមិនត្រូវអនុវត្ដន៍ ដែល script នឹងបែរទៅអនុវត្ដន៍នូវ else statement ជំនួសវិញ ។

else

print “Login fail !”;

1.1 Using the else if Clause with the if Statement

អ្នកអាចប្រើប្រាស់នូវទំរង់ if/else ឬ else/if ដើម្បីធ្វើការពិនិត្យលើ expression មុនពេលដែល

Script របស់អ្នកត្រូវអនុវត្ដន៍ នូវ default block of code ។

if ( expression )

{

// code ដែលត្រូវអនុវត្ដន៍ ប្រសិនបើ expression ផ្ដល់តម្លៃ true

}

else if ( another expression )

{

// code ដែលត្រូវអនុវត្ដន៍ ប្រសិនបើ expression ដំបូងផ្ដល់តម្លៃ false

// ហើយ expression របស់វា true

}

else

{

// code ដែលត្រូវអនុវត្ដន៍ ប្រសិនបើពុំមាន expression ណាមួយ true

}

ប្រសិនបើ expression ដំបូងមិនផ្ដល់នូវតំលៃ true នោះ block of code ដំបូងក៏មិនត្រូវបាន អនុវត្ដន៍ដែរ else if ចាប់ផ្ដើមធ្វើការជាមួយ expression របស់ខ្លួន ប្រសិនបើ expression នេះផ្ដល់តំម្លៃ True នោះ block កូដទី២ នឹងត្រូវអនុវត្ដន៍ ផ្ទុយមកវិញកូដដែលស្ថិតនៅក្នុង else clauseនឹងត្រូវអនុវត្ដន៍ ជំនួសវិញ ។ អ្នកអាចប្រើប្រាស់ else if បានជាច្រើនទៅ តាមការចង

់បានរបស់អ្នក ហើយប្រសិនបើ អ្នកមិន ចង់អោយមាន Default action ទេ អ្នកមិនចាំបាច់ប្រើប្រាស់ else clause នោះទេ ។

2. The switch Statement .

switch statement គឺជាវិធីសាស្ដ្រដែលប្រើដើម្បីផ្លាស់ប្ដូរលំដាប់នៃការអនុវត្ដន៍កូដរបស់កមវិធី ដែលអាស្រ័យទៅលើ ការវាយតំលៃរបស់ expression ។ ការប្រើប្រាស់ if statement ជាមួយ else if អ្នកអាចប្រើប្រាស់ expressionបានច្រើន ដោយ ឡែក switch ប្រើប្រាស់តែ expression មួយ ប៉ុណ្ណោះ ។ការអនុវត្ដន៍ code ខុសៗគ្នាគឺអាស្រ័យទៅលើលទ្ធផលនៃexpression ដែលផ្ដល់តំលៃជា simple typeដូចជា ( number , string , Boolean……។ ល។ ) ។

switch (expression)

{

case exp:

// execute this if expression results in result1

break;

case exp:

// execute this if expression results in result2

break;

default:

// កូដនឹងត្រូវអនុវត្ដន៍ប្រសិនបើមិនមាន expression ណាដូចនឹង expression របស់ case

}

Expression របស់ switch statement ជាទូទៅត្រូវបានប្រើជា variable ហើយ codeរបស់ switch statement ត្រូវសរសេរនៅក្នុង case statement ។ រាល់តំលៃ expression របស់ caseនិមួយៗ ត្រូវបានយកមកផ្ទៀងផ្ទាត់ជាមួយ expression របស់ switch statement ប្រសិនណាតំលៃរបស់case ណាមួយដូចនឹង expression របស់ switch statement នោះ code block នឹងត្រូវអនុវត្ដន៍ បន្ទាប់ មក break statement នឹងបញ្ចប់ការអនុវត្ដន៍ switch statement ប៉ុន្ដែប្រសិនបើពុំមាន case expression ណាមួយ ដូចនឹង switch expression នោះ default statement គឺជាអ្នកអនុវត្ដន៍ ។

ឧទាហរណ៍ ៩

<Html>

<head>

<title>

Using switch Statement

</title>

</head>

<body>

<h2>Using switch statement</h2>

<?php

$name=”Daro”;

switch($name)

{

case “Dara”:

print ” Hello Dara”;

break;

case “Many”:

print “Hello Many”;

break;

case “Daro”:

print “Hello Daro”;

break;

Default:

print “No one know”;

}

?>

</body>

</Html>

3. Loops .

Loop statement អាចអោយអ្នកអនុវត្ដន៍នូវការងារម្ដងហើយម្ដងទៀតនៅក្នុង programរបស់អ្នក រហូតដល់វាសំរេច

លក្ខ័ណ្ឌ ឬ អ្ន្នកបញ្ជាអោយចាកចេញពី loop ។

3.1 The while Statement .While loops គឺជាប្រភេទមួយនៃ loops ។ expression របស់វាផ្ដល់ជាតំលៃ true ឬ false ដូច្នេះប្រសិនបើ expression ផ្ដល់តំលៃជាលទ្ធផល true នោះ code block នឹងត្រូវអនុវត្ដន៍ ដែល blockCode ស្ថិតនៅក្នុង loop នោះ ត្រូវបានគេអោយឈោះថា iteration ។

while ( expression )

{

// do something

}

ឧទាហរណ៍ ១០

while.php

<html>

<head><title>The While Statement</title>

</head>

<body>

<h2>Using the While Statement</h2>

<?php

$sum=0;$i=1;

$str=””;

While ($i<=10)

{

$sum+=$i;

$str= $str.“$i+”;

$i++;

}

echo substr($str,0,-1).“=$sum”;

?>

</body>

</html>

3.2 The do…while Statement .

do..while statement វាមានលក្ខណៈប្រហាក់ប្រហែលនឹង while statement ប៉ុន្ដែលក្ខណៈ ពីរដែលខុសគ្នាពី while statement គឺ block code របស់ do while statement អនុវត្ដន៍ មុនពេលដែល Expression របស់វាត្រូវបាន test និង ផ្ដល់តំលៃ true ឬ false ។

do

{

………………………

// code to be executed

………………………

}

while (expression);

Test expression នៃ do…while statement ត្រូវតែបញ្ចប់ដោយ ( ; ) semicolon. .

ឧទាហរណ៍ ១១

dowhile.php

<html>

<head><title>The Do While Loop Statement</title>

</head>

<body>

<h2>Using the do while Statement</h2>

</body>

</html>

<?php

$sum=0;$i=1;$str=””;

Do

{

$sum=$sum+$i;

$str= $str.”$i+”;

$i=$i+1;

}

While ($i<=10);

{

$i=$i-1;

echo substr($str,0,-1).”=$sum”;

}

?>

3.3 The for Statement .

for ( initialization expression; test expression; modification expression )

{

// code to be executed

}

រាល់ expression និមួយៗដែលមាននៅក្នុងសញ្ញាវង់ក្រចករបស់ for statement គឺត្រូវ បែងចែកគ្នាដោយ semicolon ( ; ) ។ expression ទីមួយ ចាប់ផ្ដើមរាប់ variable ហើយ expression ទី២ធ្វើការត្រួតពិនិត្យលក្ខ័ណរបស់ for loop និង expression

ទី៣ បង្កើន ឬ បន្ថយនូវចំនួនការរាប់ ។

ឧទាហរណ៍ ១២

forloop.php

<html>

<head>

<title>The for Statement</title>

</head>

<body>

<h2>Using for Statement</h2>

<?php

$sum=0;$str=””;

for ($i=1; $i<=10; $i++ )

{

$sum+=$i;

$str= $str.”$i+”;

}

echo substr($str,0,-1).”=$sum”;

?>

</body>

</html>

នៅពេលដែល program តំណើរការដល់ for loop variable $i ត្រូវបាន initialize ហើយTest expression ចាប់ផ្ដើមត្រួតពិនិត្យទៅលើ expression របស់ខ្លួន ប្រសិនបើ expression ផ្ដល់តំលៃ True នោះ code block នឹងត្រូវអនុវត្ដន៍  បន្ទាប់មក $i variable ធ្វើការបង្កើនតំលៃមួយ ហើយ testExpression ចាប់ផ្ដើមធ្វើការត្រួតពិនិត្យទៅលើ expression

របស់ខ្លួនសារជាថμីម្ដងទៀត។ ប្រតិបត្ដិការនេះបន្ដការអនុវត្ដន៍រហូតដល់ test expression ផ្ដល់តំលៃ false ។

3.4 Breaking Out of Loops with the break Statement .

រាល់ loop statement គឺសុទ្ធតែមានភ្ជាប់មកជាមួយនូវ test expression ដែលអាចអោយអ្នក បញ្ឈប់វាបាន ឬ ដោយប្រើប្រាស់ break statement ។

ឧទាហរណ៍ ១៣

break.php

01: <html>

02: <head>

03: <title>the break Statement</title>

04: </head>

05: <body>

06: <div>

07:

08: <?php

09:

10: $counter = -5;

11: for ( ; $counter <= 10; $counter++ ) {

12: if ( $counter == 0 ) {

13: break;

14: }

15: $temp = 2000/$counter;

16: print “2000 divided by $counter is.. $temp<br />”;

17: }

18: ?>

19:

20: </div>

21: </body>

22: </html>

យើងបានប្រើប្រាស់នូវ if statement នៅបន្ទាត់ទី ១៣ ដើម្បីត្រួពិនិត្យនូវតំលៃរបស់ variable$counter ប្រសិនបើតំលៃរបស់វាសើនឹងសូន្យ ០ break statement នឹងត្រូវអនុវត្ដន៍៍ ដែលត្រូវចាកចេញពីBlock code របស់ for loop statement ហើយអនុវត្ដន៍នូវ statement ដែលនៅបន្ទាប់ពី for statement ។

3.5 Skipping an Iteration with the continue Statement .

Continue statement បញ្ឈប់តំណើរការរបស់ iteration ដែលកំពុងអនុវត្ដន៍ ប៉ុន្ដែមិនបញ្ឈប់ តំណើរការរបស់ loop ទាំងស្រុងនោះទេ វានឹងបន្ដធ្វើការជាមួយ iteration ក្រោយៗបន្ដទៀត រហូតដល់ Expression ផ្ដល់តំលៃ false ឬ ជួប នឹង break statement ។

ឧទាហរណ៍ ១៤ continue.php

01: <!

02: exam continue statement

03: >

04: <html>

05: <head>

06: <title>Using the continue Statement</title>

07: </head>

08: <body>

09: <div>

10:

11: <?php

12:

13: $counter = -5;

14: for( ; $counter <= 10; $counter++ )

15: {

16: if ( $counter == 0 )

17: {

18: continue;

19: }

20: $temp = 2000/$counter;

21: print “2000 divided by $counter is .. $temp<br />”;

22: }

23:

24: ?>

25:

26: </div>

27: </body>

28: </html>

នៅបន្ទាត់ទី១៤យើងបានជំនួស break statement ដោយការប្រើប្រាស់ continue statementប្រសិនបើ variable $counter សេμី ០ iteration នឹងត្រូវរំលងការអនុវត្ដន៍ ហើយបន្ដអនុវត្ដន៍ iteration ជាបន្ដទៀត ។

3.6 Nesting Loops .

ឧទាហរណ៍ ១៥ៈ

nestingLoop.php

01: <html>

02: <head><title>using nested loop</title>

03: </head>

04: <body>

05: <h2>Using nested loop</h2>

06:

07: <?php

08:

09: $j=0;$i=0;

10: for($i=0;$i<=5;$i++)

11: {

12: print “The Value i=”.$i.”<br/>”;

13: for($j=0;$j<=3;$j++)

14: {

15: print “value J=”.$j.”<br/>”;

16: }

17: }

18:

19: ?>

20:

21: </body>

22: </html>

ការប្រើប្រាស់ for statement ដើម្បី បង្ហាញ table ទៅកាន់ brower ។

Nesting Two for Loops

01: <!

02: Nesting loops

03: >

04: <html>

05: <head>

06: <title>Nesting Two for Loops</title>

07: </head>

08: <body>

09: <div>

10:

10: <?php

11:

12: print “<table border=\”1\”>\n”;

13: for ( $y=1; $y<=12; $y++ )

14: {

15: print “<tr>\n”;

16: for ( $x=1; $x<=12; $x++ )

17: {

18: print “\t<td>”;

19: print ($x*$y);

20: print “</td>\n”;

21: }

22: print “</tr>\n”;

23: }

24: print “</table>”;

25:

26: ?>

27:

28: </div>

29:

30: </body>

31: </html>

 

មេរៀនទី៤: អនុគមន៍ Function

មេរៀនទី៤: អនុគមន៍ Function

1.What is Functions ? Function គឺជាបន្ដុំនៃ block code ដែលអ្នកបង្កើត ហើយអនុញ្ញាតិ អោយអ្នកហៅ យកមកប្រើ នៅក្នុង script របស់អ្នក ។ នៅពេលដែលអ្នកហៅ function កូដ ដែលនៅ ខាង ក្នុងនឹងត្រូវអនុវត្ដន៍ ហើយអ្នកក៏អាច បញ្ជូនតំលៃទៅអោយ function ឬ ទទួលតំលៃពី function មកវិញ ។

1.1 Calling Functions .Function មានពីរប្រភេទគឺ Function ដែលមានស្រាប់ ភ្ជាប់មក ជាមួយនឹងភាសាកមវិធី និងFunction ដែលអ្នកបង្កើតឡើងដោយខ្លួនឯង ។ នៅក្នុងភាសា PHP មាន built-in function ជាច្រើនដែលផ្ដល់នូវភាពងាយស្រួលសំរាប់ការសរសេរកូដរបស់អ្នក ។

1.2 Defining a Function .អ្នកអាចបង្កើត function ដោយប្រើ function statement function function_name( $argument1, $argument2 )

{

//

}

ប្រសិនបើ function របស់អ្នកតំរូវអោយមាន argument ចាប់ពីពីរឡើងទៅ អ្នកត្រូវតែចែកវា ដោយប្រើប្រាស់សញ្ញា comma( , ) ដែលជាទូទៅ argument ទាំងនោះគឺជា variable ហើយតំលៃ របស់វានឹងត្រូវផ្ដល់អោយនៅពេលដែល function

ត្រូវបានហៅ ។

ឧទាហរណ៍ ១៦

Declaring a Function

<html>

<head>

<title>Declaring a Function</title>

</head>

<body>

<?php

function bigsum()

{

$sum=0;

for ($i=1; $i<=10; $i++ )

{

$sum+=$i; .

$str= $str.”$i+”;

}

echo substr($str,0,-1).”=$sum”;

}

bigsum();

?>

</body>

 

</html>

លទ្ធផលដែលបង្ហាញនៅលើ browser គឺជា string នៃតួរអក្សរ 1+2+3+…………+10 = 55ឧទាហរណ៍ខាងលើនេះគឺ ជាការបង្កើតនូវ function មួយឈេμាះថា bigsum()ដែលជា function មិនមាននូវ Arguments នោះទេ ។សំរាប់ឧទាហរណ៍ទី ២០ យើងនឹងបង្កើត function ដែលប្រើ ប្រាស់ argument ។

ឧទាហរណ៍ ២០

01: <html>

02: <head>

03: <title>Declaring a Function</title>

04: </head>

05: <body>

06

07: <?php

08:

09: function bigsum($count)

10: {

11: $sum=0;

12: for($i=1; $i<=$count; $i++ )

13: {

14: $sum+=$i;

15: $str= $str.”$i+”;

16: }

17: echo substr($str,0,-1).”=$sum”;

18: }

19:

20: bigsum(10);

21:

22: ?>

23:

24: </body>

25: </html>

1.2.1 Returning Values from User-Defined Functions នៅឧទាហរណ៍ខាងលើយើងទទួលបាននូវលទ្ធផលជា string នៅលើ browser ដោយការប្រើប្រាស់ bigsum() function ។ function របស់អ្ន្នកអាចធ្វើការផ្លាស់ប្ដូរតំលៃដែលអ្នកបានផ្ដល់អោយឬ មាន ពេលខ្លះអ្នកនឹងចង់អោយ function ផ្ដល់នូវតំលៃថីអោយអ្នក បន្ទាប់ពីអ្នកបានផ្ដល់តំលៃទៅឱៀវា។

Function មួយអាចទទួលបានតំលៃដោយការប្រើប្រាស់ នូវ returnstatement ជាមួយនឹងតំលៃដែលត្រូវបញ្ចូនត្រលប់

ទៅកាន់ function។ return បញ្ឈប់ប្រតិបត្ដិការរបស់ function ហើយ បញ្ជូនតំលៃត្រលប់ ទៅវិញនៅពេលដែល function

ត្រូវបានហៅមកប្រើ ។ខាងក្រោមគឺជាឧទាហរណ៍នៃការបង្កើត function ដែល return តំលៃពី ផលបូលចំនួនពីរតំលៃ ។

ឧទាហរណ៍ ២១

01: <html>

02: <head>

03: <title>A Function That Returns a Value</title>

04: </head>

05: <body>

06:

07: <?php

08

09: function addNums($num1,$num2)

10: {

11: $result = $num1 + $num2;

12: return $result;

13: }

14: print addNums(3,5);

15:

16: ?>

17: </body>

18: </html>

addNums() Function ត្រូវបានហៅយកមកប្រើប្រាស់ជាមួយនឹង argument ចំនួនពីរដែលជាតំលៃលេខ 3 និង លេខ 5

ដែលតំលៃទាំងនេះត្រូវបានរក្សាទុកនៅក្នុង variable $num1 និង $num2addNums function ធ្វើការគណនានូវផលបូកនៃត

ំលៃដែលរក្សាទុកនៅក្នុង variable ទាំងពីរហើយផ្ដល់ជាលទ្ធផលទៅអោយ variable $result ។អ្នកក៏អាច return តំលៃដោយការហៅ function ដទៃទៀតបានផងដែរ return ( another_function( $an_argument ) );

2. Variable Scope Variable ដែលប្រកាសនៅខាងក្នុង function គឺអាចប្រើប្រាស់បាន តែនៅ ខាងក្នុង function នោះប៉ុណ្ណោះ មានន័យថាមិនអាចប្រើប្រាស់ បាននៅខាងក្រៅ function ឬ នៅក្នុង function ដទៃទៀត ។

សំរាប់ project ធំៗវាអាចជួយអ្នកពីគ្រោះថា្នក់នៃការកែប្រែតំលៃដែលមាននៅក្នុង variableពេលដែលអ្នកប្រកាស

variable ពីរ ហើយមានឈោះដូចគ្នា និង ឋិតនៅក្នុង function ផ្សេងៗគ្នា ។

ខាងក្រោមគឺជាឧទហរណ៍ ស្ដីពីការបង្កើត variable មួយនៅក្នុង function ហើយព្យាយាមយកVariable នោះមកបង្ហាញលើ browser ពី ក្រៅ function ។

ចំណាំ ៖ Variableដែលបង្កើតនៅខាងក្នុង function មិនអាចប្រើប្រាស់ពីខាងក្រៅ function បាននោះទេ។

ឧទាហរណ៍ ២២ៈ

01: <html>

02: <head>

03: <title>Local Variable Unavailable Outside a Function</title>

04: </head>

05: <body>

06: <div>

07:

08: <?php

10:

11: function test()

12: {

13: $testvariable = “this is a test variable”;

14: }

15: print “test variable: $testvariable<br/>”;

16:

17: ?>

18: </div>

19 </body>

20: </html>

អ្នកនឹងបានឃើញនូវលទ្ធផលនៃឧទាហរណ៍ខាងលើ ដែលតំលៃរបស់ variable $testvariable មិនត្រូវបានបង្ហាញនោះទេ ពីព្រោះពុំមាន variable ណាមួយត្រូវបានបានបង្កើតនៅខាងក្រៅ functiontest() នោះទេ ។ គួរចំណាំថា ការយក variable

ដែលមិនមាន មកប្រើប្រាស់គឺមិនមានភាព error ឡើយ។ម្យ៉ាងវិញទៀត variable ដែលប្រកាសនៅខាងក្រៅ function

គឺមិនអាចយកមកប្រើក្នុង function ដោយស្វ័យប្រវត្ដិនោះទេ ។

2.1 Accessing Variables with the global Statement .

មានពេលខ្លះអ្នកប្រហែលជាត្រូវការប្រើប្រាស់ variable នៅក្នុង function របស់អ្នកដោយពុំតំរូវ អោយមានការបញ្ជូនតំលៃតាម argument នោះទេ ។ ខាងក្រោមគឺជាឧទាហរណ៍ដែលប្រើប្រាស់នូវ

global statement ដើម្បីប្រើប្រាស់នូវ variable ដែលប្រកាសខាងក្រៅ function ។

ឧទាហរណ៍ ២៣ៈ

01: <html>

02: <head>

03: <title>The global Statement</title>

04: </head>

05: <body>

06:

07: <?php

08:

09: $lottery=42;

10

11: function lotteryToday()

12: {

13: global $lottery;

14: print “Lottery today is $lottery<br />”;

15: }

16:

17: lotteryToday();

18: ?>

19: </body>

20: </html>

នៅបន្ទាត់ទី ១៣ នៃឧទាហរណ៍ទី២៣ យើងបានប្រើប្រាស់នូវ global ពីមុខ variable $lottery ដែលបានប្រកាសនៅក្នុង function lotteryToday() ដើម្បីសំដៅទៅកាន់ global variable $lottery ដែលបានប្រកាសនៅខាងក្រៅ function នៅបន្ទាត់ទី ០៩ ។

អ្នកត្រូវតែប្រើប្រាស់នូវ global statement នៅរាល់ function ដែលអ្នកចង់ប្រើប្រាស់នូវ global variable។ អ្នកគួរប្រុងប្រយ័ត្នផងដែរនៅពេលដែលអ្នកផ្ដល់តំលៃទៅអោយ variable $lottoery នៅក្នុង function ពីព្រោះ $lottery នឹងធ្វើការផ្លាស់ប្ដូរតំលៃរបស់ខ្លួនទាំងអស់នៅក្នុង script របស់អ្នក ។អ្នកក៏អាចប្រកាស variable ជាមួយ global statement បានច្រើនក្នុងពេលតែមួយ បានផងដែរ ដោយការចែកនូវ variable និមួយៗដោយសញ្ញា (,) comma។

ឧទាហរណ៍ ៖ global $var1, $var2, $var3;

 

មេរៀនទី៥: PHP- Array

មេរៀនទី៥:  PHP- Array

1. What Is an Array?

អ្នកក៏បានស្គាល់រួចមកហើយអំពី variable ដែលត្រូវគេប្រើដើម្បីផ្ទុកនូវតំលៃផ្សេងៗ ។ ដោយការប្រើប្រាស់ variable អ្នកក៏អាចបង្កើតជា script អោយប្រតិបត្ដិការ ឬ បង្ហាញជា ពត៌មានផ្សេងៗនៅរាល់ពេលដែលអ្នកតំណើរការវា ប៉ុន្ដែគួរអោយ

សោកស្ដាយ ដោយអ្នកអាច រក្សាទុកនូវតំលៃតែមួយប៉ុណ្ណោះក្នុងពេលតែមួយ និង ក្នុង variable មួយ ។

Array គឺជា variable ពិសេសដែលអនុញ្ញាតអោយអ្នក ផ្ទុកនូវតំលៃបានច្រើននៅក្នុង variable មួយ ។ រាល់តំលៃនិមួយៗត្រូវបានរក្សាទុកនៅក្នុង index របស់ array ដែលអាច ជាលេខ ឬ ជា តួអក្សរ ។ ជា default ធាតុរបស់ array ដែលជា index គឺចាប់ផ្ដើមពីលេខ ០ ។ ហេតុអ្វីបានជាត្រូវប្រើប្រាស់ array ?

ប្រសិនបើអ្នកមានតំលៃចំនួន ៥ ដែលត្រូវរក្សារទុក នោះអ្នកប្រាកដជាត្រូវបង្កើត variable ចំនួនប្រាំផងដែរArray គឺ flexible ព្រោះវាអាចផ្ទុកតំលៃបានពីរ ឬ ពីររយ តំលៃ ដោយពុំ មានការង្កើតនូវvariableថីទៀតហើយ array ក៏អាចអោយអ្នកធ្វើការជា

មួយតំលៃរបស់ វា បានយ៉ាងងាយ ដូចជា ការ loop ធាតុរបស់ array និមួយៗ ឬ តំរាបធាតុរបស់វាទៅលំដាប់នៃលេខរៀង ឬ ជាតួអក្សរ ទៅតាមការកំនត់នៅក្នុង system របស់អ្នក ។ ខាងក្រោមគឺជាការបង្ហាញនូវធាតុរបស់ users array ដែលមានធាតុទី៤ ជា index ទី៣ នៃ users ។

a

PHP ក៏បានផ្ដល់នូវលទ្ធភាពដើម្បីរៀបចំនូវ indexed របស់ array ដោយការប្រើប្រាស់ទាំង លេខ និង អក្សរផងដែរ។

2. Creating Arrays . អ្នកអាចបង្កើតនូវ array variable ដោយប្រេិវិធីពីរយ៉ាងគឺ ការប្រើប្រាស់ array() construct ឬ ការប្រើប្រាស់នូវសញ្ញា square brackets ( [ ] ) ។ 2.1 Defining Arrays with the array() Construct.

array()construct វាមានសារៈប្រយោជន៍នៅពេលដែលអ្នកចង់ផ្ដល់តំលៃច្រើនទៅអោយ array ក្នុងពេលតែមួយ។

ខាងក្រោមគឺឧទាហរណ៍នៃការបង្កើត array មួយដែលមានឈោះថា $users ហើយយើងបានផ្ដល់តំលៃជា string ចំនួនបួន

តំលៃទៅអោយវា ។

$users = array (“Sok”, “Sao”, “Mata”, “Mesa”);

ឥឡូវនេះអ្នកអាចយកធាតុរបស់ $users មកប្រើប្រាស់ដោយការប្រើប្រាស់ index របស់ array

print $users[2];

លទ្ធផលនៃឧទាហរណ៍ខាងលើនឹង បង្ហាញជាអក្សរ Mata ដែល index របស់វាហើយត្រូវបានដាក់នៅចន្លោះ square brackets ( [2] ) បន្ទាប់ពីឈោះរបស់ array ( $users ) ។

2.2 Defining or Adding to Arrays with the Array Identifier.

អ្នកអាចបង្កើត array ថី ឬ បន្ថែមតំលៃទៅអោយ array បានដោយការប្រើប្រាស់នូវ array Identifier

array identifier គឺជាបន្ដុំនៃ squre brackets និង index របស់វា ជាលេខ ឬ ជាឈោះ។ខាងក្រោមជា ឧទាហរណ៍នៃការបង្កើត $users array ដោយប្រើវីធីសាស្ដ្រមួយផ្សេងទៀត ។

$users[] = ” Sok”;

$users[] = ” Sao”;

$users[] = ” Dara”;

$users[] = ” Mesa”;

ឧទាហរណ៍ខាងលើមិនទាមទារអោយអ្នកដាក់នូវតំលៃលេខដែលជា index នៅចន្លោះ square Brackets នោះឡើយ ព្រោះ PHP នឹងផ្ដល់តំលៃ index ដោយស្វ័យប្រវត្ដិទៅអោយ array ។ ម្យ៉ាងវិញទៀតអ្នកក៏អាចដាក់នូវតំលៃជា index របស់ array បានផងដែរ ប៉ុន្ដែមិន មានការគាំទ្រ អោយធ្វើបែបនេះនោះទេសូមពិនិត្យមើល ការសរសេរកូដខាងក្រោមៈ

$users[0] = “Phanit”; .

$users[200] = “Ratana”;

Array ខាងលើមានធាតុត្រឹមតែពីរប៉ុណ្ណោះ ប៉ុន្ដែ index ចុងក្រោយរបស់វាគឺជា index ទី២០០ PHP នឹងមិនកំនត

តំលៃធាតុទៅអោយ index ដែលនៅចន្លោះ នោះឡើយ ដែលធ្វើអោយ មានការភាន់ច្រឡំ នៅពេល ដែលចង់ព្យាយាមយកធាតុ ដែលមានក្នុង array នោះមកប្រើ ខណៈពេលដែលអ្នកចង់ប្រើនូវ ធាតុរបស់ វា ណាមួយទៅតាមចិត្ដរបស់អ្នក។ សំរាប់ការបង្កើត array អ្នកអាចប្រើ នូវ array() contstruct រួច ប្រើនូវ array identifier ដើម្បីបន្ថែមនូវធាតុថμីទៀតក៏បាន ។

សូមពិនិត្យឧទាហរណ៍ខាងក្រោម ៖

$users = array (“Sok”, “Sao”, “Mata”, “Mesa”); .

$users[] = “Menear”; .

3. Populating an Array with array_fill() .ប្រសិនបើអ្នកចង់ដាក់នូវតំលៃជា default នៅចន្លោះនៃ index array នោះអ្នកប្រហែលជាប្រើនូវ array() function ដូចខាងក្រោម ។

$member = array (“cambodia”, “cambodia”, “cambodia”,”cambodia “); .ឬ អ្នកអាចប្រើប្រាស់នូវ array ម្យ៉ាងទៀតដូចជា

$member[] = “Cambodia”; .

$member[] = “Cambodia”; .

$member[] = “Cambodia”;.

$member[] = “Cambodia”; .

PHP បានផ្ដល់នូវ function ដើម្បីដោះស្រាយនូវបញ្ហានេះដោយប្រើនូវ array_fill() function ដែលតំរូវអោយអ្នកផ្ដល់នូវ arguments ចំនួន៣សំរាប់ function នេះ ទី១គឺជាតំលៃ index ដែលចាប់ផ្ដើម

ទីពីគឺជា ចំនួនធាតុដែលអ្នកចង់បាន ហើយ argument ទី៣ គឺជាតំលៃដែលអ្នកត្រូវផ្ដល់អោយជាធាតុរបស់Array ។

ដោយការប្រើប្រាស់នូវ array_fill() function អ្នកអាចសរសេរនូវបំណែកកូដខាងលើឡើងវិញ ដូចខាងក្រោម ៖

$member = array_fill( 0, 4, “Cambodia” ); .

ឧទាហរណ៍ៈ ២៤

<?

$member = array_fill(0,4,”Cambodia”);

$member[] = “Malaysia”;

print $users[2];

?>

4. Associative Arrays .

Assosciate array គឺជា array ដែលប្រើប្រាស់នូវ index ជាអក្សរនៅ ចន្លោះ squqre braketsអ្នកអាចបង្កើតនូវ assosciate array ដោយ array construct( array() )ឬ array identifier (array[])

ឧទាហរណ៍

$character = array(“name” => “Sok”, .

“occupation” => “Student”,

“age” => 12,

“Adr” => “Phnom Pehn” );

ឥឡូវនេះយើងអាចប្រើប្រាស់នូវធាតុ array របស់ $character ដូចខាងក្រោមៈ

print $character[‘occupation’]; .

keys ដែលនៅក្នុង assosciate array គឺជា string ដូច្នេះ engine នឹងបង្ហាញរបាយការណ៍ error ប្រសិនបើ keys នៃ array មិនមាន quoted ។ ដូច្នេះអ្នកគួរតែប្រើនូវ quotation marks នៅពេលដែលអ្នកប្រើkeys នៃ array ជា string ។

print $character[occupation]; // មិនត្រឹមត្រូវ

print $character[“occupation”]; // ត្រឹមត្រូវ

ប្រសិនបើ key ត្រូវផ្ទុកនៅក្នុង variable នោះ អ្នកមិនចាំបាច់ត្រូវប្រើ quotation mark នោះឡើយ ។

$occ = “occupation”; .

print $character[$occ]; // ត្រឹមត្រូវ

4.1 Directly Defining or Adding to an Associative Array . អ្នកអាចបង្កើត ឬ បន្ថែម ឈោះ/តំលៃ ទៅអោយ associate array ដោយការផ្ដល់នូវតំលៃទៅអោយឈោះនៃធាតុរបស់ array ដួចខាងក្រោម ។

$character[“name”] = “sok”; .

$character[“occupation”] = “Programmer”; .

$character[“age”] = 30; .

$character[“address”] = “Phnom Penh”;.

5. Getting the Size of an Array .

count() function ផ្ដល់នូវចំនួនធាតុរបស់ array ដែលមាន បំណែកកូដខាងក្រោមយើងបានប្រើប្រាស់ នូវ count()function ដើម្បីយកធាតុចុងក្រោយនៃ array $users មកប្រើ ។

$users = array (“Sambath”, “Ratana”, “Davy”, “Ryda” ); .

print $users[count($users)-1]; .

ឧទាហរណ៍ ២៦

<html>

<body>

<head>

<title>Getting size of array</title>

<body>

<h2>Getting size of array</h2>

<?php

$users[]=”Sok”;

$users[]=”Som”;

$users[]=”Mom”;

$users[]=”Mab”;

print “<br/>”.count($users);

?>

</body>

</html>

ចំណាំ ៖ count() ផ្ដល់តំលៃនៃចំនួនសរុបរបស់ធាតុ array មិនមែនជាតំលៃនៃ index ចុងក្រោយនោះទេ ។

ឧទាហរណ៍ខាងក្រោមនេះគឺការបង្កើត array ដោយការផ្ដល់នូវ index ទៅអោយ array ដោយខ្លួនអ្នក

$users[35] =”Sok”;

$users[52] =”Som”;

$users[890] =”Mom”;

$users[52]=”Mab”;

count() នៅតែផ្ដល់នូវចំនួនសរុបនៃធាតុ array ដដែល គឺមានចំនួន ៤ ធាតុ ។ ហើយអ្នកក៏អាចទទួលនូវ

ធាតុរបស់ array ចុងក្រោយបានដោយការប្រើនូវ end() function ដែលទាមទារត្រឹមតែ argument

មួយ ប៉ុណ្ណោះ ។ ឧទាហរណ៍ print end($users);

6. Looping Through an Array . foreach statement គឺជាវិធីសាស្ដ្រមួយយ៉ាងប្រសើរដើម្បី loop រាល់ធាតុនិមួយៗដែលមាននៅ ក្នុង array ។

អ្នកអាចប្រើប្រាស់នូវ foreach statement ដូចខាងក្រោម ៖

foreach( $arr as $temp )

{

//………….

}.

$arr គឺជា array ដែលអ្នកត្រូវ loop ហើយ $temp គឺជា variableដែលអ្នកនឹងត្រូវរក្សារទុកជាបណ្ដោះអាសន្ន នូវធាតុនិមួយៗ ក្នុងគ្រា loop ។ កូដខាងក្រោមគឺជាការបង្កើត array មួយហើយយើង ប្រើ foreach statement ដើម្បីយកធាតុនិមួយៗមក បង្ហាញលើ browser ។

ឧទាហរណ៍ ២៦

<html>

<head>

<title>Looping throught array</title>

</head>

<body>

<h2>Looping througth array</h2>

<?php

$users = array (“Sok”, “Som”, “Mab”, “Mab” );

foreach ( $users as $val )

{

print “$val<br />”;

}

?>

</body>

</html>

ឧទាហរណ៍ ២៧

<html>

<head>

<title>Looping throught array</title>

</head>

<body>

<h2>Looping througth array</h2>

<?php

$users[]=”Sok”;

$users[]=”Som”;

$users[]=”Mom”;

$users[]=”Mab”;

foreach( $user as $val )

{

print “$val<br/>

}

?>

</body>

</html>

6.1 Looping Through an Associative Array .

ដើម្បីប្រើប្រាស់នូវ foreach statement ជាមួយ assosciat array ទាំង keys និង values អ្នកអាចប្រើប្រាស់ជាមួយនឹង foreach statement ដូចខាងក្រោម ៖

foreach( $arr as $key=>$value ) .

{

//…..

}

$arr គឺជា array ដែលយើងនឹងត្រូវ loop ហើយ $key គឺជា variable ដែលផ្ទុកនូវ key និមួយៗជាបណ្ដោះអាសន្ន ហើយ $val គឺជា variable ដែលផ្ទុកនូវ value របស់ array និមួយៗជាបណ្ដោះអាសន្នក្នុងគ្រា loop ម្ដងៗ ។

ឧទហរណ៍ ២៨

01: <html>

02: <head>

03: <title>Looping thought associate array</title>

04: </head>

05: <body>

06: <h2> Looping thought associate array</h2>

07:

08: <?php

09:

10: $character = array (“name” => “Sao”,

11: “occupation” => “Student”,

12: “age” => 12,

13: “Adr” => “Phnom Pehn”);

14:

15: foreach ( $character as $key=>$val )

16: {

17: print “$key = $val<br />”;

18: }

19:

20: ?>

21:

22: </body>

23: </html>

Arrayដែលបានបង្កើតនៅបន្ទាត់ទី១១ ហើយប្រើប្រាស់នូវ foreach statement នៅបន្ទាត់ទី ១៥

ដើម្បី loop នូវធាតុដែលជាតំលៃ និង key របស់វា ។ រាល់ key និមួយត្រូវបានផ្ទុកនៅក្នុង variable ដែល ផ្ដល់ឈេμាះអោយថា $key និង រាល់ value និមួយៗត្រូវបានផ្ទុកនៅក្នុង variable ដែលផ្ដល់ឈេμាះថា $val

ហើយត្រូវបានបង្ហាញជាលទ្ធផលទៅកាន់ browser នៅបន្ទាត់ទី ១៧ ។

a

7. Joining Two Arrays with array_merge() .

array_merge() មានតួនាទីផ្គុំនូវធាតុរបស់ array ពីរ ឬ array ច្រើនបញ្ជូលគ្នា រួចផ្ដល់ជា Array ថμីមួយទៀតដែលជាបន្ដុំនៃធាតុ array ទាំងអស់នោះ។ ឧទាហរណ៍ខាងក្រោមគឺជា ឧទាហរណ៍នៃ ការបង្កើតនូវ array ពីរ គឺ array $arr1 និង array $arr2 ហើយធ្វើការបញ្ចូលគ្នារវាងធាតុនៃ array ទាំងពីររួចផ្ដល់តំលៃទាំងនោះទៅអោយ $arr3 បន្ទាប់មក loop រាល់ធាតុដែលមាននៅក្នុង $arr3 ។

ឧទាហរណ៍ ២៩

array_merge.php .

<html>

<head>

<title>Joining Two array with array_merge()</title>

</head>

<body>

<h2>Using array_merge()</h2>

<?php

$arr1 = array(“a”, “b”, “c”);

$arr2 = array(1,2,3);

$arr3 = array_merge( $arr1,$arr2 );

foreach ( $arr3 as $val )

{

print “$val<br />”;

}

?>

</body>

</html>

$arr3 array ផ្ទុកនូវរាល់ធាតុដែលមាននៅក្នុង $arr1 និង $arr2 array ។ foreach statement

នឹងបង្ហាញនូវបន្ដុំនៃធាតុ array ( ‘a’, ‘b’, ‘c’, 1, 2, 3 ) ជាមួយនឹង <br/> នៅចន្លោះធាតុនិមួយៗ ។

8. Adding Multiple Variables to an Array .

array_push()ទទួលយកនូវ array និង តំលៃផ្សេងពី parameters ដែលតំលៃទាំងនោះ គឺជាធាតុ ដែលនឹងត្រូវបន្ថែមទៅអោយ array ។ array_push() function មិនមានលក្ខណៈដូច array_merge() នោះទេ ពីព្រោះ array ដែលបញ្ជូនទៅជា argument ដំបូងនឹងត្រូវប្រែប្រួល ហើយ array_push() នឹង ផ្ដល់មកវិញនូវតំលៃសរុបទាំងអស

់ដែលមាននៅក្នុង array នោះវិញ ។

ឧទាហរណ៍ ៣០

01: <html>

02: <head><title>Adding Muliple variables to an Array</title></head>

04: <body>

05:

06: <?php

07:

08: $arr1 = array (“a”, “b”, “c”);

09: $total = array_push( $arr1,1,2,3);

10: print “There are $total elements in \$arr1 “;

11:

12: foreach ( $arr1 as $val )

13: {

14: print “$val<br/>”;

15: }

16:

17: ?>

18:

19: </body>

20: </html>

ឥឡូវនេះ $arr1 បានបន្ថែមនូវធាតុជា integer ចំនួនបីធាតុ ដែលបានមកពីការប្រើប្រាស់នូវ array_push() function ដូច្នេះ $arr1 ផ្ទុកនូវតំលៃសរុបចំនួន ៦ ធាតុហើយត្រូវបាន បង្ហាញនូវ ធាតុនិមួយៗទៅកាន់ browser ដោយកូដដែលមាននៅក្នុង foreach statement ។

ចំណាំៈ យើងបានប្រើនូវ backslash ពេលដែល print ជា string “——\$arr1” នៅបន្ទាត់ទី ១០

ប្រសិនបើអ្នកប្រើនូវ និមិត្ដសញ្ញានៅពីមុខពាក្យ ឬ ឃ្លាណាមួយនោះ PHP នឹងបញ្ចូលជាតំលៃទៅ អោយ ទៅតាមឈោះ variable ។ ឧទាហរណ៍ ខាងលើយើងចង់បង្ហាញនូវ string ‘$arr1’ ដែលមិនមែនជា តំលៃរបស់ variable នោះទេ ដូច្នេះដើម្បី print នូវ special character ($) យើងត្រូវតែប្រើនូវ backslash (\)

នៅពីមុខ ។ ប្រសិនបើអ្នកចង់បន្ថែមធាតុទៅអោយ array ហើយជាធាតុដំបូងទៀតនោះ អ្នកអាចប្រើប្រាស់ជាមួយនឹង array_unsift() ។

ឧទាហរណ៍ ៣១

<html>

<head>

<title>Using array_unsift() </title>

</head>

<body>

<h2>Using array_unsift()</h2>

<?php

$arr1 = array (“a”, “b”, “c”);

$total = array_unshift( $arr1, 1, 2, 3 );

print “There are $total elements in \$arr1 “;

foreach ( $arr1 as $val )

{

print “$val<br/>”;

}

:

?>

</body>

</html>

ឥឡូវនេះ $arr1 array ផ្ទុកនូវតំលៃ 1, 2, 3, “a”, “b”, “c” ។

9. Removing the First Element of an Array with array_shift() .

array_shift() មានតួនាទីយកចេញនូវធាតុទីមួយនៃ array ។សូមពិនិត្យ ឧទាហរណ៍ខាងក្រោមៈ

ឧទាហរណ៍ ៣២

<html>

<head>

<title>Remove first array element with array_shift()</title>

</head>

<body>

<h2>Using array_shift()</h2>

<?php

$user=array(“M”,”U”,”T”,”H”);

$total=count($user);

echo “Before use array_shift() threre are $total element<br/>”;

foreach($user as $val)

{

echo “$val <br/>”;

}

array_shift($user);

$total=count($user);

echo “after use array_shift() there are $total element</br>”;

foreach($user as $val)

{

print “$val <br/>”;

}

?>>

a

</body>

</html>

10. Slicing Arrays with array_slice() .

array_slice() អនុញ្ញាតអោយអ្នកទាញយកចំនួននៃធាតុ array ដែលទាមទារអោយអ្នកផ្ដល់នូវ

argument ចំនួនបី ទីមួយគឺជា array variable ទី២ជាទីតាំដែលត្រូវចាប់ផ្ដើមយក និងទីបី គឺជា ចំនួន ធាតុ របស់ array ដែលត្រូវការហើយ argument ទីបីនេះគឺ (optional) ប្រសិនបើអ្នក មិន ប្រើនូវ argument នេះទេ array_slice() និងចាប់យកនូវធាតុទាំងអស់នៃ array ចាប់ពីទីតាំង ដែល អ្នកបានផ្ដល់ជាតំលៃនៅ ក្នុង argument ទី១មក។

ឧទាហរណ៍ ៣៣

<html>

<head><title>Using array_slice()</title>

</head>

<body>

<h2>Using array_slice()</h2>

<?php

$first = array (“a”, “b”, “c”, “d”, “e”, “f”);

$second = array_slice($first, 2, 3);

foreach ( $second as $val )

{

print “$val<br />”;

}

?>

</body>

</html>

កូដដែលបង្កើតនៅឧទាហរណ៍ ៣៣ នឹងបង្ហាញនូវលទ្ធផល ‘c’, ‘d’, និង ‘e’ ដែលជាធាតុរបស់

$secend បន្ទាប់ពីប្រើនូវ array_slice() ដោយយកធាតុទាំងអស់របស់ $first ។

11. Sorting Arrays .

11.1 Sorting Numerically Indexed Arrays with sort() .sort() ទទួលយកនូវ argument មួយដែលជា array ហើយធ្វើការតំរៀបវាទៅតាមលំដាប់នៃតួ អក្សរឬពីតូចទៅធំ ឧទាហរណ៍ ៣៤ គឺជាការបង្កើត array ដោយផ្ដល់នូវតំលៃជា string ទៅអោយបន្ទាប់មកយើងប្រើ sort() ដើម្បីតំរៀបធាតុទាំងនោះពី A-Z ឬ ពីតូចទៅធំ រួចបង្ហាញជាលទ្ធផលទៅកាន់ Browser ។

សូមពិនិត្យក្នុងឧទាហរណ៍ ៣៤

<html>

<head><title> sorting array with sort() function</title>

</head>

<body>

<h2>Using sort() function </h2>

<?php

$s_array = array (“Bayon”, “Taprom”, “Angkor”, “Presh vihear”);

sort( $s_array );

foreach ( $s_array as $var )

{

print “$var<br />”;

}

?>

</body>

</html>

អ្នកក៏អាចផ្លាស់ប្ដូរនូវលំដាប់នៃការតំរៀបធាតុរបស់ array ពីលំដាប់ តូចទៅធំ ឬ ពីលំដាប់ធំ ទៅតូចវិញដោយការប្រើនូវ rsort()។ សូមកុំព្យាយាមប្រើ sort()ឬ rsort() ជាមួយ associate array ពីព្រោះ វានឹងធ្វើអោយអ្នកបាត់បង់នូវ key របស់ array ។

11.2 Sorting an Associative Array by Value with asort() .

assort() ទទួលយក argument ដែលជាប្រភេទ associate array ហើយធ្វើការតំរៀបតំលៃ របស់ array នោះពី A-Z ឬ ជាតំលៃលេខ ពីតូចទៅធំ អាស្រ័យទៅលើប្រភេទនៃតំលៃ ។

ឧទាហរណ៍ ៣៥

<html>

<head><title> sorting an associate array by value with assort() </title>

<head>

<body>

<h2>sorting an associate array by value with assort()</h2>

<?php

$first = array(“Cocacola”=>3,”Pepsi”=>2,”Fanta”=>1);

echo “<b>an associate Array before use asort </b> <br/>”;

foreach ( $first as $key => $val )

{

print “$key = $val<br />”;

}

echo “<b>an associate Array after asort </b><br/>”;

asort( $first );

foreach ( $first as $key => $val )

{

print “$key = $val<br />”;

}

?>

</body>

<html>

សំរាប់ការប្ដូរលំដាប់នៃការតំរៀបពីតូចទៅធំ ឬ ពីធំទៅតូច អ្នកអាចប្រើរនូវ arsort()

a
11.3 Sorting an Associative Array by Key with ksort()
.

ksort() ទទួលនូវ argument ដែលជា associate array ហើយធ្វើការតំរៀបតំលៃ របស់វា និមួយៗទៅតាមលំដាប់ពី A-Z ឬ ជាលេខ ពីធំទៅតូច ដោយអាស្រ័យទៅលើ key របស់ array នោះ ។

ឧទាហរណ៍ ៣៦

<html>

<head><title> sorting an associate array by key with assort() </title>

<head>

<body>

<h2>sorting an associate array by key with kssort()</h2>

<?php

$first = array(“Cocacola”=>3,”Pepsi”=>2,”Fanta”=>1);

echo “<b>an associate Array before use ksort </b> <br/>”;

foreach ( $first as $key => $val )

{

print “$key = $val<br />”;

}

echo “<b>an associate Array after use ksort </b><br/>”;

ksort( $first );

foreach ( $first as $key => $val )

{

print “$key = $val<br />”;

}

?>

</body>

<html>

 

 

មេរៀនទី៦: PHP- Object

មេរៀនទី៦: PHP- Object

1. What Is an Object ?

Object គឺជា បណ្ដុំនៃ variables និង functions ដែលឋិតនៅក្នុង template ពិសេសមួយដែល គេហៅថា class ។ object លាក់នូវតំណើរការដែលមាននៅខាងក្នុង ពីការប្រើប្រាស់វា ដោយផ្ដល់ជា Interface សំរាប់អោយអ្នកបញ្ជូននូវ បញ្ជារដើម្បីទទួលពត៌មានត្រលប់មកវិញ ។ interface ទាំងនោះ គឺជា Function ពិសេសដែលគេអោយឈោះ methods ហើយរាល់ methods ទាំងអស់នៃ object គឺត្រូវតែ Access ទៅកាន់ special variable ហៅថា properties។ គុណសម្បត្ដិរបស់ object-oriented code គឺផ្ដល់នូវការកាត់បន្ថយការសរសេរកូដ ដដែលៗពីព្រោះ class ដែលបាន

បង្កើត ជា object មានភាពងាយស្រួលយកទៅប្រើប្រាស់ពី project មួយទៅកាន់Project មួយ ផ្សេងទៀត ។ បន្ថែមពីនេះវាមានលទ្ធភាពបង្កើត នូវ child classes ដែល inherit ហើយនឹង Override នូវលក្ខណៈផ្សេងៗពី parents class ។

2. Creating an Object

ដើម្បីបង្កើត object មួយអ្នកត្រូវតែរៀបចំនូវ template មួយដើម្បីអោយវាអាច instantiated ដែល template នេះគឺជា class នៅក្នុងភាសា PHP ដើម្បីប្រកាស class មួយអ្នកត្រូវតែប្រើ class Keyword ។

class Person

{

// a very minimal class

}

Person class គឺជាមូលដ្ឋានដ៏សំខាន់មួយដែលអ្នកអាច instantiate រាល់តំលៃ និមួយៗពី PersonObject ។ ដើម្បីបង្កើត instance មួយនៃ object អ្នកត្រូវតែប្រើ new statement ។

$obj1 = new Person(); .

$obj2 = new Person(); .

print “\$obj1 is an “.gettype($obj1).”<br />”; .

print “\$obj2 is an “.gettype($obj2).”<br />”; .

អ្នកអាច test នូវ $obj1 និង $obj2 ជាមួយនឹង gettype() function ។ gettype function ទទួលតំលៃVariable និមួយៗហើយផ្ដល់ជា string មកវិញដែលប្រាប់អ្នកអំពីអ្វីដែលអ្នកកំពុងតែធ្វើការជាមួយ ។

3. Object Properties

Object ដែល access ទៅកាន់ special variable ត្រូវបានគេហៅថា properties ។ អ្នកអាច ប្រកាស នូវ special variable ទាំងនោះបាននៅគ្រប់ទីកន្លែងទាំងអស់នៃ class ប៉ុន្ដែដើម្បីអោយ មានភាពងាយស្រួលអ្នកគួរតែប្រកាស់វានៅខាងលើ ។ សំរាប់ property មួយវាអាចជា value ឬ ជា array ឬ ជាObject ផ្សេងៗ ។

class Person .

{

var $name = “Vichet”; .

}

យើងបាន declared នូវ variable ជាមួយនឹង var keyword ដែលនេះគឺជាវិធីសាស្ដ្រ តែមួយ គត់ដើម្បី declare នូវ property មួយនៅក្នុងភាសា PHP 4 យើងនឹងឃើញពីលក្ខណៈបន្ថែមរបស់ PHP 5 នៅឧទាហរណ៍ក្រោយៗទៀត ។ ដូច្នេះប្រសិនបើអ្នកចង់សរសេរកូដអោយ compatible ជាមួយ PHP 4 នោះ អ្នកត្រូវតែប្រើ var keyword។ ឥឡូវនេះ Person objet ដែលបានបង្កើត គឺមាន ផ្ទុកនូវ property មួយ ដែលអោយឈោះថា $name ជាមួយនឹងតំលៃរបស់វាគឺ “Vichet” ។ អ្នកអាច access នូវ property នេះ ពីខាងក្រៅ object និងធ្វើការផ្លាស់ប្ដូរ តំលៃរបស់វាដោយ ប្រើឧទាហរណ៍ ៣៧ ។

<?

class Person >

{

var $name = “Vichet”; >

}

$obj1 = new Person(); >

$obj2 = new Person(); >

$obj1->name = “Soporn”; >

print “$obj1->name<br />”; >

print “$obj2->name<br />”; >

?>

( -> ) operator នេះអនុញ្ញាតអោយអ្នកធ្វើការ access ឬ ផ្លាស់ប្ដូរនូវតំលៃរបស់ properties នៃObject ។ យើងបានផ្ដល់នូវតំលៃ “Soporn” ទៅអោយ $name property តាមរយៈ $obj1->name ។

4. Object Methods . Method គឺជា function ដែល defined នៅក្នុង class ។ គ្រប់ object ដែលបាន instantiatedពី class តែងតែមាន method‟s ជានិច្ច យើងនឹងបន្ថែមនូវ method មួយទៅអោយ Person class នៅ

ឧទាហរណ៍ ៣៨ ។

01: <?php

02:

03: class Person

04: {

05: var $name = “Vichet”;

06:

07: function getName()

08: {

09: return “Ratana”;

10: }

11:

12: }

13:

14: $person = new Person();

15: print $person->getName();

16: // outputs “Ratana”

17: ?>

ដូចដែលអ្នកបានជួបប្រទះមកហើយអំពី method នៃឧទាហរណ៍ ៣៧ ដែលមើលទៅវាមានលក្ខណៈ ដូចគ្នាទៅនឹង function ធមμតាដែរ ។ អ្នកអាច call object method ដោយការប្រើប្រាស់និមិត្ដ សញ្ញា ( -> )។ method ដែលបាន access ទៅកាន់ member variables នៃ class ខាងលើបាន return នូវ string “Ratana” ដែលនេះមិនមែនជាការអនុវត្ដន៍ដែលត្រឹមត្រូវ នោះទេ method គួរតែ return តំលៃដែល copy ពី $name property នឹង មិនមែនជា string literal។ អ្នកក៏បានស្គាល់ រួច មកហើយអំពីការaccess a property ពីខាងក្រៅ object ប៉ុន្ដែតើត្រូវធ្វើយ៉ាងណាដើម្បី refer វានៅខាងក្នុង class ខ្លួនឯង? សូមពិនិត្យមើលឧទាហរណ៍ ៣៩ ។

5. Accessing a Property from Within a Method .

ឧទាហរណ៍ ៣៩

01: <html>

02: <head><titile>Accessing a property from within a method</title>

03: </head>

04: <body>

05: <h2>Accessing a property from within a method</h2>

06:

07: <?php

08:

09: class Person

10: {

11: var $name = “Thary”;

12:

13: function getName()

14: {

15: return $this->name;

16: }

17: }

18:

19: $person = new Person();

20: $person->name = “Bopha”;

21: print $person->getName();

22: //outputs “Bopha”

23: ?>

24: </body>

25: </html>

Class ដែលបានបង្កើតក្នុងឧទាហរណ៍ ៣៩ យើងបានប្រើប្រាស់នូវ special variable $this ដើម្បី refer ទៅកាន់ current instantiated object នៅបន្ទាត់ទី ១៥ គឺ $name ។ object ដែល refer ទៅ កាន់ ខ្លួនឯងត្រូវតែប្រើ $this variable ភ្ជាប់ជាមួយសញ្ញា ( -> ) ដោយការប្រើវិធីនេះអ្នកអាច accessរាល់ property ឬ method ដែលឋិតនៅក្នុង class ខ្លួនឯង។ អ្នកអាចគិតថាចង់អោយ object មាននូវតំលៃនៃ $name property ផ្សេងៗគ្នា ដោយអ្នកអាចធ្វើការរៀបចំនូវតំលៃរបស់ $name property ដូចដែលបានអនុវត្ដន៍នៅក្នុងឧទាហរណ៍ ៣៩ ឬ អ្នកអាចបង្កើតជាmethod សំរាប់ធ្វើការជាមួយវាដូចមានបង្ហាញក្នុង ឧទាហរណ៍ ៤០ ។

6. Changing the Value of a Property from Within a Method .

ឧទាហរណ៍ ៤០

01: <html>

02: <body>

03: <head><title>Changing the value of a property from within a method</tile>

04: </head>

05: <body>

06: <h2>Changing the value of a property from within a method</h2>

07:

08: <?php

09:

10: class Person

11: {

12: var $name = “tepy”;

13:

14: function setName( $n )

15: {

16: $this->name = $n;

17: }

18:

19: function getName()

20: {

21: return $this->name;

22: }

23: }

24:

25: $person = new Person();

26: $person->setName(“darya”);

27: print $person->getName();

28: // outputs “darya”

29:

30: ?>

31:

32: </body>

33: </html>

$name propertyនៃ object ចាប់ផ្ដើមដោយតំលៃ string “tepy”នៅបន្ទាត់ទី១២ ប៉ុន្ដែបន្ទាប់ពី setName() method ត្រូវបានហៅនៅបន្ទាត់ទី 26 តំលៃរបស់វាត្រូវបានប្ដូរទៅជា “darya” វិញ ។ Object គឺមានលទ្ធភាពផ្លាស់ប្ដូរនូវ property របស់ខ្លួនឯងបាន ហើយសំរាប់ការបញ្ជូននូវ arguments ទៅកាន់ method វិញគឺអ្នកអាចប្រើនូវវិធី ដូចដែលអ្នកអនុវត្ដន៍វាជាមួយ function ធមតាដែរ ។

7. Object Constructors . នៅឧទាហរណ៍មុនយើងបានប្រើប្រាស់ method មួយឈោះថា setName() ដើម្បីធ្វើការផ្លាស់ប្ដូរតំលៃរបស់ $name property ម្យ៉ាងវិញទៀត ការផ្ដល់នូវតំលៃ តំបូងសំរាប់ $name property នៅក្នុង Class គឺ hard-code ។var $name = “tepy”; . ប្រសិនបើយើងគិតថា $name property ផ្ទុកនូវតំលៃផ្សេងៗគ្នា រាល់ពេលដែល instance នៃ Person class យើងអាចធ្វើអោយកាន់តែប្រសើរជាងមុនដោយការ set $name property នៅពេលដែល Object ត្រូវបាន initialize។ យើងអាចប្រើប្រាស់ special function ដែលគេ អោយឈោះថា constructor ដើម្បី set properties និងបំពេញការងារផ្សេងៗ ទៅតាម តំរូវការ នៃការងារ។ constructor គឺត្រូវហៅដោយ ស្វ័យប្រវត្ដិនៅពេលដែល object ត្រូវបាន instantiated ដោយការប្រើប្រាស់ new keyword ។

អ្នកអាចបង្កើតនូវ constructor តាមវិធីសាស្ដ្រពីរយ៉ាង ទី១ គឺ constructor ដែលជា function មានឈោះដូច class ។ ឧទាហរណ៍ ៤១ នឹងបន្ថែមនូវ constructor សាមញ្ញមួយទៅអោយ Person Class ដែលកូដខាងក្រោមនេះប្រើប្រាស់បានសំរាប់តែ PHP 5 ប៉ុណ្ណោះ ។

ឧទាហរណ៍ ៤១ A Class with a Constructor

01: <html>

02: <head>

03: <title>A Class with a Construct</title>

04: </head>

05: <body>

06: <h2>A Class with a Construct</h2>

07:

08: <?php

09:

10: class Person

11: {

12: var $name;

13:

14: function Person($name=”tepy”)

15: {

16: $this->name = $name;

17: }

18: function setName( $n)

19: {

20: $this->name = $n;

21: }

22:

23: function getName()

24: {

25: return $this->name;

26: }

27: }

28:

29: $person = new Person(“darya”);

30: print $person->getName ();

31: // outputs “Darya”

32:

33: ?>

34:

35: </body>

36: </html>

Person() constructor method បន្ទាត់ទី14គឺត្រូវបានហៅដោយស្វ័យប្រវត្ដិនៅពេលដែលយើងInstantiate នូវ Person object បន្ទាត់ទី២៩ យើងក៏បានរៀបចំនូវតំលៃ default មួយជា string “tepy” ផ្ដល់ទៅអោយ parameter ផងដែរ វាគឺជាការជំនួសអោយ ខណៈដែលយើងមិនបានផ្ដល់ជា argument នៅពេលដែលយើងបង្កើត Object។ PHP 5 បានបង្ហាញនូវ syntax ថីមួយដើម្បីបង្កើត constructor methods ដោយជំនួស អោយ ការប្រើប្រាស់នូវ function ដែលមានឈោះដូច class មកជាការប្រើ special syntax ថីគឺ__construct()ដូច្នេះយើងអាចធ្វើការផ្លាស់ប្ដូរបន្ទាត់ទី៥នៃ

ឧទាហរណ៍ខាងលើ មកប្រើនូវ syntax ថដោយធ្វើការជំនួសនូវ function Person() មកប្រើ __construct() វិញ។

function __construct( $name=”tepy”) .

{

………….

}

8. Limiting Access to Object Properties .

PHP 4 មិនបានផ្ដល់នូវការ ការពារសំរាប់ object properties នោះទេ Client code អាច getឬ set objectproperties បានទៅតាមការគិតរបស់ពួកគេ។មានសំនួរសួរថាតើមានបញ្ហាអ្វីទេក្នុងការ អនុវត្ដន៍ បែបនេះ? វាមិនមានជាបញ្ហាក្នុងការប្រើ

ប្រាស់នូវ Public accessible properties នោះទេ ដែល ជាទូទៅ វាជាការអនុវត្ដន៍សំរាប់ការ access ទៅកាន់ object ដែលមានលក្ខណៈតូច។ នៅឧទាហរណ៍ខាង ក្រោមយើងនឹងបានឃើញ នូវលក្ខ័ណ្ឌមួយដែលកំណត់នូវព្រំដែននៃការ access ទៅកាន់ $name propertyរបស់ Person class ។

ឧទាហរណ៍ ៤២ Class with Public Properties

01: <?php

02: class Person

03: {

04: var $name;

05: var $pid;

06: var $personStr;

07:

08: function Person( $name=”somphy”, $pid=0 )

09: {

10: $this->name = $name;

11: $this->pid = $pid;

12: }

13:

14: function setName( $n )

15: {

16: $this->name = $n;

17: $this->$personStr=$this->name.” “.$this->pid;

18: }

19:

20: function getName ()

21: {

22: return $this->name;

23: }

24: }

25: $person = new Person(“sovan”,5233);

26: print $person->PersonStr();

27: // outputs “sovan 5233”

28: print “<br />”;

29: $person->name = “makara”;

30: ?>

PHP 5 ផ្ដល់នូវវិធីសាស្ដ្រផ្សេងដើម្បី declare នូវ properties របស់យើងដោយការជំនួសនូវ Var keyword មកប្រើនូវ keywords ថីមួយក្នុងចំណោម keyword ទាំងបី ដែលមានលក្ខណៈ ស្រដៀង ទៅនឹង programming Java យើងនឹងបង្ហាញពីការ declareនូវ property ថីនេះនៅក្នុងតារាងខាងក្រោម

a

ដូច្នេះយើងអាចផ្លាស់ប្ដូរ properties របស់យើងដែលមាននៅក្នុងឧទាហរណ៍ខាងលើដោយប្រើprivate ជំនួស ដោយ var keyword វិញ ។

ex.

private $name; .

private $pid; .

ឥឡូវនេះការព្យាយាមផ្លាស់ប្ដូរនូវតំលៃរបស់ $name property នៃ Person object នៅបន្ទាត់ទី ៣០ នឹងបង្ហាញនូវ error message ដូចខាងក្រោម ។

Fatal error: Cannot access private property Person::$name in c:\Inetpub\wwwroot\ classPrivateProperty.php on line 30 .

ដូច្នេះ Client coders ត្រូវតែប្រើប្រាស់នូវ setName() method ដើម្បីធ្វើការកែប្រែទៅលើ តំលៃ របស់ $name property ។ មានពេលណាមួយអ្នកប្រហែលជាចង់អោយ child classes អាច accsess ទៅកាន់ property ដែលនៅក្នុងពេលនោះអ្នកគួរតែប្រើនូវ protected keyword ព្រោះវា អនុញ្ញាត អោយអ្នក accesse វាពClass ដែលអ្នកបាន derived ហើយយើងនឹង បានឃើញ វានៅក្នុងផ្នែកមួយដែលនិយាយពី Inheritance ។

9. Limiting Access to Object Methods .លក្ខណៈសំខាន់នៃ object-oriented code គឺជា class ។ Object ត្រូវតែកំណត់នូវមុខងារនិង Public interface អោយបានច្បាស់លាស់ នៅពេលអ្នកបង្កើតនូវ methods ផ្សេងៗ ។បំណែកដែលមាននៅក្នុង classគឺផ្ទុកនូវមុខងារ ផ្សេងៗ សំរាប់តំ

ណើរការដូច្នេះអ្នកគួរតែលាក់នូវមុខងារទាំងនោះពីពិភពខាងក្រៅ។ សំរាប់ជាឧទាហរណ៍ខាងលើយើង គួរតែ បង្កើតនូវ method សំរាប់ $personStr property ពីព្រោះរាល់តំណើរការទាំងអស់របស់ $personStr ត្រូវបានផ្ទុកនៅក្នុង setName() method ។

function setName( $n )

{

$this->name = $n;

$this->$personStr=$this->name.” “.$this->pid;

} .

អ្នកប្រហែលជាត្រូវការនូវ method ដើម្បី reset នូវ string របស់ $personStr ដូច្នេះយើងនឹងបង្កើតនូវ

Method ថីមួយសំរាប់ ផ្ដល់តំលៃទៅអោយ $personStr property ។

function setName( $n )

{

$this->name = $n;

$this->makePersonStr( $n, $this->code );

}

function makePersonStr( $string , $code)

{

return $this->personStr = “$string $code”;

}

ឥឡូវនេះយើងនៅតែមានបញ្ហានៅឡើយជាមួយនឹង method របស់យើង ពីព្រោះ client code នៅតែអាចAccess នូវ makePersonStr() method ហើយវាអាចធ្វើឱៀ ទិន្នន័យរបស់ យើងមាន ការពិបាក គ្រប់គ្រង ។ យើងចង់អោយត្រឹមតែ object ដែលជាអ្នកបង្កើតនូវ property តែមួយគត់ ដែល មានសិទ្ធ Access មក កាន់ property នេះ នៅក្នុងជំនាន់របស់ PHP 5 យើងអាចផ្ដល់នូវ លក្ខណៈ  pravicy ទៅអោយ methods ដូចដែលយើងបានអនុវត្ដន៍ជាមួយនឹង private property ពីឧទាហរណ៍មុន ។

private function makePersonStr($string , $code) .

{

// …

}

ឥឡូវនេះ makePersonStr() function អាច access បានតែនៅក្នុង method ទាំងឡាយណាដែលឋិតក្នុង Person class ប៉ុណ្ណោះ ។

Public, protected ហើយនឹង private វាតំណើរបានតែជាមួយនឹង PHP 5 តែប៉ុណ្ណោះ ដូច្នេះប្រសិនបើអ្នកព្យាយាម

ប្រើនូវ keyword ទាំងបីនេះជាមួយ PHP 4 នោះ script របស់អ្នកនឹងត្រូវបរាជ័យទាំងស្រុង ។

10.Inheritance . ដើម្បីបង្កើត class មួយដែលអាច inherits function ពី parent class យើងប្រហែលជាត្រូវកែប្រែនូវការ declare class របស់យើងបន្ដិចបន្ដួច ។ ឧទាហរណ៍ថ្មីខាងក្រោមនេះ គឺជាការបង្ថើតនូវ Item Class ហើយនិង បង្ថើតនូវ inheriting class ដែលផ្ដល់ឈោះថា PriceItem ។

ឧទាហរណ៍ ៤៣

Creating a Class That Inherits from Another >

01: <html>

02: <body>

03: <h1>Creating Class That Inherits from Another</h1>

04: <?php

05:

06: class Item

07: {

var $name;

09:

10: function Item( $name=”item”, $code=0)

11: {

12: $this->name = $name;

13: $this->code = $code;

14: }

15:

16: function getName()

17: {

18: return $this->name;

19: }

20: }

21: class PriceItem extends Item

22: {

23: ………………………………

24: ………………………………

25: }

26: $item = new PriceItem( “Angkor”, 4545 );

27: print $item->getName ();

28: // outputs “Angkor”

29: ?>

30: </body>

31: </html>

យើងបានបង្កើតនូវ class មួយទៀតដែលមានឈោះថា PriceItem នៅបន្ទាត់ទី ២១ ។ គួរចំនាំ

ថា extends clause ដែលប្រើប្រាស់នៅខាងក្នុងការ declare class នៅបន្ទាត់ទី២១ នេះមានន័យថា PriceItem object inherits រាល់ function ទាំងអស់ដែលមាននៅក្នុង Item class ដូច្នេះ PricteItem Object និមួយៗគឺមានលទ្ធភាព access ទៅកាន់ getName() method ឬ $name property ប៉ុន្ដែ ក៏អាស្រ័យទៅលើការប្រើប្រាស់នូវ privacy settings ផងដែរ ។ ដោយសារតែយើង ពុំបានបង្កើតនូវ Constructor method សំរាប់ PriceItem class ដូច្នេះតើ $name property វាអាចធ្វើការផ្លាស់ផ្ដូរតំលៃ ពី default “item” ទៅជា “Angkor” ដោយបញ្ជូនទៅតាម PriceItem បានយ៉ាងដូចម្ដេច ? ពីព្រោះយើង

ពុំបានផ្ដល់នូវ contructor នៅក្នុង PriceItem នោះទេ ដូច្នេះប្រសិនបើ class ដែល extend ពី class ដទៃ

ទៀតមិនមាននូវ constructor method នោះ contructor ដែលជារបស់ parent class នឹងត្រូវបាន

ហៅដោយស្វ័យប្រវត្ដិនៅពេលដែល child object ចាប់ផ្ដើមបង្កីតឡើង ។

11. Overriding the Method of a Parent Class .

នៅក្នុងលក្ខណៈនៃ object-oriented កូដរបស់ child classes អាច override methods ពី Parents class នឹងអនុញ្ញតិអោយ objects អាច instantiated ពី parent class ។

The Method of a Child Class Overriding That of Its Parent >.

ឧទាហរណ៍ ៤៤

01: <?php

02: class Item

03: {

04: var $name;

05:

06: function Item( $name=”item”, $code=0)

07: {

08: $this->name = $name;

09: $this->code = $code;

10: }

11:

12: function getName()

13: {

14: return $this->name;

15: }

16: }

17:

18: class PriceItem extends Item

19: {

20: function getName()

21: {

22: return “(price).”$this->name;

23: }

24: }

25:

26: $item = new PriceItem( “widget”, 5442 );

27: print $item->getName();

28: // outputs “(price) Angkor”

29: ?>

getName() method ដែលបង្កើតនៅក្នុង PriceItem class នៅបន្ទាត់ទី ២០ ត្រូវបានហៅ

ដោយប្រើប្រាស់នូវ $name property របស់ parent class ដែលនៅចំនុចនេះយើងគួរតែធ្វើការសំរេចចិត្ដ

បង្កើតនូវ $name property ដែលមាននៅក្នុង Item class ជា private ។

class Item

{

private $name;

// …

}

ការផ្លាស់ប្ដូរនូវឧទាហរណ៍ខាងលើធ្វើអោយលទ្ធផលមានភាពប្រែប្រួលដូចខាងក្រោម-

លទ្ធផលដែលទទួលបានមុនពេលធ្វើការផ្លាស់ប្ដូរ គឺ (price) Angkor លទ្ធផលថដែល នឹងទទួល បានគឺ (price) ឥឡូវនេះ PriceItem class មិនអាច access ទៅកាន់ $name property ទៀតបានទេ ប៉ុន្ដែប្រសិនបើ Child class ត្រូវការ access ទៅកាន់ methods ឬ property នៃ ancestor classes យើគួរតែប្រើនូវ Protected keyword ជំនួសអោយ private វិញ ។

12. Calling an Overridden Method .

មានពេលខ្លះ function ដែលមាននៅក្នុង parent class អាចមានផលប្រយោជន៍សំរាប់អ្នក ដូច្នេះ

សំរាប់ Object-oriented-programmingអនុញ្ញាតិអោយអ្នក refer ទៅកាន់ parent class ដោយប្រើនូវ

parent keyword ។ ឧទាហរណ៍ខាងក្រោមនេះ getName() method ដែលឋិតនៅខាងក្នុង PriceItem

Class នឹង call នូវ method នៅក្នុង Item class ដែលបានត្រូវ override។

Calling an Overridden Method (PHP 5 Syntax)

ឧទាហរណ៍ ៤៥

01: <?php

02: class Item {

03: private $name;

04:

05: function __construct( $name=”item”, $code=0 ) {

06: $this->name = $name;

07: $this->code = $code;

08: }

09:

10: function getName() {

11: return $this->name;

12: }

13: }

14:

15: class PriceItem extends Item {

16: function getName() {

17: return “(price) “.parent::getName ();

18: }

19: }

20:

21: $item = new PriceItem (“widget”, 5442);

22: print $item->getName();

23: // outputs “(price) widget”

24:

25: ?>

យើងបានធ្វើការជាមួយនឹង getName() method នៅក្នុង PriceItem class បន្ទាត់ទី ១៧ ។

PriceItem class មិនធ្វើការផ្ទាល់ជាមួយនឹង $name property របស់ Item class នោះទេ ដូច្នេះនៅចំនុច នេះយើងអាច declare $name property ជា private ដែលមិនធ្វើអោយ មាន ផលប៉ះពាល់ជាមួយនឹង លទ្ធផលនោះទេ ហើយប្រសិនបើយើងប្រើវាជាមួយនឹង PHP 5 ទៀតនោះ វាគឺជាការអនុត្ដន៍ដ៏ល្អ ដើម្បី Lock នូវ methods និង property របស់យើង ។

13. Working with Constructors .

យើងធ្លាប់បានឃើញមកហើយថា constructor របស់ parent class នឹងត្រូវ called ដោយស្វ័យ

ប្រវត្ដិប្រសិនបើ child class មិនបានបង្កើតនូវ constructor សំរាប់ខ្លួនវានោះទេ ។ យើងនឹងបន្ថែមនូវ

Constructor method ទៅអោយ PriceItem class របស់យើងជាមួយនឹងឧទារហណ៍ខាងក្រោម ។

ឧទាហរណ៍ ៤៦ Adding a Constructor to PriceItem

01: <?php

02: class Item

03 {

04: private $name;

05: function __construct( $name=”item”, $code=0 ) {

06: $this->name = $name;

07: $this->code = $code;

08: }

09: function getName () {

10: return $this->name;

11: }

12: }

13: class PriceItem extends Item

14: {

15: private $price;

16: function __construct( $name, $code, $price ) {

17: parent::__construct( $name, $code );

18: $this->price = $price;

19: }

20:

21: function getName() {

22: return “(price) “.parent::getName ();

23: }

24: }

25:

26: $item = new PriceItem (“widget”, 5442, 5.20);

27: print $item->getName ();

28: // outputs “(price) widget”

29:

30: ?>

យើងបានបង្កើតនូវ constructor method នៅបន្ទាត់ទី១៦ ដើម្បីទទួល argument សំរាប់

$name និង $codeព្រមជាមួយនឹង argument ថីសំរាប់ price។ យើងបានប្រើប្រាស់ parent keyword

ដើម្បី call constructor របស់ Item class នៅបន្ទាត់ទី២២ មុនពេលដែលយើងធ្វើការរៀបចំតំលៃអោយ

$price property ដែលនេះបង្ហាញអោយយើងឃើញពីហេតុផលមួយសំរាប់ប្រើនូវ syntax ថីរបស់ PHP5 ដើម្បីបង្កើត contructor ។

parent::__construct( $name, $code );

 

មេរៀនទី៧: ​PHP- ទម្រង់ Form

មេរៀនទី៧: ​PHP- ទម្រង់ Form

នៅលើ internet (world wide web ) Form ផ្លល់នូវលទ្ធភាពេនៃការបញ្ជូននូវពត៌មានពីអ្នក ប្រើប្រាស់ពី Client ទៅកាន់ Server ។ PHPត្រូវបានរចនាឡើងដើម្បីធ្វើការជា មួយនឹងពត៌មាន ទាំងនោះនៅពេលដែល HTML forms ត្រូវបាន submit ។

1. User Input.

អ្នកប្រាកដជាចង់អោយកមវិធីរបស់អ្នកមានសកមភាព ឬ ទំនាក់ទំនងជាមួយនឹងអ្នក ប្រើប្រាស់ ក្នុង ខណៈពេលណាមួយ ។ ឧទាហរណ៍ខាក្រោមគឺជាការបង្កើតនូវ Form មួយដើម្បីទទួលនូវពត៌មានពី អ្នកប្រើប្រាស់ដូចជា first-name , last-name , date of birth , email address និង password។

<html>

<head>

<title>Registration form </title>

</head>

<body>

<CENTER>

<h2>Registration Form</h2>

<hr width=”50%”>

<form method=”GET” action=”register.php” >

<table>

<tr><td>First-Name</td>

<td><input type=”Text” name=”txtFname”></td>

</tr>

<tr><td>Last-Name</td>

<td><input type=”Text” name=”txtLname”></td>

</tr>

<tr><td>Date of Birth</td>

<td>

<Select name=”cboday”>

<option value=”01″>01</Option>

<option value=”02″>02</Option>

<option value=”03″>03</Option>

</select>

<Select name=”cbomonth”>

<option value=”01″>Jan</Option>

<option value=”02″>Feb</Option> .

<option value=”03″>Mar</Option>

</select>

<Select name=”cboyear”>

<option value=”1980″>1980</Option>

<option value=”1981″>1981</Option>

<option value=”1982″>1982</Option>

<option value=”1983″>1983</Option>

</select>

</tr>

<tr><td>E-mail</td>

<td> <input type=”text” name=”txtemail”></td>

</tr>

<tr><td align=right colspan=2> <input type=”submit” value=”Submit”>

</td>

</tr>

<tr><td>Password</td>

<td> <input type=”password” name=”txtpwd” size=22></td>

</tr>

</table>

</body> </html>

នៅបន្ទាត់ដែលយើងបានប្រើនូវ form tage<form method=”get” action=”register.php”> យើងបានប្រើនូវ get method ដែលជា attribute ដំបូងនៅក្នុង form tag ។ HTTP get method ធ្វើការបញ្ជូនទិន្នន័យពី form ទៅតាម URL ដែលធ្វើអោយទិន្ននយ័ទាំងនោះអាចបង្ហាញនៅលើ address bar របស់ browser ជាហេតុធ្វើអោយលទ្ធផលដែលបានពី form អាចត្រូវរក្សារទុកជា bookmark ។ អ្នកប្រហែលជាត្រូវប្រើ post method វិញជាការប្រសើរជាង ប្រសិនបើអ្នកចង់

ប្រើប្រាស់នូវ passwordពីព្រោះ POST ធ្វើការបញ្ជូនទិន្នន័យដែលមាននៅក្នុង form ទៅតាម body នៃ HTTP request ដូចច្នេះ ទិន្នន័យទាំងនោះមិនត្រូវបានបង្ហាញអោយឃើញជាមួយ URL ឬ ជា bookmarked នោះទេ ។ ដើម្បី processes data ពី form ដែលប្រើ get method នៅក្នុង Script អ្នកអាចប្រើជាមួយ $_GET ឬប្រសិនបើអ្នកប្រើ នូវ post method អ្នកអាចប្រើជាមួយ $_POST ឬ ប្រើ $_REQUEST អ្នកអាចប្រើបាស់បានទាំងពីរ method។

ឧទាហរណ៍ ការប្រើប្រាស់ get method នៅក្នុង script

register.php

<html>

<body>

<head>

<title>Personal Information</title>

</head>

<center>

<h2>Personal Information</h2>

<hr width=50%>

<?php

$fname = $_GET[‘txtFname’];

$lname = $_GET[‘txtLname’];

$day = $_GET[‘cboDay’];

$month = $_GET[‘cboMonth’];

$year = $_GET[‘cboYear’];

$dob = $day.$month”.$year”;

print “<table>”;

print “<tr>”;

print “<td><b>First-Name :</b></td>”;

print “<td> $fname </td>”;

a

print “</tr>”;

print “<tr>”;

print “<td><b>Last-Name :</b></td>”;

print “<td> $lame </td>”;

print “</tr>”;

print “</table>”;

?>

</body>

</html>

ខាងក្រោមគឺជាលទ្ធផលដែលទទួលបានបន្ទាប់ពី form ត្រូវបាន submit ដោយប្រើ get mehod ។ សូមពិនិត្យមើលនូវ address bar របស់ browser ដែលពត៌មានបញ្ជូនមកនោះ ត្រូវបានភ្ជាប់មកជាមួយនឹង url

a

ឧទាហរណ៍ ៤៩ ការប្រើប្រាស់ post method នៅក្នុង script

register.php

<html>

<body>

<?php

$fname = $_POST[‘txtFname’];

$lname = $_POST[‘txtLname’];

print “<table>”;

print “<tr>”;

print “<td><b>First-Name :</b></td>”;

print “<td> $fname </td>”;

print “</tr>”;

print “<tr>”;

print “<td><b>Last-Name :</b></td>”;

print “<td> $lame </td>”;

print “</tr>”;

print “</table>”;

?>

</body>

</html>

អ្នកនឹងបានឃើញពីភាពខុសគ្នារវាងការប្រើប្រាស់នូវ post method និង get method នៅលើ Address bar របស់ brower និមួយៗ ។ ខាងក្រោមគឺជាលទ្ធផលដែលទទួលបានបន្ទាប់ ពី form ត្រូវបាន Submit ដោយប្រើប្រាស់នូវ post method ។

a

2. Accessing Form Input with User-Defined Arrays .

ឧទាហរណ៍ ៤៩ ផ្ដល់លទ្ធភាពអោយអ្នកទទួលនូវពត៌មានពី HTML element ដែលបាន Submit នូវតំលៃមួយសំរាប់តែelement មួយប៉ុណ្ណោះដែលនេះពុំទាន់មានលក្ខណៈគ្រប់គ្រាន់នៅឡើយនោះទេប្រសិន បើអ្នកចង់ធ្វើការជាមួយនឹង multiple select ។

ឧទាហរណ៍ ៥០

01: <html>

02: <head>

03: <title>HTML Form with a ‘select’ Element</title>

04: </head>

05:

06: <body>

07: <center>

08: <h2>Multiple Select</h2>

09:

10: <hr width=”50%”>

11: <form action=”multiple.php” method=”POST”>

12: <select name=”products[]” multiple=”multiple”>

13: <option> Cocacola </option>

14: <option> Fanta </option>

15: <option> Sprite </option>

16: <option> Merinda </option>

17: <option> Pepsi </option>

18: </select><br><br>

19: <input type=”submit” value=”submit”>

20:

21: </body>

22: </html>

យើងនឹងបង្កើត script ដើម្បីស្វែងរក input ពី “products[]” form element ដែលបង្កើត នៅបន្ទាត់ ទី 12ដោយផ្ដល់ឈោះជា array indexed ហៅថា products។ products[]គឺជា select element ដែលផ្ដល់អោយនូវជំរើសសំរាប់អ្នកប្រើប្រាស់ដោយការប្រើ option element នៅបន្ទាត់ទី ១៣ ដល់ បន្ទាត់ទី ១៧យើងនឹងបង្ហាញពីលទ្ធផលដែលអ្នកប្រើប្រាស់បានជ្រើសរើសពី form ខាងលើ ដែលបង្កើតជា array នៅក្នុង ឧទាហរណ៍ ៥១

01: <html>

02: <body>

03: <head>

04: <title>Reading Input from the form multiple select</title>

05: </head>

06:

07: <?php

08:

09: if ( is_array( $_POST[‘products’] ) )

10: {

08: echo “<b>Your products choice are :</b><br/>”;

10: foreach($_POST[‘products’] as $val)

11: {

12: print “$val<br>”;

13: }

14: }

15:

16 ?>

17:

18: </body>

19: </html>

នៅបន្ទាត់ទី ០៩ នៃ ឧទាហរណ៍ ៥១ យើងធ្វើការត្រួតពិនិត្យទៅលើ $_POST[‘products’] Element ប្រសិនបើ element នេះជា array យើងនឹង loop រាល់ធាតុនិមួយៗរបស់វានៅបន្ទាត់ទី ១០ ដើម្បី បង្ហាញជាលទ្ធផលទៅកាន់ Browser ។ អ្នកក៏អាចអនុញ្ញាតិអោយអ្នកប្រើប្រាស់ ជ្រើរើសនូវជំរើសច្រើន ដោយប្រើ check boxes ដែលត្រូវផ្ដល់នូវឈោះដូចៗគ្នាសំរាប់ element និមួយៗ ហើយភ្ជាប់ជាមួយ empty brakets ។ PHP នឹង compiles នូវអ្វីដែលអ្នកប្រើប្រាស់បាន select ទៅជា array ។ យើងនឹងធ្វើការផ្លាស់ប្ដូរពីការប្រើ select element នៅឧទាហរណ៍ខាងលើ មកប្រើ check boxes វិញដូចមានក្នុងឧទាហរណ៍ ៥២។

ឧទាហរណ៍ ៥២

<html>

<head>

<title>HTML Form with a ‘select’ Element</title>

</head>

<body>

<center>

<h2>Multiple Select</h2>

<hr width=”50%”>

<form action=”multiple.php” method=”POST”>

<input type=”checkbox” name=”products[]” value=”Cocacola” />Cocacola

<input type=”checkbox” name=”products[]” value=”Fanta” />Fanta

<input type=”checkbox” name=”products[]” value=”Sprite” />Sprite

<input type=”checkbox” name=”products[]” value=”Merinda” />Merinda

<input type=”checkbox” name=”products[]” value=”Pepsi” />Pepsi

<br><br>

<input type=”submit” value=”submit”>

</body>

</html>

a

multiple.php

ឧទាហរណ៍ ៥២

01: <html>

02: <body>

03: <head>

04: <title>Reading Input from the form multiple select</title>

05: </head>

06:

07: <?php

08:

09: if ( is_array( $_POST[‘products’] ) )

10: {

08: echo “<b>Your products choice are :</b><br/>”;

10: foreach($_POST[‘products’] as $val)

11: {

12: print “$val<br>”;

13: }

14: }

15:

16 ?>

17:

18: </body>

19: </html>

a

 

មេរៀនទី៨: PHP- ការដំឡើង MySql

មេរៀនទី៨: PHP- ការដំឡើង MySql

1. What is MySql ? .

MySql គឺជាប្រភេទ Open Source Sql databases management system ដែលមានប្រជាប្រិយបំផុតសំរាប់

ការប្រើប្រាស់ ដោយត្រូវបានអភិវឌ្ឍន៍និងគាំទ្រដោយ MySQL AB ។ MySQL AB គឺជាក្រុមហ៊ុនដែលបង្កើតឡើង ដោយក្រុមអ្នកអភិវឌ្ឍន៍ MySql ។

1.1 MySQL is a relational database management system. .

A relation databases គឺរក្សាទុកនូវទិន្នន័យក្នុង table ផ្សេងពីគ្នាដែល មានលក្ខណៈ ប្រសើរ ជាង ការរក្សាទុកនូវទិន្នន័យទាំងអស់នៅក្នុង storeroom ដ៏ធំមួយ ហើយវិធីនេះអាចជួយ បង្កើនល្បឿន និង មានភាពងាយស្រួលប្រើកាន់តែប្រសើរឡើងជាមួយ នឹងទិន្នន័យ ។ SQL គឺជាបំណែកមួយនៃ MySQL ដែល ប្រើ ជាពាក្យពេញថា “Structured Query Language” SQL គឺជាភាសាដែលប្រើប្រាស់ជា standard ដើម្បី access ទៅកាន់ databases ហើយត្រូវបានកំណត់ដោយ ANSI/ISO SQL Standard ។SQL standard ត្រូវបានវិវត្ដន៍ឡើងនៅក្នុងអំឡុងឆ្នាំ ១៩៨៦ ដែលបង្កើតបានជា ជំនាន់ របស់ SQL-92 ដោយសំដៅទៅលើ SQL standard ដែលធ្វើការដាក់ចេញនូវជំនាន់ របស់ខ្លួននៅ ក្នុងអំឡុុងឆ្នាំ ១៩៩២ និង បន្ទាប់មកគឺ SQL-1999 និងក្រោយមកទៀតគឺ SQL-2003 ។

1.2 MySQL software is Open Source. .

Open Source គឺមានន័យថាអ្នកប្រើប្រាស់មានលទ្ធភាពកែប្រែនូវ software នោះបាន ហើយ អាច ទាញយកនូវ Software ទាំងនោះនៅលើ Internet និងអាចប្រើប្រាស់វា ដោយមិនមាន ការបង់ ប្រាក់ ទៅលើសេវាកមអ្វីទាំងអស់ ។ MySQL software ប្រើប្រាស់ GPL( General Public License ) ដើម្បីផ្ដល់អោយអ្នកនូវអ្វីដែលត្រូវការ និង អ្វីដែលអ្នកមិនត្រូវការចំពោះ software នេះ ។ គឺមានន័យថា ប្រសិនបើអ្នកមិនមានអារមណ៍ទុកចិត្ដ ជាមួយនិឹង GPL ឬ អ្នកចង់បង្កប់នូវកូដទៅក្នុង MySQL ដើម្បីធ្វើជាCommercial application អ្នកអាចទិញនូវច្បាប់អនុញ្ញាតិអោយធ្វើពានិជ្ជកមពីក្រុមហ៊ុន MySQL ដែល

ពត៌មានលំអិតអ្នកអាចប្រើប្រាស់នូវគេហទំព័រ (http://www.mysql.com/company/legal/licensing/) ។

2. SQL commands in mysql .

ផ្នែកខាងក្រោមនឹងបង្ហាញពីការប្រើប្រាស់ SQL commands នៅក្នុង MySQL context ។ គ្រប់ commands ទាំងអស់សុទ្ធតែបានទទួលស្គាល់ដោយ MySQL system ក្នុងអំឡុងពេលដែល design SQL databases environment ។ command របស់ MySQL និមួយៗត្រូវតែបញ្ចប់ជាមួយនឹងសញ្ញា Semicolon ( ; ) ។

show databases គឺជា command ដំបូងដែលប្រើដើម្បីបង្ហាញនូវឈេμាះ database ទាំងអស់ដែលមាននៅក្នុង MySQL ក្នុងនោះមាន database ចំនួនពីរភ្ចាប់មកស្រាប់ជាមួយ MySQL package។

mysql> show databases;

+———-+

| Database |

+———-+

| mysql |

| test |

+———-+

2 rows in set (0.00 sec)

Database ដែលមានឈោះថា mysql ផ្ទុកនូវ MySQL settings ហើយនិង users ផ្សេងៗ ។សំរាប់ជាឧទាហរណ៍

យើងនឹងបង្កើត database មួយឈោះថា BbuDb ។

create database databaseName ;

syntax : mysql>create database BbuDb ; .

យើងអាចពិនិត្យមើល database ដែលបានបង្កើតខាងលើដោយប្រើប្រាស់ show database command។

.mysql> show databases;

+————+

| Database |

+————+

| mysql |

| BbuDb |

| test |

+————+

3 rows in set (0.00 sec)

ដើម្បីលប់នូវ database ណាមួយនោះអ្នកអាចប្រើ SQL command : drop database databaseNameអ្នកគួរប្រុងប្រយ័ត្នផងដែរ

ចំពោះការប្រើប្រាស់ command នេះ ពីព្រោះវានឹងធ្វើការលប់ database ដោយមិនមានការសាកសួរ ឬ ធ្វើការបញ្ជាក់ពី

អ្នកម្ដងទៀតឡើយ។SQL syntax ដែលប្រើដើម្បីបង្កើត table យើងនឹងបង្ហាញជាមួយឧទាហរណ៍ខាងក្រោម ប៉ន្ដែមុនពេលដែលប្រើ

command នេះអ្នកត្រូវតែកំណត់នូវ database មួយអោយជាក់លាក់ជាមុនសិន ដោយប្រើ command use:

mysql>use BbuDb ;។ យើងនិឹងប្រើ command ដើម្បីបង្កើត table ដែលមានattributes ដូចជា id , username , password , name និង email ជាមួយនឹងឧទាហរណ៍ខាងក្រោម ។The general form of the syntax is:.

create table tableName ( col1Name datatype otherSettings, etc) >

.mysql> create table tblpeople

( id int(5) not null auto_increment ,

username varchar(20) binary not null,

password varchar(20) binary not null,

name varchar(20) not null,

email varchar(30) not null,

primary key(id)

); .

រាល់ attribute និមួយៗសុទ្ធតែត្រូវបានកំណត់នូវចំំនួនតួអក្សរដែលត្រូវរក្សាទុកនៅក្នុង table ហើយ fieldនិមួយៗនៃ table សុទ្ធតែទាមទារអោយមាននូវតំលៃជានិច្ច ។ ចំណែកឯ id attribute តំលៃរបស់វានិឹងត្រូវកើនឡើងដោយស្វ័យប្រវត្ដិនៅពេល

ដែលទិន្នន័យត្រូវបានបញ្ចូលទៅកាន់ tblpeople មួយលើកៗ ។varchar គឺជាតំលៃដែលប្រើជាតួអក្សរ ឬជាតួលេខ ចំណែកឯ binary គេប្រើដើម្បីធ្វើអោយតំលៃ ទៅជា case-sensitive រីឯ name ហើយ និង email attribute គឺមិនត្រូវបានប្រើ binary នោះទេ ដូច្នេះវាមិនមានលក្ខណៈ case-sensitive ឡើយ ។ id គឺត្រូវបានបង្កើតជា primary key សំរាប់ table ដើម្បី

identify row និមួយៗនៃ table ។

mysql> desc tblpeople ;

+———-+————-+——+—–+———+————–+.

| Field | Type | Null | Key | Default | Extra |

+———-+————-+——+—–+———+————–+

| id | int(5) | | PRI | NULL |auto_increment

| username | varchar(20) | | | |

| password | varchar(20) | | | |

| name | varchar(20) | | | |

| email | varchar(30) | | | |

+———-+————-+——+—–+———+————–+

5 rows in set (0.01 sec).

បន្ទាប់ពីមកទៀតអ្នកអាចប្រើប្រាស់ insert command ដើម្បីបញ្ចូលទិន្នន័យទៅក្នុង table ។

ឧទាហរណ៍ៈ

mysql>insert into tblpeople values (null, ‘muth’, ‘ muth07 ‘, ‘monen’, ‘ muth_monen@hotmial.com ‘);

mysql>insert into tblpeople values(null, ‘lou’, ‘ army ‘, ‘ lou cy ‘, ‘ lou_cy@gmail.com ‘); .

នៅពេលដែល id attribute ជា auto_increment យើងប្រើ null សំរាប់ជា data entry ដែល null Value មិនមានលក្ខណៈដូចនឹង blank (” “) នោះទេ ។ id attribute ចាប់ផ្ដើមដោយតំលៃជា integer 1 ហើយវានឹងធ្វើការបង្កើនតំលៃ ១ នៃនៅពេលដែលមានការបញ្ជូលទិន្នន័យទៅកាន់ row ថីម្ដងៗ។ អ្នកអាចពិនិត្យមើលពត៌មាន ទាំងអស់ដែលមាននៅក្នុង tableបន្ទាប់ពីបានបញ្ចូលដោយប្រើប្រាស់ SQL command mysql>select * from tblpeople ; .

+—-+———-+———-+————+———————+

| id | username | password | name | email |

+—-+———-+———-+————+———————+

| 1 | muth | muth07 | monen |muth_monen@hotmail.com |

| 2 | lou | army | lou cy |lou_cy@gmail.com |

+—-+———-+———-+————+———————+

2 rows in set (0.00 sec)

ដើម្បីលប់នូវ table ណាមួយចេញពី database អ្នកអាចប្រើ command :mysql> drop table tableNameសំរាប់ command ដែលប្រើដើម្បីលប់ row ពី table ទាមទារអោយអ្នកផ្ដល់នូវឈោះនៃ table ហើយនិងwhere condition ដែលបញ្ជាក់ពី row(s) ដែលនឹងត្រូវលប់ ។

delete from tableName where Where-condition

សូមប្រុងប្រយ័ត្នប្រសិនបើអ្នកមិនប្រើ where-condition នោះទេ គ្រប់ rows ទាំងអស់ដែលមាននៅក្នុងtable នឹងត្រូវលប់ចោលទាំងអស់។ នៅក្នុងឧទាហរណ៍ខាងក្រោមយើងនឹងប្រើតំលៃរបស់ attribute name និង username ដើម្បីលប់ row ចេញពី table tblpeople ។

delete from tblpeople where name=’ monen ’ and username = ’ muth ’ ;.

UPDATE command ត្រូវបានប្រើដើម្បីកែប្រែពត៌មានដែលមាននៅក្នុង table អ្នកអាច select យក

ពត៌មានណាមួយមកកែប្រែពត៌មានដោយមិនមានការបាត់បង់នូវ record ឬ row ដើមទាំងស្រុងឡើយ ។

The syntax is:

UPDATE table-name SET field1=‟val1‟, field2=‟val2‟, field3=‟val3‟…………

WHERE condition;

ex.

update tblpeople set password=’maco’ where username=’muth’ ;

3. PHP/MySQL Functions .

3.1 Connecting to MySQL .

មុនពេលដែលចាប់ផ្ដើមធ្វើការជាមួយនឹង database របស់អ្នក អ្នកត្រូវតែ connect ទៅកាន់ Server ជាមុនសិន ។ PHP ផ្ដល់នូវ mysql_connect () function ដើម្បីអនុវត្ដន៍នូវភារកិច្ចនេះ ។

បំណែកកូដខាងក្រោមនឹងបង្ហាញពីការប្រើប្រាស់ mysql_connect() ភ្ជាប់ទៅកាន ់ MySQL database Server ។

$link = mysql_connect( “localhost”, “root”, “123” );

if ( ! $link )

{

die( “Couldn’t connect to MySQL” );

}

3.2 Selecting a Database .

បន្ទាប់ពីបានបង្កើត connection ដើម្បីភ្ជាប់ទៅកាន់ MySQL រួចរាល់ហើយ អ្នកត្រូវតែជ្រើរើសDatabase ណាមួយដើម្បីធ្វើការជាមួយវា ដោយអ្នកអាចប្រើប្រាស់នូវ mysql_select_db() function ។

បំណែកកូដខាងក្រោមយើងនឹង select យក database មួយដែលមានឈោះថា BbuDb

$database = “BbuDb“; .

mysql_select_db( $database ) or die ( “Couldn’t open $database ); .

3.3 Adding Data to a Table .

ឥឡូវនេះយើងមានលទ្ធភាពគ្រប់គ្រាន់ដើម្បី access ទៅកាន់ database ហើយយើងអាចបញ្ជូលនូវពត៌មានទៅកាន់ table នៃ database ។ សំរាប់ជាឧទហរណ៍យើងនឹងប្រើប្រាស់ table ដែលបានបង្កើតនៅក្នុង database BbuDb ដែលមានឈោះថា tblpeople ។

Adding a Row to a Table >

01: <html>

02: <head>

03: <title>Listing 13.2 Adding a Row to a Database</title>

04: </head>

05: <body>

06: <div>

07: <?php

08: $user = “root”;

09: $pass = ” “;

10: $db = “BbuDb”;

11: $link = @mysql_connect( “localhost”, $user, $pass );

12: if ( ! $link )

13: {

14: die( “Couldn’t connect to MySQL: “.mysql_error() );

15: }

16: print “<h2>Successfully connected to server</h2>\n\n”;

17: @mysql_select_db( $db )

18: or die ( “Couldn’t open $db: “.mysql_error() );

19: print “Successfully selected database \”$db\”<br />\n”;

20:

21: $query = “insert into tblpeople(username , password , name , email )

22: values( ‘ ratana07 ‘, ‘ 1234 ‘, ‘ som ratana ‘, ‘ ratana@example.com ‘ )”;

23: mysql_query( $query, $link )

24: or die ( “INSERT error: “.mysql_error() );

25:

26: mysql_close( $link );

27: ?>

28: </div>

29: </body>

30: </html>

សំរាប់ឧទាហរណ៍នេះយើងមិនបានបញ្ចូលតំលៃទៅអោយ id column នោះទេ ព្រោះ field នេះជាប្រភេទ auto_increments ។ វាជាការពិត រាល់ពេលដែលយើង reload script នៃឧទាហរណ៍ខាងលើទិន្នន័យដដែលនឹងត្រូវបញ្ចូលទៅកាន់ row ថីមួយទៀតនៃ table ។

3.4 Adding User Input to a Database .

Registration.html

<html>

<head>

<title>Adding user input to a database</title>

</head>

<body>

<CENTER>

<h2> Adding user input to a databases </h2>

<hr width=550>

<form action=”insert.php” method=”Post”>

 

<table>

<tr>

<td>Name :</td>

<td><input type=”TextBox” size=”18″ name=”txtname”/></td>

</tr>

 

<tr>

<td>UserName :</td>

<td><input type=”TextBox” size=”18″ name=”txtusr”/></td>

</tr>

<tr>

<td>Password :</td>

<td><input type=”Password” name=”txtpwd”/></td>

</tr>

មេរៀនទី៩: PHP- Cookies និង Session

 មេរៀនទី៩: PHP- Cookies និង Session

1. Cookie.

cookie គឺជាទិន្នន័យដែលរក្សាទុកដោយ user‟s browserដែលប្រព្រឹត្ដទៅបានដោយការ requestពី server ឬ script ។ វាអាចរក្សាទុកបានត្រឹមតែ 20 cookies និង ទំហំផ្ទុក ទិន្នន័យ បានត្រឹម 4 kilobyte ប៉ុណ្ណោះ ហើយរាល់ cookie និមួយៗត្រូវតែមាននូវ ឈោះ តំលៃ និង កាលបរិច្ឆេទឈប់ប្រើប្រាស់់ ។

បន្ទាប់ពី cookieត្រូវបាន set មានតែ ម៉ាស៊ីនកំព្យូទ័រដែល set នូវ cookie នោះប៉ុណ្ណោះទើប អាច មាន សិទ្ធ read នូវទិន្នន័យដែលមាននៅខាងក្នុងបាន ប៉ុន្ដែក៏អាស្រ័យទៅលើ user‟s privacy ដែល userអាចធ្វើការ configure នៅលើ browser របស់ពួកគេ ដើម្បីអោយ cookie ទាំងអស់ មាន លទ្ធភាព set ឬ ក៏បដិសេធមិនអោយមានការ request cookie ។ cookie អាចជា វិធីសាស្ដ្រ ដ៏ប្រសើរសំរាប់រក្សារទុកនូវពត៌មានខ្លីពីអ្នកប្រើប្រាស់ ពី page មួយទៅ page មួយទៀត ។ .

Cookies របស់ PHP បញ្ជូនទៅកាន់ web server ដោយប្រើប្រាស់ setcookie() function ។ប្រសិនបើ cookie បាន set នូវ time-out browser នឹងធ្វើការចងចាំនូវ cookie ទោះបីជាអ្នក restartម៉ាស៊ីនក៏ដោយ ប៉ុន្ដែ ប្រសិន បើអ្នកមិនបាន set នូវ time-out សំរាប់ cookie នោះទេ browser នឹងបំបាត់ចោលនូវ cookie នោះភ្លាមនៅពេល ដែលអ្នក close browser។ សំរាប់ជាឧទាហរណ យើងនឹង set cookie នៅពេលដែល user បញ្ចូលនូវ username និង password បានត្រឹមត្រូវជាមួយនឹង login form ។

Auth.php

<?php

class Auth

{

function Auth()

{

mysql_connect(‘localhost’, ‘root’);

mysql_select_db(‘my_own_bookshop’);

}

public function authUser($user , $password)

{

$q = ‘ SELECT username , password FROM tblpeople WHERE username=”‘. $user. ‘” AND password =”‘.$password. ‘”‘ ;

$r = mysql_query($q);

if (mysql_num_rows($r) == 1)

{ return TRUE; }

else { return FALSE; }

}

}?>

login.php >

<?

ob_start();

?>

<html>

<head><title>Login</title></head>

<body>

<?php

require(“auth.php”);

$auth = new Auth();

if (isset ($_POST[‘login’]) && ($_POST[‘login’] == ‘Log in’) &&

$auth->authUser($_POST[‘txtuid’] , $_POST[‘txtpwd’] ) )

{

$uid = $_POST[‘txtuid’];

/* User successfully logged in, setting cookie */

setcookie(‘uid’, $uid, time() + 14400, ‘/’);

header(“Location: http://localhost/index.php”);

exit();

}

else {

?>

<h1>Log-in</h1>

<form method=”post” action=”login.php”>

<table>

<tr><td>User name :</td>

<td><input type=’text’ size=’18’ name=’txtuid’/></td></tr>

<tr><td>Password :</td>

<td><input type=’password’ name=’txtpwd’/></td></tr>

<tr><td colspan=’2′ align=’right’>

<input type=’submit’ name=’login’ value=’Log in’/></td>

</tr>

</table>

</form>

<?php

}

?>

</body>

</html>

ចំពោះ superglobal ដែលប្រើដើម្បី read cookies គឺ $_COOKIE ដែលយើងនឹងអនុវត្ដន៍វាជា មួយនឹងឧទាហរណ៍នៅក្នុង file មួយឈោះថា index.php ។

index.php

<?php

if (isset ($_COOKIE[‘uid’]) && $_COOKIE[‘uid’])

{

?>

<html>

<head><title>Index page</title></head>

<body>

Logged in with UID: <?php echo $_COOKIE[‘uid’]; ?><br />

<a href=’logout.php’>Log out</a>.

</body>

</html>

<?php

}

else {

/* If no UID is in the cookie, we redirect to the login .page */

header(‘Location: http://localhost/login.php’);

}

?>

សំរាប់ការប្រើប្រាស user id របស់យើងនេះ គឺវាមានភាពចាំបាច់ណាស់ ដូចជាការចង់ចាំសំរាប់Authentication data (ដូចដែលយើងបានអនុវត្ដន៍នៅក្នុង script របស់យើង ) ។ប៉ុន្ដែវាមិនទាន់ជាគំនិតដែលត្រឹមត្រូវនោះទេ ពីព្រោះ អ្នកប្រើប្រាស់អាចកែប្រែ cookies ទាំងនោះ ឬ install តំលៃផ្សេងៗបានទៅតាមអំពើចិត្ដ ។

មានតំណោះយ៉ាងប្រសើរមួយសំរាប់បញ្ហានេះគឺការប្រើប្រាស់ PHP Sessions ដែលយើីងនឹងអនុវត្ដន៍នៅក្នុងឧទាហរណ៍ក្រោយ

មួយទៀត ។ ដើម្បី លប់ cookie អ្នកគ្រាន់តែប្រើប្រាស់ parameters ដូចដែលអ្នក set cookie ប៉ុន្ដៃអ្នកមិនចាំបាច់ផ្ដល់នូវ value សំរាប់ cookie នោះទេ ហើយ កាលបរិច្ឆេទឈប់ប្រើប្រាស់អ្នកត្រូវផ្ដល់អោយជាកាលបរិច្ឆេទនៃអតីតកាល ។ នៅក្នុង logout page យើងនឹងលប់ cookie ដោយប្រើវិធី ដូចខាងក្រោម។

logout.php

<?php

setcookie(‘uid’, ”, time() – 86400, ‘/’);

header(‘Location: http://localhost/login.php’);

?>

time()-86400 គឺជាកាលបរិច្ឆេទដែលកន្លងហួសទៅមួយថ្ងៃ នឹងជាកាលបរិច្ឆេទនៃអតីតកាល

ដើម្បីប្រាប់អោយ browser បំបាត់ចោលនូវ cookie data នោះ ។

2. SESSIONS .

PHP session អនុញ្ញាតិអោយ application របស់អ្នករក្សារទុកពត៌មាននៅក្នុងcurrent session ខណៈពេលដែលអ្នកប្រើប្រាស់បាន logged in ទៅកាន់ application របស់អ្នក ។ session ត្រូវបាន កំណត់ ដោយ session ID តែមួយគត់ PHP បង្កើត session ID ដោយ MD5 hash នៃ remote IP addressនិង បន្ថែមនូវសញ្ញាផ្សេងៗដោយ random ទៅក្នុង hexadecimal string ។ យើងនឹង សរសេរឡើងវិញនូវឧទាហរណ៍លើកមុន ដែលយើងបានប្រើប្រាស់ cookie មកជំនួសដោយ ការប្រើ ប្រាស់ session វិញ ។

login.php

<html>

<body>

<?php

require(“auth.php”);

$auth = new Auth();

session_start();

if (isset ($_POST[‘login’]) && ($_POST[‘login’] == ‘Log in’) &&

$auth->authUser($_POST[‘txtuid’] , $_POST[‘txtpwd’] ) )

{

$uid = $_POST[‘txtuid’];

$_SESSION[‘uid’] = $uid;

header(“Location: http://localhost/index.php”);

exit();

}

else

{

?>

/* HTML form comes here */

<?php

}

?>

</body>

</html>

index.php >

<?php

if (isset ($_SESSION[‘uid’]) && $_SESSION[‘uid’])

{

?>

<html>

<head><title>Index page</title></head>

<body>

Logged in with UID: <?php echo $_SESSION[‘uid’]; ?><br />

<a href=’logout.php’>Log out</a>.

</body>

</html>

<?php

}

else

{

/* If no UID, we redirect to the login page */

header(‘Location: http://localhost/login.php’);

}

?>

logout.php

<?php

session_start();

$_SESSION = array();

session_destroy();

header(‘Location: http://localhost/login.php’);

?>

យើងនៅតែ initialize នូវ session ជាមួយនឹង session_start() បន្ទាប់ពីយើងអាច clear នូវsession បានដោយធ្វើអោយ $_SESSION subperglobal ទៅជា empty array បន្ទាប់ មកយើង ធ្វើការDestroy session ហើយនឹង associate data ដោយការ call session_destroy() function ។

ចំនាំ ៖ ដើម្បីលប់ចេញនូវធាតុទាំងអស់របស់ session អ្នកត្រូវតែផ្ដល់ empty array ទៅអោយ variableនោះ ។

មេរៀនទី១០: PHP-Login​ Form

មេរៀនទី១០: PHP-Login​ Form

Login​ Form វាជា Form ចាំបាច់ដែល Website ឬ Program ប្រភេទ Management System ត្រូវតែមានព្រោះ វាគឺជា Form ដែលបង្កើត ដើម្បីរក្សាទុកទិន្នន័យរបស់អ្នកមាន សុវត្ថិភាព ពីអ្នកចង់ ចូលមកគ្រប់គ្រងដោយគ្មាន សិទ្ធគ្រប់ គ្រង ។ ថ្ងៃនេះ Expert Training Center លើកយកការ បង្កើត Form Login ដ៏សាមញ្ញមួយ ដែលប្រើភាសា PHP និង MySQL មកបង្កើត។
បញ្ជាក់៖ នេះគ្រាន់តែជាឧទាហរណ៍តែប៉ុណ្ណោះ វាមិនមែនជា Complete Login Form នោះទេ វាគ្រាន់តែជាផ្នែក Process និង វិភាគ User & Password ដែលនៅក្នុង Form ធៀបនឹង Database ថាត្រូវឬខុស។ ចំណុចសំខាន់នៃលំហាត់មួយនេះគឺ Submit User & Password ទៅ Compare ជា មួយ Field User & Password នៅក្នុង Database ថាត្រូវឬខុស។ឥឡូវនេះ យើងចាប់ផ្តើម បង្កើត វា : មុនដំបូងយើងបង្កើត Form Login File ដែលមានឈ្មោះថា login.php។
1កំណាត់កូដបង្កើត Form
<!DOCTYPE html>

<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=ISO-8859-1″>
<title>Login Form</title>
</head>
<body>
<form method=”post” action=”validate_login.php” >
<table border=”1″ >
<tr>
<td><label for=”users_email”>Email</label></td>    <td><input type=”text”
name=”users_email” id=”users_email”></td>

</tr>
<tr>
<td><label for=”users_pass”>Password</label></td>
<td><input name=”users_pass”
type=”password” id=”users_pass”></input></td>
</tr>
<tr>

<td><input type=”submit” value=”Submit”/>
<td><input type=”reset” value=”Reset”/>
</tr>
</table>
</form>
</body>
</html>

កូដខាងលើនេះជាកូដបង្កើត Form Login ដែលមាន Process ត្រង់ Submit ! ពេលដែលយើងចុច Submit វានឹងលោតទៅ Page មួយទៀតឈ្មោះថា validate-login.php ដោយបញ្ជូនទិន្នន័យ USER & PASSWORD តាម Method POST។
២- បង្កើត Database គ្រប់គ្រង User បន្ទាប់មកយើង បង្កើត Database ឈ្មោះថា testlogin នៅក្នុង MySQL (phpmyadmin)

CREATE DATABASE testlogin

រួចបង្កើត Table មួយឈ្មោះថា usermgr ដែលមាន Field Name ដូចតារាងខាងក្រោម:

Field Name Data type Special Key
users_ID INT *Primary key + Auto Incremental
users_email VARCHAR
Users_password VARCHAR

CREATE TABLE usermgr (
id MEDIUMINT NOT NULL AUTO_INCREMENT,
users_email VARCHAR(30) NOT NULL,
users_password VARCHAR(30) NOT NULL,
PRIMARY KEY (id)
) ENGINE=MyISAM;
រួចបញ្ចូលទិន្នន័យ ក្នុង Table នោះ

INSERT INTO usermgr(users_email, users_password) VALUES(‘sok’, ‘123’);
INSERT INTO usermgr(users_email, users_password) VALUES(‘dara’, ‘456’);

3-បង្កើត PHP File   បន្ទាប់ពីបង្កើត Database និងបញ្ចូល ទិន្នន័យរួចមក យើងបង្កើត validate-login.php ដើម្បីត្រួត ពិនិត្យ User និង Password ដែលមាន code ដូចខាងក្រោម
// ចាប់ Data ពី POST របស់ FORM LOIN ដាក់ក្នុង អញ្ញត្តិ email & pass
$email = $_POST[“users_email”];
$pass = $_POST[“users_pass”];
// ភ្ជាប់ទៅកាន់ Database
$con = mysql_connect(“localhost”,”root”,””);
// វិភាគថាបានភ្ជាប់ទៅកាន់ Database បានសម្រេចឬអត់?
if(! $con)
{
die(‘Connection Failed’.mysql_error());
}
// ជ្រើសរើសឈ្មោះ Database ដើម្បីប្រើប្រាស់ គឺ testlogin
mysql_select_db(“testlogin”,$con);
// ស្រង់យក User Email និង Password ដែលមាន User_email ស្មើនឹងទិន្នន័យ ដែលយើងបានវាយក្នុង Textbox Email
$result = mysql_query(“SELECT users_email, users_password FROM users WHERE users_email = $email”);
$row = mysql_fetch_array($result);
//វិភាគ Users_Email និង Password_password ដែលស្រង់មកពី Database ថាដូចគ្នានឹងទិន្នន័យដែលយើង
if($row[“users_email”]==$email && $row[“users_password”]==$pass)
echo”You are a validated user.”;
else
echo”Sorry, your credentials are not valid, Please try again.”;
?>
———————————————————————–
មជ្ឈមណ្ឌល អាយធី ខេប៊ូ-IT CAMBO
បង្កើតកម្មវិធីសម្រាប់ក្រុមហ៊ុន អង្កការ ក្នុងតម្លៃសមរម្យ:

–     រចនាវ៉ិបសាយ & Hosting គ្រប់គ្រងក្រុមហ៊ុន…
–     បង្កើតកម្មវិធីគ្រប់គ្រងទិន្នន័យ គ្រប់គ្រងស្តុក លក់ទំនិញ
–     ដំឡើងប្រព័ន្ធ ណែតវឺក Networking និងសេវាជួសជុលកុំព្យូទ័រ
www.itcambo.com

កម្មវិធីសិក្សាបើកវគ្គខ្លី(សិស្សចាប់ពី ១០ឡើងទៅ)
–  វគ្គរចនាវ៉ិបសាយ HTML,CSS, Javascript, PHP, ASP.NET
–  វគ្គដំឡើងកុំព្យូទ័រណែតវឺក Networking
–   វគ្គជួសជុលកុំព្យូទ័រ Computer Repairing
–   វគ្គសរសេរកម្មវិធីលើ iOS (កម្មវិធី iPhone, iPAD)
ទំនាក់ទំ​នង 0977778647-077778647-070778647
Email: chhunnan@gmail.com
Chat: yahoo, skype: chhunnan
www.itcambo.com
ITCAMBO-NEW

 

មេរៀនទី១១: PHP ​សម្រាប់ Developer

មេរៀនទី១១: គន្លឹះ​ PHP ​សម្រាប់ Developer

PHP គឺជា​ភាសា Programming  ដែល​គេ​និយម​ប្រើ​ជាងគេ​មួយ សម្រាប់​បង្កើត​គេហទំព័រ ។ ប្រសិន​បើ​លោកអ្នក​បាននឹង​កំពុង​សិក្សា ឬចង់​ស្វែង​យល់​ពី​ការ​ប្រើប្រាស់​នានា លោកអ្នក​អាច​ចូល​ទៅកាន់គេហទំព័រ​ដើម​ PHP manual​ ។ PHP អាច​ជួយ​លោកអ្នក​ឲ្យ​បង្កើត​គេហទំព័រ ដែល​អាច​កែប្រែ​បាន​ដោយ​សេរីជាមួយ​នឹង Functions ដែល​មានសម្រាប់ ។
ខាងក្រោម​នេះ ជាគន្លឹះ​មេរៀន​ទាក់​ទង​នឹង​ការ​បង្កើត និង​ប្រើប្រាស់​ ដែល​សំបុកអាយធី បានដក​ស្រង់​ចេញ​មកពី​គេហទំព័រ និង​ប្លក់​ល្អៗ ៖
1១. បង្កើត Instagram Filters ជាមួយ PHP
២. បង្ហាញ Tweets ដែល​លោកអ្នក​ចូលចិត្ត ដោយ​ប្រើ PHP និង jQuery
៣. របៀប​បង្កើត​ទំព័រ​ដែល​អាច​បកបាន (Flip) ជាមួយ turn.js
៤. គន្លឹះ​ងាយៗ ក្នុងការបង្កើត Form ដោយប្រើ FuelPHP
១៧. ​ប្រព័ន្ធ​បកប្រែ​គេហទំព័រYou Translate!
២០. Tycoon CRM

មេរៀនទី១២: ការណែនាំអំពី MySQL

មេរៀនទី១២: ការណែនាំអំពី MySQL

. តើ​អ្វី​ជា MySQL?

MySQL គឺ​ជា relational database management system (RDBMS) មួយ​ដែល​មាន​ការ​និយម​ប្រើ​ប្រាស់​ពី​សំណាក់​អ្នក​កសាង​គេហ​ទំព័រ​។ យើង​ប្រើ MySQL ដើម្បី​រក្សា​ទុក​ទិន្នន័យ​របស់​គេហ​ទំព័រ របស់​យើង ហើយ​អាច​ធ្វើ​ការ​កែ​ប្រែ និង លុប​ទិន្នន័យ​ជា​ដើម។
អ្នក​កសាង​គេហ​ទំព័រ​ជា​ច្រើន​នៅ​លើ​ពិភព​លោក បាន​ជ្រើស​រើស PHP និង MySQL ដើម្បី​យក​មក កសាង​គេហ​ទំព័រ​របស់​ពួក​គេ។
MySQL បាន​ក្លាយ​ជា open source database ល្បី​ជាង​គេ​នៅ​លើ​ពិភព​លោក ដោយ​សារ​តែ វា​មាន ដំណើរ​ការ​លឿន, ផ្តល់​ទំនុក​ចិត្ត​ខ្ពស់ និង ងាយ​ស្រួល​ក្នុង​ការ​ប្រើ​ប្រាស់។

សំគាល់៖
មុន​នឹង​ចាប់​ផ្តើម​រៀន MySQL យើង​ត្រូវ​ចេះ HTML និង PHP ជា​មុន​សិន

 ២. ប្រភេទទិន្នន័យ

 ខាង​ក្រោម​នេះ គឺ​ជា​ប្រភេទ​ទិន្នន័យ​របស់ MySQL ដែល​យើង​តែង​តែ​ប្រើ​ញឹក​ញាប់

ប្រភេទ​ទិន្នន័យ​ជា​ចំនួន

INT : ជា​ប្រភេទ​ទិន្នន័យ​ជា​ចំនួនគត់ វា​មាន​ប្រវែង -2147483648 to 2147483647 ករណី​គិត​សញ្ញា និង​ពី 0 ទៅ 4294967295 ករណី​មិន​គិត​សញ្ញា។
smallint : ជា​ប្រភេទ​ទិន្នន័យ​ជា​ចំនួន​គត់​ដែរ តែ​មាន​ទំហំ​តូច​ជាង int។ វា​មាន​ប្រវែង ពី -32768 ទៅ 32767 ក្នុង​ករណី គិត​សញ្ញា និង​ពី 0 to 65535 ក្នុង​ករណី​មិន​គិត​សញ្ញា។
TINYINT : ជា​ប្រភេទ​ទិន្នន័យ​ជា​ចំនួន​គត់​ដែរ តែ​មាន​ទំហំ​តូច​ជាង smallint។ វា​មាន​ប្រវែង​ពី -128 ទៅ 127 ក្នុង​ករណី​គិត​សញ្ញា និង​ពី 0 to 255 ក្នុង​ករណី​មិន​គិត​សញ្ញា​។
FLOAT(M,D) : ជា​ប្រភេទ​ទិន្នន័យ​ចំនួន​ទសភាគ ដែល M មាន​នាទី​កំណត់​ប្រវែង​នៃ​ការ​បង្ហាញ និង D កំណត់​ប្រវែង​ចំនួន​ក្រោយ​ក្បៀស។
DOUBLE(M,D) : ជា​ប្រភេទ​ទិន្នន័យ​ចំនួន​ទសភាគ​ដែរ ប៉ុន្តែ​វា​មាន​ប្រវែង​ធំ​ជាង float។

ប្រភេទ​ទិន្នន័យ​ជា អក្សរ

CHAR(M) : ជា​ប្រភេទ​ទិន្នន័យ​ជា​អក្សរ ដែល​មាន​ប្រវែង​ពី ១ → ២៥៥ តួ​អក្សរ។ ទំហំ​នៃ​ការ​ផ្ទុក​របស់​វា អា​ស្រ័យ​ទៅ​លើ​ការ​កំណត់ ចំនួន​តួ (M)។
VARCHAR(M) : ជា​ប្រភេទ​ទិន្នន័យ​ជា​អក្សរ ហើយ​ទំហំ​នៃ​ការ​ផ្ទុក​របស់ វា​មិន​អាស្រ័យ​ទៅ​លើ​ការ​កំណត់ ចំនួន​តួ (M) នោះ​ទេ វា​អាស្រ័យ​ទៅ​លើ តម្លៃ​ដែល​វា​ផ្ទុក ហើយ​បូក​ជា​មួយ នឹង ១ byte នៃ​ទំហំ​របស់ Space។
ឧទាហរណ៍

a

TEXT : ជា​ប្រភេទ​ទិន្នន័យ​ជា​អក្សរ​ដែល​មាន​លទ្ធភាព​ផ្ទុក​បាន ៦៥៥៣៥ តួ​អក្សរ​។

 

– ប្រភេទ​ទិន្នន័យ​ជា ថ្ងៃ​ខែ​ (កាល​បរិច្ឆេទ) និង ម៉ោង

DATE : ប្រភេទ​ទិន្នន័យ​ជា​ថ្ងៃ​ខែ ដែល​មាន​ទំរង់ YYYY-MM-DDហើយ​អាច​មាន​តម្លៃ​ពី ១០០០-01-01 ដល់ 9999-12-31 ។
DATETIME : ប្រភេទ​ទិន្នន័យ​ជា​ថ្ងៃខែ និង ម៉ោង​បញ្ចូល​គ្នា ដែល​មាន​ទំរង់ YYYY-MM-DD HH:MM:SS ។
TIME : ប្រភេទ​ទិន្នន័យ​ជា​ម៉ោង ដែល​មាន​ទំរង់ HH:MM:SS ។

៣. របៀប​បង្កើត, លុប, បង្ហាញ និង ប្រើ Database

ដើម្បី​បង្កើត Database អាច​យើង​ប្រើ phpMyAdmin (មាន Interface), MySQL Console (ប្រើ Command Line) និង កម្ម​វិធី​ផ្សេង​ៗ​ទៀត​។ ប៉ុន្តែ​នៅ​ក្នុង​មេរៀន​នេះ អាយ​ធី​កូន​ខ្មែរ​សូម​លើក​យក​ MySQL Console មក​ប្រើ ដើម្បី​ឲ្យ​យើង​អាច ចង់​ចាំ និង ចេះ ពី​កូដ​របស់ MySQL។

 

. របៀប​ចូល​ទៅកាន់ MySQL Console

មុន​ដំបូង​យើង​ត្រូវ​បើក Wamp Server ជា​មុន​សិន បន្ទាប់​មក​ចុច​លើ Trail Icon របស់​វា → MySQL → MySQL Console
a

បន្ទាប់​មក​វា​នឹង​បង្ហាញ​ផ្ទាំង​មួយ​ដែល​តំរូវ​ឲ្យ​យើង​បញ្ជូល​លេខ​សំងាត់ ប៉ុន្តែ​ជា​ធម្មតា យើង​មិន​ចាំ​បាច់​វាយ​បញ្ជូល​នោះ​ទេ ដូចនេះ​យើង​គ្រាន់​ចុច Enter ពេល​នោះ​វា​បង្ហាញ​ផ្ទាំង​ដែល​អាច ឲ្យ​យើង​សរសេរ កូដ​របស់ MySQL បាន​ហើយ​។

a

សំគាល់:
វាយ exit រួច​ចុច Enter ដើម្បី​ចាក​ចេញ

 

. របៀប​បង្កើត Database

ទំរង់ទូទៅ

CREATE DATABASE database_name;

 

ឧទាហរណ៍

a

សំគាល់: យើង​អាច​ចុច​លើ Up & Down Arrow key ដើម្បី​យក command ដែល​យើង​ធ្លាប់​ប្រើ មក​ប្រើ​ម្តង​ទៀត​បាន​។

 

. របៀប​បង្ហាញ Database ទាំង​អស់​ដែល​យើង​បាន​បង្កើត

ទំរង់ទូទៅ

SHOW DATABASES;

 

ឧទាហរណ៍

a

របៀប​ជ្រើស​យក Database មក​ប្រើ

មុន​នឹង​យើង​ធ្វើ​ការ​បង្កើត Table យើង​ត្រូវ​ជ្រើស​រើស Database ជា​មុន​សិន​។

ទំរង់ទូទៅ

USE database_name;

 

ឧទាហរណ៍

a

របៀបលុប Database

ទំរង់ទូទៅ

DROP DATABASE database_name;

 

ឧទាហរណ៍

DROP DATABASE dbsample;

 

៤. របៀប​បង្កើត,លុប និង មើល​ព័ត៌មាន Table

របៀបបង្កើត Table

ទំរង់ទូទៅ

CREATE TABLE Table_Name(Field_Name1 Datatype(num),
                                             Field_Name2 Datatype(num), . . . );

ឧទាហរណ៍

mysql> CREATE TABLE tbluser(us_id INT,us_name VARCHAR(50),

us_username VARCHAR(5),us_password VARCHAR(50),create_date DATE);

 

. របៀប​បង្ហាញ​ព័ត៌មាន​ផ្សេង​ៗ​របស់ Table

ទំរង់ទូទៅ

DESC table_name;  | DESCRIPE table_name;

ឧទាហរណ៍

a

.របៀប​លុប Table ចេញ​ពី Database

ទំរង់ទូទៅ

DROP TABLE Table_Name;

ឧទាហរណ៍

ALTER TABLE tbluser;

៥. Attribute របស់ Column

Attribute គឺ​យើង​ប្រើ​វា​ដើម្បី​កំណត់​លក្ខណៈ​ទៅ​ឲ្យ Column និមួយ​ៗ​របស់ Table ដូច​ជា​កំណត់​ជា មិន​មាន​ស្ទួល ឬ ជា Primary Key ជា​ដើម។
ខាង​ក្រោម​នេះ គឺ​ជា Attribute និង មុខ​ងាររបស់​វា

. Unsigned : មិន​គិត​សញ្ញា​
. Signed : គិត​សញ្ញា
. Auto_Increment : កំណត់​វា​ឲ្យ​កើន​ដោយ​ស្វ័យ​ប្រវត្តិ (Auto number)
. Unique : មិន​អាច​មាន​ស្ទួន
. Null : អនុញ្ញាត​ឲ្យ​ទទេ
. Not Null : មិន​អនុញ្ញាត​ឲ្យ​ទទេ
. Default Value : តំណត់​តម្លៃ Default

ឧទាហរណ៍

mysql> CREATE TABLE tbluser(us_id INT UNSIGNED NOT NULL PRIMARY KEY

AUTO_INCREMENT,us_name VARCHAR(50),us_username VARCHAR(5),us_password

VARCHAR(50),create_date DATE);

a

៦. ការ​ធ្វើ​ការ​កែ​ប្រែ Table

ករណី​ដែល​យើង​បាន​បង្កើត Table រួច​ហើយ ប៉ុន្តែ​មាន​ការ​ខ្វះ,លើស ឬ ខុស​ត្រង់ យើង​មិន​ចាំ​បាច់ លុប​វា​ចោល រួច​បង្កើត​សារ​ជា​ថ្មី​នោះ​ទេ គឺ​យើង​មាន​លទ្ធភាព​អាច​ការ​ប្រែ​វា​បាន ដូច​វិធី​ដែល​មាន បង្ហាញ​ខាង​ក្រោម​។

 

. បន្ថែម Field ថ្មី​ឲ្យ Table (មាន​ទី​តាំង​បន្ទាប់​ពី field ដែល​មាន)

ទំរង់ទូទៅ

ALTER TABLE table_name ADD field_name,ADD field_name2 . . . ;

ឧទាហរណ៍

ALTER TABLE tbluser ADD us_email;

 

. បន្ថែម Field ដែល​មាន​ទីតាំង​នៅ​មុខគេ

ទំរង់ទូទៅ

ALTER TABLE table_name ADD field_name FIRST field_name2 . . . ;

ឧទាហរណ៍

ALTER TABLE tbluser ADD us_website FIRST;

 

. បន្ថែម Field ថ្មី ដែល​មាន​ទីតាំង​បន្ទាប់​ពី Field ណា​មួយ

ទំរង់ទូទៅ

ALTER TABLE table_name ADD field_name datatype AFTER other_field_name,

ADD field_name2 . . . ;

ឧទាហរណ៍

ALTER TABLE tbluser ADD us_address TEXT AFTER us_email;

 

. លុប Field ណា​មួយ​ចេញ​ពី Table

ទំរង់ទូទៅ

ALTER TABLE table_name DROP field_name ;

ឧទាហរណ៍

ALTER TABLE tbluser DROP us_website ;

 

៧. របៀប​បញ្ចូល​ទិន្នន័យ (Insert)

ទំរង់ទូទៅ

INSERT INTO table_name ( field1, field2,…fieldN )

VALUES( value1, value2,…valueN );

ឧទាហរណ៍

INSERT INTO tbluser(us_name,us_username,us_password)

VALUES(“chan reaksmey”,”reaksmey”,”R3a5mey”);

សំគាល់:
ដោយ us_id ជា auto_number ដូចនេះ​យើង​មិន​ចាំ​បញ្ចូល​ឲ្យ​វា​នោះ​ទេ​។

៨. របៀបទាញយកទិន្នន័យពី Table (Select)

ទំរង់ទូទៅ

SELECT field_name1,field_name2,.. FROM table_name [WHERE];

ឧទាហរណ៍១

mysql> SELECT us_id,us_name,us_username,us_password FROM tbluser;

+——-+—————+————-+————-+

| us_id | us_name       | us_username | us_password |

+——-+—————+————-+————-+

|     1 | Chan Reaksmey | Reaks       | R3ak5mey    |

|     2 | Chan Dara     | Dara        | dara09      |

|     3 | Sok San       | San         | 5an         |

+——-+—————+————-+————-+

3 rows in set (0.04 sec)

 

ឧទាហរណ៍២

mysql> SELECT * FROM tbluser;

+——-+—————+————-+————-+

| us_id | us_name       | us_username | us_password |

+——-+—————+————-+————-+

|     1 | Chan Reaksmey | Reaks       | R3ak5mey    |

|     2 | Chan Dara     | Dara        | dara09      |

|     3 | Sok San       | San         | 5an         |

+——-+—————+————-+————-+

3 rows in set (0.00 sec)

 

សំគាល់:
slect * មាន​ន័យ​ថា select គ្រប់ field ទាំង​អស់​របស់ Table។

. ការ​ប្រើ​ប្រាស់ WHERE

យើង​ប្រើ​ប្រាស់ WHERE នៅ​ករណី​ដែល​យើង​ចង់​ដាក់​លក្ខខ័ណ្ឌ​ទៅ​ឲ្យ​ការ​ទាញ​យក​ទិន្នន័យ របស់​យើង ដូច​ជា user ណា​ដែល​មាន លេខ us_id = 1 ជា​ដើម។

ឧទាហរណ៍

mysql> SELECT * FROM tbluser WHERE us_id <3;

+——-+—————+————-+————-+

| us_id | us_name       | us_username | us_password |

+——-+—————+————-+————-+

|     1 | Chan Reaksmey | Reaks       | R3ak5mey    |

|     2 | Chan Dara     | Dara        | dara09      |

+——-+—————+————-+————-+

2 rows in set (0.04 sec)

 

៩. របៀប​កែ​ប្រែ​ទិន្នន័យ នៅ​ក្នុង Table (Update)

នៅ​ក្នុង​ការ​កែ​ប្រែ​ទិន្នន័យ​នេះ យើង​ត្រូវ​ដឹង​ច្បាស់​ថា​តើ Record មួយ​ណា​ដែល​យើង​ចង់​ធ្វើ​ការ​កែ​ប្រែ ដូច​នេះ យើង​ចាំ​បាច់​ត្រូវ​តែ​ប្រើ លក្ខ​ខ័ណ្ឌ ដើម្បី​ធ្វើ​ការ​កែ​ប្រែ បាន។

ទំរង់ទូទៅ

UPDATE table_name SET field1=new-value1, field2=new-value2 WHERE …;

ឧទាហរណ៍

mysql> UPDATE tbluser SET us_name=”Sok Chandara” WHERE us_id=2;

Query OK, 1 row affected (0.09 sec)

Rows matched: 1  Changed: 1  Warnings: 0

 

mysql> SELECT * FROM tbluser;

+——-+—————+————-+————-+

| us_id | us_name       | us_username | us_password |

+——-+—————+————-+————-+

|     1 | Chan Reaksmey | Reaks       | R3ak5mey    |

|     2 | Sok Chandara  | Dara        | dara09      |

|     3 | Sok San       | San         | 5an         |

+——-+—————+————-+————-+

3 rows in set (0.00 sec)

១០. របៀប​លុប​ទិន្នន័យ​ចេញ​ពី Table (Delete)

ទំរង់ទូទៅ

DELETE FROM table_name [WHERE];

ឧទាហរណ៍១

mysql> DELETE FROM tbluser;

Query OK, 3 rows affected (0.08 sec)

 

mysql> SELECT * FROM tbluser;

Empty set (0.00 sec)

សំគាល់:
ក្នុង​ករណី​ដែល​យើង​មិន​បាន​ដាក់​លក្ខខ័ណ្ឌ នោះ​វា​នឹង​លុប ទិន្នន័យ​ទាំង​អស់​នៅ​ក្នុង Table។

 

ឧទាហរណ៍២

mysql> DELETE FROM tbluser WHERE us_id=3;

Query OK, 1 row affected (0.07 sec)

 

mysql> SELECT * FROM tbluser;

+——-+—————+————-+————-+

| us_id | us_name       | us_username | us_password |

+——-+—————+————-+————-+

|     1 | Chan Reaksmey | Reaks       | R3ak5mey    |

|     2 | Chan Dara     | Dara        | dara09      |

+——-+—————+————-+————-+

2 rows in set (0.03 sec)

១១. របៀប​បង្កើត​ Database ជា​មួយ phpMyAdmin

លើក​មុន​យើង​បាន​ដឹង​ពី​របៀប​នៃ​ការ​បង្កើត Database ដោយ​ប្រើ Command រួច​មក​ហើយ តែ​ពេល​នេះ យើង​មក​បង្កើត​តាម phpMyAdmin វិញ​ម្តង។

មុន​ដំបូង​យើង​បើក Wamp Server បន្ទាប់​មក​ទៀត​ចុច​លើ អាយ​ខុន​(ពណ៌​បៃតង)​របស់ Wamp → phpMyAdmin

ITCAMBO_New

មេរៀនទី១៣: Syntax របស់ MySQL

a

. តើ​អ្វី​ជា MySQL? MySQL គឺ​ជា relational database management system (RDBMS) មួយ​ដែល​មាន​ការ​និយម​ប្រើ​ប្រាស់​ពី​សំណាក់​អ្នក​កសាង​គេហ​ទំព័រ​។ យើង​ប្រើ MySQL ដើម្បី​ រក្សា​ទុក​ទិន្នន័យ​របស់​គេហ​ទំព័រ របស់​យើង ហើយ​អាច​ធ្វើ​ការ​កែ​ប្រែ និង លុប​ទិន្នន័យ​ជា​ដើម។
អ្នក​កសាង​គេហ​ទំព័រ​ជា​ច្រើន​នៅ​លើ​ពិភព​លោក បាន​ជ្រើស​រើស PHP និង MySQL ដើម្បី​យក​មក កសាង​គេហ​ទំព័រ​របស់​ពួក​គេ។  MySQL បាន​ក្លាយ​ជា open source database ល្បី​ជាង​គេ​នៅ​លើ​ពិភព​លោក ដោយ​សារ​តែ វា​មាន ដំណើរ​ការ​លឿន, ផ្តល់​ទំនុក​ចិត្ត​ខ្ពស់ និង ងាយ​ស្រួល​ក្នុង​ការ​ប្រើ​ប្រាស់។
សំគាល់៖
មុន​នឹង​ចាប់​ផ្តើម​រៀន MySQL យើង​ត្រូវ​ចេះ HTML និង PHP ជា​មុន​សិន
. ប្រភេទទិន្នន័យ

 ខាង​ក្រោម​នេះ គឺ​ជា​ប្រភេទ​ទិន្នន័យ​របស់ MySQL ដែល​យើង​តែង​តែ​ប្រើ​ញឹក​ញាប់
ប្រភេទ​ទិន្នន័យ​ជា​ចំនួន

INT : ជា​ប្រភេទ​ទិន្នន័យ​ជា​ចំនួនគត់ វា​មាន​ប្រវែង -2147483648 to 2147483647 ករណី​គិត​សញ្ញា និង​ពី 0 ទៅ 4294967295 ករណី​មិន​គិត​សញ្ញា។
smallint : ជា​ប្រភេទ​ទិន្នន័យ​ជា​ចំនួន​គត់​ដែរ តែ​មាន​ទំហំ​តូច​ជាង int។ វា​មាន​ប្រវែង ពី -32768 ទៅ 32767 ក្នុង​ករណី គិត​សញ្ញា និង​ពី 0 to 65535 ក្នុង​ករណី​មិន​គិត​សញ្ញា។
TINYINT : ជា​ប្រភេទ​ទិន្នន័យ​ជា​ចំនួន​គត់​ដែរ តែ​មាន​ទំហំ​តូច​ជាង smallint។ វា​មាន​ប្រវែង​ពី -128 ទៅ 127 ក្នុង​ករណី​គិត​សញ្ញា និង​ពី 0 to 255 ក្នុង​ករណី​មិន​គិត​សញ្ញា​។
FLOAT(M,D) : ជា​ប្រភេទ​ទិន្នន័យ​ចំនួន​ទសភាគ ដែល M មាន​នាទី​កំណត់​ប្រវែង​នៃ​ការ​បង្ហាញ និង D កំណត់​ប្រវែង​ចំនួន​ក្រោយ​ក្បៀស។
DOUBLE(M,D) : ជា​ប្រភេទ​ទិន្នន័យ​ចំនួន​ទសភាគ​ដែរ ប៉ុន្តែ​វា​មាន​ប្រវែង​ធំ​ជាង float។

ប្រភេទ​ទិន្នន័យ​ជា អក្សរ

CHAR(M) : ជា​ប្រភេទ​ទិន្នន័យ​ជា​អក្សរ ដែល​មាន​ប្រវែង​ពី ១ → ២៥៥ តួ​អក្សរ។ ទំហំ​នៃ​ការ​ផ្ទុក​របស់​វា អា​ស្រ័យ​ទៅ​លើ​ការ​កំណត់ ចំនួន​តួ (M)។
VARCHAR(M) : ជា​ប្រភេទ​ទិន្នន័យ​ជា​អក្សរ ហើយ​ទំហំ​នៃ​ការ​ផ្ទុក​របស់ វា​មិន​អាស្រ័យ​ទៅ​លើ​ការ​កំណត់ ចំនួន​តួ (M) នោះ​ទេ វា​អាស្រ័យ​ទៅ​លើ តម្លៃ​ដែល​វា​ផ្ទុក ហើយ​បូក​ជា​មួយ នឹង ១ byte នៃ​ទំហំ​របស់ Space។
ឧទាហរណ៍

a

TEXT : ជា​ប្រភេទ​ទិន្នន័យ​ជា​អក្សរ​ដែល​មាន​លទ្ធភាព​ផ្ទុក​បាន ៦៥៥៣៥ តួ​អក្សរ​។

 – ប្រភេទ​ទិន្នន័យ​ជា ថ្ងៃ​ខែ​ (កាល​បរិច្ឆេទ) និង ម៉ោង
DATE
: ប្រភេទ​ទិន្នន័យ​ជា​ថ្ងៃ​ខែ ដែល​មាន​ទំរង់ YYYY-MM-DDហើយ​អាច​មាន​តម្លៃ​ពី ១០០០-01-01 ដល់ 9999-12-31 ។
DATETIME : ប្រភេទ​ទិន្នន័យ​ជា​ថ្ងៃខែ និង ម៉ោង​បញ្ចូល​គ្នា ដែល​មាន​ទំរង់ YYYY-MM-DD HH:MM:SS ។
TIME : ប្រភេទ​ទិន្នន័យ​ជា​ម៉ោង ដែល​មាន​ទំរង់ HH:MM:SS ។

៣. របៀប​បង្កើត, លុប, បង្ហាញ និង ប្រើ Database ដើម្បី​បង្កើត Database អាច​យើង​ប្រើ phpMyAdmin (មាន Interface), MySQL Console (ប្រើ Command Line) និង កម្ម​វិធី​ផ្សេង​ៗ​ទៀត​។ ប៉ុន្តែ​នៅ​ក្នុង​មេរៀន​នេះ អាយ​ធី​កូន​ខ្មែរ​សូម​លើក​យក​ MySQL Console មក​ប្រើ ដើម្បី​ឲ្យ​យើង​អាច ចង់​ចាំ និង ចេះ ពី​កូដ​របស់ MySQL។

របៀប​ចូល​ទៅកាន់ MySQL Console

មុន​ដំបូង​យើង​ត្រូវ​បើក Wamp Server ជា​មុន​សិន បន្ទាប់​មក​ចុច​លើ Trail Icon របស់​វា → MySQL → MySQL Console

aបន្ទាប់​មក​វា​នឹង​បង្ហាញ​ផ្ទាំង​មួយ​ដែល​តំរូវ​ឲ្យ​យើង​បញ្ជូល​លេខ​សំងាត់ ប៉ុន្តែ​ជា​ធម្មតា យើង​មិន​ចាំ​បាច់​វាយ​បញ្ជូល​នោះ​ទេ ដូចនេះ​យើង​គ្រាន់​ចុច Enter ពេល​នោះ​វា​បង្ហាញ​ផ្ទាំង​ដែល​អាច ឲ្យ​យើង​សរសេរ កូដ​របស់ MySQL បាន​ហើយ​។

aសំគាល់:
វាយ exit រួច​ចុច Enter ដើម្បី​ចាក​ចេញ

របៀប​បង្កើត Database

ទំរង់ទូទៅ

CREATE DATABASE database_name;

ឧទាហរណ៍

aសំគាល់: យើង​អាច​ចុច​លើ Up & Down Arrow key ដើម្បី​យក command ដែល​យើង​ធ្លាប់​ប្រើ មក​ប្រើ​ម្តង​ទៀត​បាន​។

របៀប​បង្ហាញ Database ទាំង​អស់​ដែល​យើង​បាន​បង្កើត

ទំរង់ទូទៅ

SHOW DATABASES;

ឧទាហរណ៍

aរបៀប​ជ្រើស​យក Database មក​ប្រើ

មុន​នឹង​យើង​ធ្វើ​ការ​បង្កើត Table យើង​ត្រូវ​ជ្រើស​រើស Database ជា​មុន​សិន​។

ទំរង់ទូទៅ

USE database_name;

ឧទាហរណ៍

a

របៀបលុប Database

ទំរង់ទូទៅ

DROP DATABASE database_name;

 ឧទាហរណ៍

DROP DATABASE dbsample;

 

. របៀប​បង្កើត,លុបនិងមើល​ព័ត៌មាន Table

របៀបបង្កើត Table

ទំរង់ទូទៅ

CREATE TABLE Table_Name(Field_Name1 Datatype(num),
                                             Field_Name2 Datatype(num), . . . );

ឧទាហរណ៍

mysql> CREATE TABLE tbluser(us_id INT,us_name VARCHAR(50),

                   us_username VARCHAR(5),us_password VARCHAR(50),create_date DATE);

 

របៀប​បង្ហាញ​ព័ត៌មាន​ផ្សេង​ៗ​របស់ Table

ទំរង់ទូទៅ

DESC table_name;  | DESCRIPE table_name;

ឧទាហរណ៍

a

របៀប​លុប Table ចេញ​ពី Database

ទំរង់ទូទៅ

DROP TABLE Table_Name;

ឧទាហរណ៍

ALTER TABLE tbluser;

៥. Attribute របស់ Column Attribute គឺ​យើង​ប្រើ​វា​ដើម្បី​កំណត់​លក្ខណៈ​ទៅ​ឲ្យ Column និមួយ​ៗ​របស់ Table ដូច​ជា​កំណត់​ជា មិន​មាន​ស្ទួល ឬ ជា Primary Key ជា​ដើម។
ខាង​ក្រោម​នេះ គឺ​ជា Attribute និង មុខ​ងាររបស់​វា

. Unsigned : មិន​គិត​សញ្ញា​
. Signed : គិត​សញ្ញា
. Auto_Increment : កំណត់​វា​ឲ្យ​កើន​ដោយ​ស្វ័យ​ប្រវត្តិ (Auto number)
. Unique : មិន​អាច​មាន​ស្ទួន
. Null : អនុញ្ញាត​ឲ្យ​ទទេ
. Not Null : មិន​អនុញ្ញាត​ឲ្យ​ទទេ
. Default Value : តំណត់​តម្លៃ Default

ឧទាហរណ៍
mysql> CREATE TABLE tbluser(us_id INT UNSIGNED NOT NULL PRIMARY KEY

AUTO_INCREMENT,us_name VARCHAR(50),us_username VARCHAR(5),us_password

VARCHAR(50),create_date DATE);

a៦. ការ​ធ្វើ​ការ​កែ​ប្រែ Table ករណី​ដែល​យើង​បាន​បង្កើត Table រួច​ហើយ ប៉ុន្តែ​មាន​ការ​ខ្វះ,លើស ឬ ខុស​ត្រង់ យើង​មិន​ចាំ​បាច់ លុប​វា​ចោល រួច​បង្កើត​សារ​ជា​ថ្មី​នោះ​ទេ គឺ​យើង​មាន​លទ្ធភាព​អាច​ការ​ប្រែ​វា​បាន ដូច​វិធី​ដែល​មាន បង្ហាញ​ខាង​ក្រោម​។

បន្ថែម Field ថ្មី​ឲ្យ Table (មាន​ទី​តាំង​បន្ទាប់​ពី field ដែល​មាន)

ទំរង់ទូទៅ
ALTER TABLE table_name ADD field_name,ADD field_name2 . . . ;

ឧទាហរណ៍
ALTER TABLE tbluser ADD us_email;

បន្ថែម Field ដែល​មាន​ទីតាំង​នៅ​មុខគេ

ទំរង់ទូទៅ

ALTER TABLE table_name ADD field_name FIRST field_name2 . . . ;

ឧទាហរណ៍

ALTER TABLE tbluser ADD us_website FIRST;

បន្ថែម Field ថ្មី ដែល​មាន​ទីតាំង​បន្ទាប់​ពី Field ណា​មួយ

ទំរង់ទូទៅ

ALTER TABLE table_name ADD field_name datatype AFTER other_field_name,

ADD field_name2 . . . ;

ឧទាហរណ៍

ALTER TABLE tbluser ADD us_address TEXT AFTER us_email;

លុប Field ណា​មួយ​ចេញ​ពី Table

ទំរង់ទូទៅ

ALTER TABLE table_name DROP field_name ;

ឧទាហរណ៍

ALTER TABLE tbluser DROP us_website ;

៧. របៀប​បញ្ចូល​ទិន្នន័យ (Insert)

ទំរង់ទូទៅ

INSERT INTO table_name ( field1, field2,…fieldN )

VALUES( value1, value2,…valueN );

ឧទាហរណ៍

INSERT INTO tbluser(us_name,us_username,us_password)

VALUES(“chan reaksmey”,”reaksmey”,”R3a5mey”);

សំគាល់:
ដោយ us_id ជា auto_number ដូចនេះ​យើង​មិន​ចាំ​បញ្ចូល​ឲ្យ​វា​នោះ​ទេ​។

៨. របៀបទាញយកទិន្នន័យពី Table (Select)

ទំរង់ទូទៅ

SELECT field_name1,field_name2,.. FROM table_name [WHERE];

ឧទាហរណ៍១

mysql> SELECT us_id,us_name,us_username,us_password FROM tbluser;

+——-+—————+————-+————-+

| us_id | us_name       | us_username | us_password |

+——-+—————+————-+————-+

|     1 | Chan Reaksmey | Reaks       | R3ak5mey    |

|     2 | Chan Dara     | Dara        | dara09      |

|     3 | Sok San       | San         | 5an         |

+——-+—————+————-+————-+

3 rows in set (0.04 sec)

ឧទាហរណ៍២

mysql> SELECT * FROM tbluser;

+——-+—————+————-+————-+

| us_id | us_name       | us_username | us_password |

+——-+—————+————-+————-+

|     1 | Chan Reaksmey | Reaks       | R3ak5mey    |

|     2 | Chan Dara     | Dara        | dara09      |

|     3 | Sok San       | San         | 5an         |

+——-+—————+————-+————-+

3 rows in set (0.00 sec)

សំគាល់:
slect * មាន​ន័យ​ថា select គ្រប់ field ទាំង​អស់​របស់ Table។

ការ​ប្រើ​ប្រាស់ WHERE

យើង​ប្រើ​ប្រាស់ WHERE នៅ​ករណី​ដែល​យើង​ចង់​ដាក់​លក្ខខ័ណ្ឌ​ទៅ​ឲ្យ​ការ​ទាញ​យក​ទិន្នន័យ របស់​យើង ដូច​ជា user ណា​ដែល​មាន លេខ us_id = 1 ជា​ដើម។

ឧទាហរណ៍

mysql> SELECT * FROM tbluser WHERE us_id <3;

+——-+—————+————-+————-+

| us_id | us_name       | us_username | us_password |

+——-+—————+————-+————-+

|     1 | Chan Reaksmey | Reaks       | R3ak5mey    |

|     2 | Chan Dara     | Dara        | dara09      |

+——-+—————+————-+————-+

2 rows in set (0.04 sec)

៩. របៀប​កែ​ប្រែ​ទិន្នន័យ នៅ​ក្នុង Table (Update)

នៅ​ក្នុង​ការ​កែ​ប្រែ​ទិន្នន័យ​នេះ យើង​ត្រូវ​ដឹង​ច្បាស់​ថា​តើ Record មួយ​ណា​ដែល​យើង​ចង់​ធ្វើ​ការ​កែ​ប្រែ ដូច​នេះ យើង​ចាំ​បាច់​ត្រូវ​តែ​ប្រើ លក្ខ​ខ័ណ្ឌ ដើម្បី​ធ្វើ​ការ​កែ​ប្រែ បាន។

ទំរង់ទូទៅ

UPDATE table_name SET field1=new-value1, field2=new-value2 WHERE …;

ឧទាហរណ៍

mysql> UPDATE tbluser SET us_name=”Sok Chandara” WHERE us_id=2;

Query OK, 1 row affected (0.09 sec)

Rows matched: 1  Changed: 1  Warnings: 0

mysql> SELECT * FROM tbluser;

+——-+—————+————-+————-+

| us_id | us_name       | us_username | us_password |

+——-+—————+————-+————-+

|     1 | Chan Reaksmey | Reaks       | R3ak5mey    |

|     2 | Sok Chandara  | Dara        | dara09      |

|     3 | Sok San       | San         | 5an         |

+——-+—————+————-+————-+

3 rows in set (0.00 sec)

១០. របៀប​លុប​ទិន្នន័យ​ចេញ​ពី Table (Delete)

ទំរង់ទូទៅ

DELETE FROM table_name [WHERE];

ឧទាហរណ៍១

mysql> DELETE FROM tbluser;

Query OK, 3 rows affected (0.08 sec)

mysql> SELECT * FROM tbluser;

Empty set (0.00 sec)

សំគាល់:
ក្នុង​ករណី​ដែល​យើង​មិន​បាន​ដាក់​លក្ខខ័ណ្ឌ នោះ​វា​នឹង​លុប ទិន្នន័យ​ទាំង​អស់​នៅ​ក្នុង Table។

ឧទាហរណ៍២

mysql> DELETE FROM tbluser WHERE us_id=3;

Query OK, 1 row affected (0.07 sec)

mysql> SELECT * FROM tbluser;

+——-+—————+————-+————-+

| us_id | us_name       | us_username | us_password |

+——-+—————+————-+————-+

|     1 | Chan Reaksmey | Reaks       | R3ak5mey    |

|     2 | Chan Dara     | Dara        | dara09      |

+——-+—————+————-+————-+

2 rows in set (0.03 sec)

១១. របៀប​បង្កើត​ Database ជា​មួយ phpMyAdmin

លើក​មុន​យើង​បាន​ដឹង​ពី​របៀប​នៃ​ការ​បង្កើត Database ដោយ​ប្រើ Command រួច​មក​ហើយ តែ​ពេល​នេះ យើង​មក​បង្កើត​តាម phpMyAdmin វិញ​ម្តង។

មុន​ដំបូង​យើង​បើក Wamp Server បន្ទាប់​មក​ទៀត​ចុច​លើ អាយ​ខុន​(ពណ៌​បៃតង)​របស់ Wamp → phpMyAdmin
aបន្ទាប់​បន្ទាប់​មក ដាក់​ឈ្មោះ Database និង ធ្វើ​ការ​កំណត់​ផ្សេងៗ​ទៀត​ដូច​រូប​ខាង​ក្រោម

aបន្ទាប់​ពី​យើង​បង្កើត Database រួច យើង​អាច​ធ្វើ​ការ​បង្កើត Table ទៅ​តាម​ដែល​យើង​ចង់​បាន។
ប៉ុន្តែ ក្នុង​ការ​បង្កើត Table នៅ​ក្នុង phpMyAdmin មាន​ការ​ពិបាក​បន្តិច ដូច​នេះ នៅ​ក្នុង​មេរៀន​ក្រោយ យើង​នឹង​បង្ហាញ​កម្ម​វិធី​មួយ​ដែល​អាច​ឲ្យ​យើង​បង្កើត Table ដោយ​ងាយ​ស្រួល​។

១២. របៀប​បង្កើត Database និង Table ជា​មួយ​នឹង Navicat Navicat គឺ​ជា​កម្មវិធី​មួយ​ដែល​អាច​ឲ្យ​យើង​បង្កើត Database និង Table បាន​យ៉ាង​ងាយ​ស្រួល ដែល​វា​មាន Tools ស្រាប់​ៗ​ឲ្យ​យើង​ប្រើ​។ នៅ​ពេល​ដែល​យើង​តំលើង​វា​រួច​ហើយ វា​តម្រូវ​ឲ្យ​យើង​បង្កើត Connection ជា​មុន​សិន ដោយ​ចុច​លើ

aបន្ទាប់​មក​យើង​ដាក់​ឈ្មោះ​ឲ្យ Connection និង អាច​ធ្វើ​ការ​កំណត់​ផ្សេង​ៗ​ទៀត​ រួច​ចុច​ប៊ូតុង OK

aរបៀប​បង្កើត Database បន្ទាប់​ពី​យើង​បង្កើត Connection រួច​ហើយ យើង​ចុច​លើ Connection ពេល​នោះ​វា​នឹង​បង្ហាញ Databases របស់​យើង​ទាំង​អស់​ដែល​បាន​បង្កើត​។ ដើម្បី​បង្កើត Database យើង​គ្រាន់​តែ​ចុច Mouse ស្តាំ រួច​យក New Databases

aបន្ទាប់់​មក ដាក់​ឈ្មោះ Database និង ធ្វើ​ការ​កំណត់​ឲ្យ​វា​ស្គាល់​អក្សរ យូនីកូដ រួច​ចុច​ប៊ូតុង OK

aរបៀប​បង្កើត Table

ដើម្បី​បង្កើត Table យើង​គ្រាន់​តែ​ចុច​ពីរ​ដង​លើ Database របស់​យើង​រួច Mouse ស្តាំ​លើ Table → New Table

aបន្ទាប់​មក​វា​នឹង​បង្ហាញ​តារាង​មួយ​ដែល​មាន​ឧបករណ៍​ស្រាប់​ៗ​ដើម្បី​ឲ្យ​យើង​ធ្វើ​ការ​បង្កើត Table ។

a១៣. របៀប Export និង Import Database នៅក្នុង phpMyAdmin នៅ​ក្នុង​ករណី​ដែល​យើង​ចង់​យក គេហ​ទំព័រ (project) របស់​យើង​ដែល​ភ្ជាប់​ជា​មួយ​នឹង database ទៅ​ដំណើរ​ការ​លើ​កុំព្យូរទ័រ​ផ្សេង គឺ​ដំណាក់​កាល​ទី​១យើង​ត្រូវ copy project របស់​យើង​ដាក់​ចូល​ក្នុង wamp server នៃ​កុំព្យូទ័រ​នោះ​។ ចុះ​ចំណែក​ឯ database តើ​យើង copy តាម​របៀប​ណា​?

ដើម្បី​អាច​យក database ទៅ​ប្រើ​នៅ​ក្នុង​កុំព្យូទ័រ​ផ្សេង​ទៀត គឺ​យើង​ត្រូវ Export (Backup) វា​សិន បន្ទាប់​មក​ទើប​យើង​យក file ដែល​យើង​បាន export នោះ​ទៅ​ធ្វើ​ការ Import ចូល​ទៅ​ក្នុង កុំព្យូទ័រ ផ្សេង​ដែល​យើង​ចង់​ប្រើ database នោះ។

របៀប Export Database ដើម្បី​ធ្វើ​ការ Export មុន​ដំបូង​យើង​ត្រូវ​ចូល​ទៅ​ក្នុង phpMyAdmin បន្ទាប់​មក​ចុច​លើ database ដែល​យើង​ចង់​ធ្វើ​ការ export រួច​យើង​ចុច​លើ​ប៊ូតុង Export

aចុច​ប៊ូតុង OKជា​ការ​ស្រេច។ ចំពោះ database ដែល​យើង​បាន ធ្វើ​ការ Export នោះ​វា​មាន extension .sql។

aរបៀប Import Database  ដើម្បី Import database មុន​ដំបូង​យើង​ត្រូវ​បង្កើត database ទទេ​ថ្មី​មួយ​សិន បន្ទាប់​មក​ចុច​លើ database នោះ រួច​ចុច​លើ​ប៊ូតុង Import បន្ទាប់​មក Browser រក database ដែល​យើង​បាន backup

aបន្ទាប់​មក​ចុច​លើ​ប៊ូតុង Go ជា​ការ​ស្រេច។
aសំគាល់:
ក្នុង​ករណី​ដែល​យើង​ធ្វើ​ការ​បង្ហោះ​គេហទំព័រ​របស់​យើង​ទៅ​លើ Server ក៏​យើង​ធ្វើ​តាម វិធី​នេះ​ដែរ គឺ​មុន​ដំបូង​យើង Copy project របស់​យើង​ទៅ​លើ Hosting បន្ទាប់​មក export database របស់​យើង​ទៅ import ចូល database server ។

មេរៀនទី១៤: វិធី Backup MySQL

មេរៀនទី១៤:  វិធី​ Backup MySQL Database

MySQL គឺ​ជា​ប្រព័ន្ធ​គ្រប់គ្រង Database កូដ​ចំហ ដ៏​ល្បី​ល្បាញ​ និងពេញ ​និយម​បបំផុត​ សម្រាប់បង្កើត​គេហទំព័រ ។ ប្រសិន​បើ​លោកអ្នក​ប្រើប្រាស់ MySQL Databases នៅក្នុង​គេហទំព័រ​របស់អ្នក នោះ​លោកអ្នក​តែងតែ​ធ្វើការ​រក្សាទុក បម្រុង (make backup) នៃ​ទិន្នន័យ​ទាំងអស់ ដើម្បី​ការពារ​ការ​បាត់បង់ ដោយ​ប្រការ​ណាមួយ ។ ខាងក្រោមនេះ គឺជា​គន្លឹះ​ល្អៗ ទាំង១០ ចំនុច ដែល​អាច​ឲ្យ​វា​ធ្វើការ​ដោយ​ស្វ័យ​ប្រវត្តិ និង​ដោយផ្ទាល់ក្នុង​ដំណើរ​ការ​រក្សាទុក​បម្រុង MySQL databases ។
1១.  ការ​ Backup ដោយប្រើប្រាស់ MySQLDump ការ Backup ទិន្នន័យ​អាចធ្វើ​ទៅបាន ដោយប្រើ mysqldump utility ដែល​អាច​ដំណើរការ​ជាមួយ MySQL ។ ជាពិសេស​លោកអ្នក អាច​ប្រើ mysqldump, ដែល​រួមមានការ Backup file database ទៅ​កាន់ server ដទៃ និងអាច​ជា file compressed gzip ផងដែរ ។
២. MySQL Export: តើធ្វើការ​ Backup MySQL Database ដោយ​របៀបណា?  លោកអ្នក​អាច backup database ដោយ​បង្កើត dump file (export / backup) ដោយ​ប្រើ​គណនី​របស់​លោកអ្នក តាមរយៈ phpMyAdmin tool នៅក្នុង cPanel (Hosting) ។
៣. ការ​ Backup MySQL Database ដោយ​ស្វ័យ​ប្រវត្តិទៅ​កាន់ Amazon S3  លោកអ្នក​ក៏​អាច​ប្រើប្រាស់ Amazon S3 ដើម្បី backup mysql databases របស់​អ្នក ដែល​ប្រើ script ដែល​មាន​ដោយ​ស្វ័យ​ប្រវត្តិ, បន្ទាប់​មកទៀត វានឹង​ផ្លាស់​ទី ទៅ​រក្សាទុក​ក្នុង Amazon S3 ។
៤. របៀប​ Backup MySQL Databases, Web Server Files ទៅកាន់ FTP Server ដោយ​ស្វ័យ​ប្រវត្តិ នេះ​ជា​វិធី​ដ៏​ងាយស្រួល​មួយ ក្នុង​ការ backup ទិន្នន័យ សម្រាប់​អ្នក​ប្រើ​ប្រាស់ ដែល​ដំណើរ​ការលើ web server របស់​ខ្លួន​ ជាមួយ MySQL server នៅលើ dedicated box ឬ VPS (Virtual Private Machine) ។ អ្វី​ដែល​លោកអ្នក​គួរ​ប្រើ​នោះគឺ FTP ឬ NAS backup គឺជា​ឧបករណ៍​សម្រាប់​ Backup ទិន្នន័យដ៏​មានសុវត្ថិភាព ។
៥. របៀប​ផ្ញើសារ​ឲ្យ​ខ្លួនឯង​អំពី​ការ​ Backup MySQL Database Table ជាមួយ PHP វា​នឹង​ផ្ញើសារ​អេឡិច​ត្រូនិច មកកាន់​លោកអ្នកដោយ​មាន​ភ្ជាប់ file .sql  (attachment file) ដោយ​លោកអ្នក​អាច​ធ្វើការ​ back up tables ជាក់​លាក់​ណាមួយ យ៉ាងងាយស្រួល ។
៦. របៀប Backup MySQL Database ដោយ​ប្រើ PHP ទាញយក query database backup ចេញពី PHP file ហើយ​ដើម្បី restore ឲ្យ​ដូចដើមវិញ លោកអ្នក​ត្រូវ run LOAD DATA INFILE query មកវិញ។
៧. របៀប Backup Database ឲ្យ​ក្លាយជា File XML ដោយ​ប្រើ PHP

វានឹង​បង្ហាញ PHP snippet ដែលជា outputs នៃ database មកជា XML. XML មិនមែនជា​ប្រភេទ file format ដែលងាយស្រួល​ក្នុងការ restore table ទៅវិញ​នោះទេ ប៉ុន្តែ​ XML ជា file ដែល​ងាយ read ទិន្នន័យ​មក​បង្ហាញ​ជាទីបំផុត ។
៨. របៀប Backup MySQL Database តាមរយៈ SSH
SSH អាច​ត្រូវ​បាន​គេប្រើ backup ទិន្នន័យ MySQL ដែល​មានទំហំធំ ។
៩. របៀប Backup MySQL Database ដោយ​ស្វ័យ​ប្រវត្តិ (សម្រាប់​អ្នក​ប្រើ Linux)
ប្រសិន​បើ លោកអ្នកជា​អ្នក​ប្រើប្រាស់ Linux នោះ​អ្នក​អាច Backup ទិន្នន័យ​ MySQL Database បាន​ដោយ​ស្វ័យ​ប្រវត្តិ​ដោយ​ប្រើប្រាស់ cron ។
១០. Ubuntu Linux Backup MySQL Server Shell Script

លោកអ្នក​ក៏​អាច backup ទិន្នន័យចេញ​ពី MySQL server databases មកកាន់ ftp server របស់​លោកអ្នក​បាន ប្រសិន​បើ​អ្នក​មាន dedicated VPS server ជាមួយនឹង Ubuntu Linux.

មេរៀនទី១៥: លប់ Spam WordPress

មេរៀនទី១៥: លប់ Spam លើ WordPress

ពេលខ្លះគេហទំព័ររបស់យើង មានការរំខានពី Spam ដែលបង្កើត Comment គ្មានបានរាប់មិនអស់។ Example : ក្នុងអត្ថបទមួយ មាន Comment ៥០-២ឬ៣០០។ ចំពោះ Comment ទាំងអស់នេះនិងធ្វើឲ្យ គេហទំព័ររបស់យើង មានភាពយឺត, ឡើង Banwidth យ៉ាងឆាប់រហ័ស ហើយ Page ឬ Post និមួយៗ មានទំហំរហួតដល់ ១០ទៅ២០mb។ កត្តានេះក៏អាចធ្វើឲ្យ Hosting របស់យើង down បានផងដែរ។
1១-  លុប Comment ចាស់ចេញឲ្យអស់ យើងត្រូវតែលុប comment ចាស់ៗចេញឲ្យអស់ទោះ បីវាជា Spam ឬ មិនមែន Spam ក៏ដោយ។ ប៉ុន្តែការលុប Comment នៅក្នុង WordPress យើងអាច លុបចោល ១ម្តងបានតែ ២០ ចុះប្រសិនបើ វាមានដល់ទៅ ៦-៧០០០ តើយើងត្រូវលុបប៉ុន្មានដង?

ដូច្នេះគេមានវិធីមួយដើម្បីលុប Comment ទាំងអស់នេះដោយចូលទៅកាន់ phpMyadmin
ដើម្បីប្រើកូដ Sql ក្នុងការលុបវា :
=> ដំបូងចូលទៅកាន់ Cpanel
=> បើក phpmyadmin
=> Select យកឈ្មោះ database របស់យើង
=> Click លើពាក្យ SQL
រូចវាយ Script ដូចខាងក្រោម :
DELETE from wp_comments WHERE comment_approved = ’0′;
DELETE from wp_comments WHERE comment_approved = ‘spam’;
DELETE from wp_comments WHERE comment_approved = ‘trash’;
=> Click Button GO => OK
Click Go, click OK។
1២- គ្រប់គ្រងការ Comment មិនឲ្យចេញមុន Post
Discussion គឹជាកន្លែង កំណត់ឲ្យ Comment របស់ Userដែល Comment ចូល Page ឬ Post អាចតំណើរការឲ្យឃើញ ឬមិនឲ្យ ដោយចាំApprove Comment ពី Admin, Editor ឬ Author ហើយក៏មាន Option ជាច្រើនក្នុងការកំណត់ Comments ទាំងអស់នោះនៅទីនេះផងដែរ។
1៣- ប្រើប្រាស់ Plugin ការពារ Spam
យើងក៏អាចប្រើប្រាស់ Plugin ដើម្បីគ្រប់គ្រង Spam បានផងដែរ ហើយផ្តល់លក្ខណៈងាយ ស្រួលដល់ យើងផងដែរ។ ខាងក្រោមនេះជា Plugin មួយចំនួនមានសមត្ថភាពខ្ពស់ក្នុងការទុបស្កាត់ Spam
Akismet, Quiz , Simple Trackback Validation, bcSpamBlock, Comment Spam Stopper
Cookies for Comments, JSSpamBlock
———————————————————————————————-
មជ្ឈមណ្ឌល អាយធី ខេប៊ូ-IT CAMBO
បង្កើតកម្មវិធីសម្រាប់ក្រុមហ៊ុន អង្កការ ក្នុងតម្លៃសមរម្យ:

–     រចនាវ៉ិបសាយ & Hosting គ្រប់គ្រងក្រុមហ៊ុន…
–     បង្កើតកម្មវិធីគ្រប់គ្រងទិន្នន័យ គ្រប់គ្រងស្តុក លក់ទំនិញ
–     ដំឡើងប្រព័ន្ធ ណែតវឺក Networking និងសេវាជួសជុលកុំព្យូទ័រ
www.itcambo.com

កម្មវិធីសិក្សាបើកវគ្គខ្លី(សិស្សចាប់ពី ១០ឡើងទៅ)
–  វគ្គរចនាវ៉ិបសាយ HTML,CSS, Javascript, PHP, ASP.NET
–  វគ្គដំឡើងកុំព្យូទ័រណែតវឺក Networking
–   វគ្គជួសជុលកុំព្យូទ័រ Computer Repairing
–   វគ្គសរសេរកម្មវិធីលើ iOS (កម្មវិធី iPhone, iPAD)
ទំនាក់ទំ​នង 0977778647-077778647-070778647
Email: chhunnan@gmail.com
Chat: yahoo, skype: chhunnan
www.itcambo.com
ITCAMBO-NEW

មេរៀនទី១៦: ដំឡើង Joomla លើ Local

មេរៀនទី១៦: ដំឡើង Joomla នៅលើ Local ជាមួយWampServer

ដើម្បី Install Joomla នៅលើ Local ជាមួយWamp Server យើងត្រូវតំឡើង កម្មវិធីដូចខាងក្រោមជាមុនសិន
– WARNING : យើងត្រូវតែតំឡើង Visual C++ 2010 SP1 Redistributable Package x86 or x64​VC10 SP1 vcredist_x86.exe 32 bits : http://www.microsoft.com/download/en/details.aspx?id=8328
VC10 SP1 vcredist_x64.exe 64 bits : http://www.microsoft.com/download/en/details.aspx?id=13523

-បន្ទាប់សូមចូលទៅកាន់គេហទំព័រ http://www.wampserver.com/en/ដើម្បី Download យកមក តំឡើង។ សូម Click ទីនេះដើម្បីមើលការ Detail ពី Wamp Server

1នៅ​ពេល​នេះ​យើង​មាន Web Server with PHP និង MySQL រួច​ហើយ ដូច​នេះ​យើង​អាច​តំលើង Joomla បាន​ហើយ​។ មុន​ដំបូង​យើង​ត្រូវ ចូល​ទៅ ​ទាញ​យក Joomla 3.0 ជា​មុន​សិន​។បន្ទាប់​យើង​យកFile Zip ដែល Download នោះ ដាក់ក្នុងc:\wamp\www រួច​ពន្លា​កញ្ចប់ ZIP នោះ
1
បន្ទាប់មកប្តូរឈ្មោះFolder ដែលបានពន្លានោះទៅជា Joomla ឬពាក្យផ្សេងក៏បាន។
1
ដំណើរការ Web browser ដូចជា Firefox, Chrome, IE…ដើម្បី Install Joomla  រួចក្នុង Address bar វាយពាក្យ http://localhost/localhost/joomla http://localhost/127.0.0.1/joomla
1
ប៉ុន្តែមុននិង Install Joomla គឺ Joomla ទាមទាឲ្យយើងបង្កើត Database សម្រាប់ Store data របស់ Joomla ជាមុនសិន។ ដូច្នេះយើងត្រូវចូលទៅកាន់ Page PhpMyAdminគឺ http://localhost/phpmyadmin ឬ http://localhost/127.0.0.1/ phpmyadmin
1បន្ទាប់មក Click លើពាក្យថា Databases ដែលស្ថិតនៅផ្នែក Menu។ រួចបង្កើត Database ថ្មីមួយទៀត ឧទាហរណ៍ : joomla បន្ទាប់មក Click Button Create។
1ក្រោយពីបង្កើត Database រួចរាល់ហើយ យើងចូលទៅកាន់ Page : http://localhost/joomla ដើម្បី Install joomla
1ត្រង់ចំនុចខាងលើ

  • Sitename : សម្រាប់វាយឈ្មោះ Website របស់អ្នក
  • Admin email : Email របស់អ្នក
  • Description : ពិព័ននាអំពី Website របស់អ្នក ខ្លីៗ
  • Admin Username : បង្កើត Usernameសម្រាប់ Log in ចូល Backend របស់ Website
  • Admin Password :បង្កើត Password ឲ្យ Userសម្រាប់ Log in ចូល Backend របស់ Website
  • Confirm Admin Password : វាពាក្យឲ្យដូចប្រអប់ Admin Password។

ក្រោយពីបំពេញData រួចសូម Click button “Next”  បន្ទាប់មកយើងនឹងមកដល់ Page ដូចខាងក្រោម :
1

  • Database type ជ្រើសរើសប្រភេទ MySql

  • Hostname បំពេញឈ្មោះរបស់ Server ។ភាគច្រើនគឺគេសរសេរថា Localhost

  • Username គឺបំពេញឈ្មោះ User ដែលគ្រប់គ្រង Database ដែលយើងបានបង្កើត។ តែនៅក្នុង Local គឺវាជា Defualt គឺ “root”

  • Password គឺបំពេញលេខសម្ងាត់របស់ User ។ នៅក្នុង Local, Username root ចំពោះ Password របស់វាគឺ“ទទេរ”

  • Database គឺជាកន្លែងវាយឈ្មោះ Database name ដែលយើងបានបង្កើត។

  • Table Prefix គឺជាក្បាលឈ្មោះ Table ដែលវានឹងបង្កើតដោយស្វ័យប្រវត្តិសម្រាប់ផ្ទុកទិន្នន័យក្នុង Database.

ក្រោយពីបំពេញData រួចសូម Click button “Next” :
1បន្ទាប់មក Install
1រង់ចាំមួយភ្លេត បន្ទាប់ពីវា Install ចប់វានឹងចេញផ្ទាំងដូចខាងក្រោម :
1
សូម Click button : Remove Folder Installation ដើម្បីលប់ File Install joomla ចេញ ចំនាំដើម្បីមើល Website ដែលបាន Install រួចលើ Local នោះគឺចូលទៅកាន់  http://localhost/joomlahttp://127.0.0.1/joomla ដើម្បីចូលទៅកាន់ Backend របស់ Website ដើម្បីគ្រប់គ្រងវា សូមចូលទៅកាន់ http://localhost/joomla/adminisratorhttp://127.0.0.1/joomla/administrator
———————————————————————————————————–
មជ្ឈមណ្ឌល អាយធី ខេប៊ូ-IT CAMBO
បង្កើតកម្មវិធីសម្រាប់ក្រុមហ៊ុន អង្កការ ក្នុងតម្លៃសមរម្យ:

–     រចនាវ៉ិបសាយ & Hosting គ្រប់គ្រងក្រុមហ៊ុន…
–     បង្កើតកម្មវិធីគ្រប់គ្រងទិន្នន័យ គ្រប់គ្រងស្តុក លក់ទំនិញ
–     ដំឡើងប្រព័ន្ធ ណែតវឺក Networking និងសេវាជួសជុលកុំព្យូទ័រ
www.itcambo.com

កម្មវិធីសិក្សាបើកវគ្គខ្លី(សិស្សចាប់ពី ១០ឡើងទៅ)
–  វគ្គរចនាវ៉ិបសាយ HTML,CSS, Javascript, PHP, ASP.NET
–  វគ្គដំឡើងកុំព្យូទ័រណែតវឺក Networking
–   វគ្គជួសជុលកុំព្យូទ័រ Computer Repairing
–   វគ្គសរសេរកម្មវិធីលើ iOS (កម្មវិធី iPhone, iPAD)
ទំនាក់ទំ​នង 0977778647-077778647-070778647
Email: chhunnan@gmail.com
Chat: yahoo, skype: chhunnan
www.itcambo.com
ITCAMBO-NEW