70
វិា ា នពហុបចេកសេត់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE Developing web Application with PHP Prepare By: DY CHANDOEUN Page 1 េៀនី ១ History PHP RtUv)anpþ l;eQμaHCapøÚ vkar HyperText Preprocessor vaCaPasaEdltMeNIrkarenAelI ServerEdlCa TUeTA RtUv)an sresrkñú gbri bT HTML b:u Enþmi ndUcCa HTML page Fmμ taenaHeTPHP script minRtUv)anbBa¢Ún eTAeGay client eday server pÞal;enaHeT vaeFVI karbBa¢Úneday PHP engine . PHP code EdlzitenAkñú g script GaceRbIedIm,IeFVI karCamYy Databases, begáItCarU bPaB ,Gan nigbBa©ÚlTinñn½ yb¤ EkrERbGtßbTEdlmanenAxagkñú g files b¤ eFVIkar TM nak;TMngeTAkan; Remote Server RBmCamYynwglT§PaBCaeRcInepSgeTot . Rasmus Lerdorf KWCamnu sSdMbUgEdlGPi vDÆn_ nU v PHP/FI ehIyRtUv)anmnu sSrab; lanGñ keRbIR)as;va . CMnan;tMbUgén PHP/FI eQaμHfa Personal Homepage Tools/Form InterpreterEdllkçN³CamYldæanKWRsedogeTAnwg Pasa Perl eRBaH)anRbmUlpþM únUv Perl scripts mkGPivDÆn_ enAkñúgGMLú gqñ aM 1995 b: uEnþ vaenAmankgVHxatCaeRcInenAkñúg PasaenH dUcCa for loops CaedIm . PHP/FI 2 enAkñúgqñaM 1997 Rasmus bnþkarGPi vDÆn_ nU v PHP/FI 2 rhUtmkdl;Ex vicäi ka qñ aMdEdlbnÞab; BI Andi Gutmans ehIynig Zeev Suraski )anRbTHeXI jnUv PHP/FI cMeBlEdlBYkeKkMBugEsV grknUvPasaedIm,IGPivDÆn_nUvKMeragbegáIt E-commerce solution sMrab; sklviTüal½y rbs;BY keK . BYkeK)aneGaydwgfa PHP/FI BMuTan;manlT§PaB RKb; RKan; enAeLIyehI yxVHxatnUv lkçN³Bi essCaeRcIn . cM nu cmY yEdlmankarcab;GarmμN_CageK KW while loops EdlBYkeKnwgRtUvRbti btþi . PHP 3> Zeev and Andi sMerccitþ sresr scripting language eLIgvijb: uEnþ BMu vtþman RasmuscU lrY medIm,I GPi vDÆn_ nU v PHP3eLIyehIy)anpþl; nU veQμaHfμI faHypertext PreprocessoredIm,IbBa¢ak;fa PHPKWCaplitplepSgmYyeTotehIynwg minRtwmEtykmkeRbIsMrab;EtkargarpÞal; xøÜnenaHeT . Zeev and Andi k¾)anbegáItnUv Extension API Edl API begáI tfμIenHvamanlT§ PaBbM eBjnUvkargarCaeRcIndUcCa Accessing databases , spell checkers ehIynwg bec©k viTüadéT²eTot EdleFVI eGaymankarcab;GarmμN_BI sMNak;GñkGPivDÆn_ CaeRcInmkcUlrYmkñ úgKMerag PHP. enAxN³eBlenaHEdr PHP k¾RtUv)anbeB©jjnUvCMnan;fμIrbs;xøÜnKW PHP 3 enA éf¶TI 3 Ex mifuna qñ aM 1998 Edltamkar)a:n;sμan PHP nw gRtUv)antMeLIg RbmaN Cag 50 000 domains b: uEnþ CamYytY elxBitR)akd elI kdMbUgrbs; PHP RtUv)aneKtMeLI geRcInCagmYylan Domain eTAeTot . Introduction PHP

Php programming file

  • Upload
    ji-ng

  • View
    27

  • Download
    2

Embed Size (px)

Citation preview

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 1

ច្េច្ ៀនទ្យី ១

History

PHP RtUv)anpþl;eQµaHCapøÚvkar HyperText Preprocessor vaCaPasaEdltMeNIrkarenAelI ServerEdlCa TUeTA

RtUv)an sresrkñúgbribT HTML b:uEnþmindUcCa HTML page FmµtaenaHeTPHP script minRtUv)anbBa¢Ún eTAeGay

client eday server pÞal;enaHeT vaeFVIkarbBa¢Úneday PHP engine . PHP code EdlzitenAkñúg script GaceRbIedIm,IeFVI

karCamYy Databases, begáItCarUbPaB ,Gan nigbBa©ÚlTinñn½yb¤ EkrERbGtßbTEdlmanenAxagkñúg files b¤ eFVIkar

TMnak;TMngeTAkan; Remote Server RBmCamYynwglT§PaBCaeRcInepSgeTot .

Rasmus Lerdorf KWCamnusSdMbUgEdlGPivDÆn_nUv PHP/FI ehIyRtUv)anmnusSrab;lanGñkeRbIR)as;va .

CMnan;tMbUgén PHP/FI eQaµHfa Personal Homepage Tools/Form InterpreterEdllkçN³CamYldæanKWRsedogeTAnwg

Pasa Perl eRBaH)anRbmUlpþMúnUv Perl scripts mkGPivDÆn_ enAkñúgGMLúgqñaM 1995 b:uEnþvaenAmankgVHxatCaeRcInenAkñúg

PasaenH dUcCa for loops CaedIm .

PHP/FI 2

enAkñúgqñaM 1997 Rasmus bnþkarGPivDÆn_nUv PHP/FI 2 rhUtmkdl;Ex vicäika qñaMdEdlbnÞab;BI Andi Gutmans

ehIynig Zeev Suraski )anRbTHeXIjnUv PHP/FI cMeBlEdlBYkeKkMBugEsVgrknUvPasaedIm,IGPivDÆn_nUvKMeragbegáIt

E-commerce solution sMrab;sklviTüal½y rbs;BYkeK . BYkeK)aneGaydwgfa PHP/FI BMuTan;manlT§PaB

RKb;RKan;enAeLIyehIyxVHxatnUv lkçN³BiessCaeRcIn . cMnucmYyEdlmankarcab;GarmµN_CageK KW while loops

EdlBYkeKnwgRtUvRbtibtþi .

PHP 3>

Zeev and Andi sMerccitþsresr scripting language eLIgvijb:uEnþBMuvtþman RasmuscUlrYmedIm,IGPivDÆn_nUv

PHP3eLIyehIy)anpþl;nUveQµaHfµIfaHypertext PreprocessoredIm,IbBa¢ak;fa PHPKWCaplitplepSgmYyeTotehIynwg

minRtwmEtykmkeRbIsMrab;EtkargarpÞal; xøÜnenaHeT . Zeev and Andi k¾)anbegáItnUv Extension API Edl API

begáItfµIenHvamanlT§PaBbMeBjnUvkargarCaeRcIndUcCa Accessing databases , spell checkers ehIynwg bec©k

viTüadéT²eTot EdleFVIeGaymankarcab;GarmµN_BIsMNak;GñkGPivDÆn_ CaeRcInmkcUlrYmkñúgKMerag PHP.

enAxN³eBlenaHEdr PHP k¾RtUv)anbeB©jjnUvCMnan;fµIrbs;xøÜnKW PHP 3 enA éf¶TI 3 Ex mifuna qñaM 1998

Edltamkar)a:n;sµan PHP nwgRtUv)antMeLIg RbmaN Cag 50 000 domains b:uEnþCamYytYelxBitR)akd elIkdMbUgrbs;

PHP RtUv)aneKtMeLIgeRcInCagmYylan Domain eTAeTot .

Introduction PHP

ACER
Typewritten Text
This book was uploaded by K-NN E-Bookwww.k-nn.info

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 2

PHP 4>

enAeRkayqñaM 1998 Zeev nig Andi gakeTABitnitüelIkargar PHP 3 ehIyBYkeKmanKMnitfaBYkeKGacsrsrnUv

script language eLIgvijeGaymanlkçN³l¥RbesIrCagmuneTAeTot kñúgxN³eBlEdl PHP 3 kMBugbnþkareFVIsm<½n§ nig

RbtibtþikarenaH PHP 4 k¾ cab;epþImbegáItnUvKMrUfµI KW “compile first, execute later.” tMNak;kalénkar compile

minRtUv)an complie PHP Script eGayeTACa machine code enaHeT vaCMnYsedaykar compile eTACa byte code

EdleFVI karRbtibtiþkar eday Zend Engine ( Zend mkBIBaküfa Zeev nig Andi ) . viFIsaRsþfµIsMrab;karRbtibtþi script

enHGaceFVIeGay PHP 4 tMeNIrkar)anl¥RbesIreRcInCa PHP 3 ehIyRtUv)andak;bgðajnUv PHP 4 enHkñúg Ex ]sPa qñaM

2002 b:uEnþedaymankarpøas;bþÚrenAkñúgPasaenHCabnþbnÞab;eTIb PHP 4 )anbegáItnUvCMnan;rbs;xøÜn Ca PHP 4.1.0

nwg )anbgðajnUv Superglobals dUcCa $_GET nig $_POST . Edl Superglobals enHGacykmkeRbIR)as;BI

xagkñúg Functions edaymincaM)ac;eRbI global keyword. rhUtdl;CMnan;cugeRkayrbs; PHP4RtUv)an bgðaj Cacug

eRkaybg¥s; enAéf¶TI 27 Ex FñÚ qñaM 2002 .

PHP 5 >

edaymantMrUvkarCaeRcInnUvlkçN³rbs; object-oriented Andi k¾manKMnitsresrnUvObject-Oriented

sMrab;CaEpñkén Zend Engine. Zeev and Andi )ansresrnUvÉksarGMBI

“ Zend Engine II : Feature Overview and Design ” ehIycab;epþImBiPakSaKñaGMBI PHP‟s

eTAéf¶GnaKtEdlkñúgCMnan; PHP 5 mancMnucCaeRcInEdlnwgRtUvEkERb bEnßm b¤ rMelaHecal .

PHP‟s minRtwmEtERbRbYledayGaceGayeRbIR)as;nUvlkçN³ Object-Oriented b:ueNÑaHenaHeT vaEfmTaMg pÞúknUvmux

garfµI²CaeRcInEdlbBa©ÚlCamYymuxgarsMrab; XML ehIyCaBiessenaH KW SimpleXML extension EdleFVIeGay

manPaBgayRsYl kñúgkarsRmbsRmYlCamYyÉksar XML nig SOAP b¤ MySQLi fµI ehIynwg extensions epSg²

eTotEdlCacMnucsMxan;enAkñúg PHP‟s . eKrMBwgfa PHP 5 nwgGackøayCaGñknaMmuxeK enAelITIpSarénkarGPIvDÆn_ web

.

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 3

ច្េច្ ៀនទ្យី ២

1.អថេរ (Variables) >

VariableKWCaRKwHd¾sMxan;sMrab;PasakMuBüÚT½rvaRtUv)aneKeRbIedIm,IpÞúknUvtMélCabeNþaHGasnñenAeBlEdlRbtibtþikar

script mþg² . variable RtUv)anpþl;tMéleTAeGay enAeBlEdl Script cab;epþImtMeNIrkar b¤ enAeBlGñkeRbIR)as;bBa¢Úl

b¤)anmkBIkarcab;ykTinñn½yBI DatabaseGñkGaceRbIR)as; variable RKb;eBlTaMgGs; enAeBlEdl script cab;epþImtM

eNIrkarCamYyTinñn½y ehIyGñkGacEkERb tMélEdl Variable enaHpÞúkBIkarRbtibtþikar script mYyeTAkan;karRbtibtþikar

rbs; script mYyepSgeTot rhUtdl;eBlEdl script rbs;GñkRtUv)anbBa©b; .

sMrab;Pasa PHP eQµaHrbs; variable RtUvEtcab;epþImedaynimitþsBaØa $ (dollar sign)GñkGacpþl;nUveQµaHrbs;

variable CatYGkSr tMélelx b¤ underscore ( _ ) k¾b:uEnþGñkminGaceRbIGkSrdkXøaCamYyeQµaHrbs; variable enaHeT

.

]TahrN_ xageRkamKWCakarpþl;eQµaHeTAeGay variable EdlRtwmRtUv ³

$sok ;

$sok_som_neang ;

$_Dara ;

$Chenda22 ;

]TahrN_ karpþl;eQµaHeTAeGay variable EdlminRtwmRtUv ³

$123 ;

$*ABC ;

$A+B ;

Variable rbs; PHP GacpÞúknUvRbePTTinñn½yEdlCatMélelx tYGkSr object , arrayBooleans

ehIyral;cMnuHrbs; variable GaceFVIkarpøas;bþÚrRKb;eBlevla . CaTUeTAkarRbkasVariable b¤ karpþl;tMéleTAeGay

variable GñkGacGnuvtþn_nUv statement dUcxageRkam .

$num1 = 5;

$num2 = 8;

karRbkas variable BIr xagelIGñk)aneRbIR)as;nUv assignment operator (=) Edlnwgerobrab;lMGitenAkñúgemeron “

Operator and Expression “ .bnÞab;BIGñk)anpþl;nUvtMéleTA variablerYcral;ehIy GñkGacykvamk eRbIR)as;)an

dUcxageRkam ³

print $num2; vamantMélesµInwgkareRbI print 8; dUcecñHmann½yfa $num2 pÞúktMémø 8

cUrcgcaMfaral;cugbBa©b;énr)aykarN_rbs; PHP nimYy²RtUvEtbBa©b;edaysBaØa ( ; ) semicolon. 2 Data Types >

RbePTxus²KñaénTinñn½yRtUv)aneRbIR)as;nUvcMnYnsrubrbs;GgÁcgcaMepSg²Kña ehIyvaGacRbRBwtþeTAenAeBlGñk

erobcMvaenAkñúg script rbs;Gñk . manPasakmµviFImYycMnYnTamTareGayGñksresrkmµviFI RbkasnUvRbePT énTinñn½y

Building Block

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 4

BImux variable edayELksMrab;Pasa PHP kareRbIR)as; variable KWmanPaBgayRsYl edayvanwgeFVIkarKNna

nUvRbePTTinñn½yedaysV½yRbvtþienAeBlEdlGñk)anpþl;tMéleTAeGayva .

Standard Data Types

RbePT ]TahrN_ BiBN’na

Integer 5 pÞúknUvtMélelxCacMnYnKt;

Double 3.234 pÞúknUvtMélelxCacMnYnTsPaK

String "hello" pÞúknUvtMélCabnþMúéntYGkSr

Boolean True pÞúknUvtMélBiessKW true b¤ false

Array emeronTI

Object emeronTI

]TahrN_ 1

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: ?>

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 5

25:

26: </body>

27: </html>

enAeBlEdl variable $testing RtUv)anRbkasenAbnÞat;TI 09 edaymin)anpþl;tMéleTAeGayva

dUcecñHenAeBlEdleRbIR)as; gettype() function edIm,IRtYtBinitü variable enAbnÞat;TI10 enaHGñknwg TTYl)annUv lT§pl

CaGkSr Null . bnÞab;BIenH variable $testing RtUv)anpÞl;nUvtMélCatYelxenAbnÞat;TI 11 KWelx 5 EdlCacMnYnKt; b¤

GñkGacniyay)anfatMélelxEdlKµanek,ósdUecñHlTÞplEdlnwgTTYl)anbnÞab;BIkareRbIR)as;nUv gettype() function

bnÞat;TI12 KW // integercMENkkarpþl;nUvtMél "five" eTAeGay variable $testing enAbnÞat;TI 15 KWCabnþMúéntYGkSr

.enAeBlEdlGñkcg;eFVIkarCamYytMélCa string GñkRtUvEtdak;tMélenaHsßitenAkñúgcenøaH sBaØa ( “ ) Double quotation

mark b¤ ( „ ) single quotation mark .

tMélCaRbePT double RtUv)anpþl;eTAeGay variable $testing EdlsßitenAbnÞat;TI 18CatMélelx 5.0

EdltMélenHCatMélelxTsPaK b¤ CatMélelxEdlmanek,ós. tMélCaRbePT Boolean RtUv)anpþl;eTAeGay variable

$testing enAbnÞat;TI 21 ehIytMélenHGacmanEtBIrb:ueNÑaHKW true b¤ false .

sMKal; ³

PaBxusKñarvakareRbIR)as;nUv (“ ) double quotation mark nig ( ‘ ) single quotation mark

Double quotation mark GnuBaØatieGayeyIgeRbIR)as;nUv variable bBa©ÚlCamYy BIeRBaH PHP engine

nwgCMnYsnUvtMélEdlCa variable . sUmBinitüemIl]TahrN_xageRkam-

$name = "Rithya"; >

print "hello, $name"; // hello,Rithya >

RbsinebIGñkeRbIR)as;nUv single quotation mark variable minRtUv)anCMnYsedaytMélenaHeT .

print 'hello, $name'; // hello, $name >

]TahrN_ 2

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>

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 6

3.Displaying Type Information with var_dump()>

gettype() KWCa function EdleRbIedImI,TTYlnUvRbePT variable edayELk var_dump()

eRbIedIm,IR)ab;nUvRbePT variable nig cMnuHrbs;va . eRcInCagenHeTAeTot sMrab;RbePTtMélEdlsµúKsµajdUcCa

arrays nig object var_dump() pþl;eGaynUvBt’manRKb;RbePTEdlmanenAkñúgVariable enaH .

]TahrN_ 3

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

PHPpþl;eGaynUvviFIedIm,eFVIkarpøas;bþÚrnUvRbePTTinñn½yedayeRbIR)as;castoperators dUcmanerobrab;kñúg

taragxageRkam³

Operator Changes Type To

(int), (integer) Integer

(float), (real), (double) Floating point

(string) String

(bool), (Boolean) Boolean

(array) Array

(object) Object

]TahrN_ 5

Casting.php

<html>

<head>

<title>Casting variable</title>

</head>

<body>

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

<?php

$unexpect=3.14;

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 7

$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 KWCanimiµtsBaØaTaMLayNaEdlGñkGaceRbItMélmYy b¤ eRcIn begáItecjCatMélfµImYyeTot

ehIytMélEdlRbtibtþieday operator enaHRtUv)aneKehAfa operand .

Operand KWCatMélEdlcUlrYmCamYy operator EdlCaTUeTA man operand BIrCamYyOperator mYy .

]TahrN_kareRbI operand BIr CamYy operator edIm,IbegáItecjCatMélfµImYyepSgeTot.

4 + 5 >

4 ehIynig 5 KWCa operand EdlRtUv)an operated eday addition operator (+) edIm,IbegáItnUvtMélfµI KW 9 . karpþMúnUv

operand nig operator edIm,IbegáItCalT§pl RtUv)aneKehAfa expression

5.1 The Assignment Operator >

Assignment operators eRbIedIm,Ipþl;nUvtMéleTAeGay variable . dUcEdlGñk)anCYbxagelI assignment

operator RtUv)an initialize variable RKb;eBl vaKWCaGkSr ( = ) .Assignment operator cab;yktMélBI operand

xagsþaMeTAeGay operand xageqVgdUc]TahrN_

xageRkam ³

$name = “ DYCHANDOEUN “ ;

Print $name; >

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 8

CaTUeTAxageqVgén Assignment operator eRcInEtCa variable .

5.2 Arithmetic Operators

Arithmetic Operators

Operator Name Example Result

+ bUk ( Addition ) 10+5 15

/ Eck ( Division ) 10/3 3.333333333333

* KuN ( Multiplication ) 10*5 50

% yksMNl;BIplEck ( Modulus ) 10%3 1

- dk ( Subtraction ) 10-2 2

5.3 The Concatenation Operator ( . ) >

Concatenation operator eRbIedIm,IP¢ab; string sMrab; operator mYyenHvaeFVIkarCamYyEt string b:ueNÑaH .

dUecñHral; operand EdlminEmnCa string vanwg convert eGayeTACa string sUmBinitüemIl]TahrN_ ³

"hello"." world" karsresrEbbenHvaesµInwgkarsresr "hello world" .

$year = 2007; >

Print "Happy khmer new year_".$year ; >

Variable $year EdlCaRbePT integer RtUv)anbMElgeTACa string " 2007 " mun

eBlEdlvaRtUv)anP¢ab;CamYy string “ Happy khmer new year ” .

5.4 Combined Assignment Operators >

$x = 4; >

$x = $x + 4; // lT§pl $x KW 8

b¤ GñkGacCMnYsedaykarsresrdUcxageRkam

$x = 4;

$x += 4; // $ lT§pl $x KW 8

Some Combined Assignment Operators

Operator Example Equivalent to

+= $x += 5 $x = $x + 5

-= $x -= 5 $x = $x – 5

/= $x /= 5 $x = $x / 5

*= $x *= 5 $x = $x * 5

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 9

Some Combined Assignment Operators

Operator Example Equivalent to

%= $x %= 5 $x = $x % 5

.= $x .= " test" $x = $x." test"

5.5 Comparison Operators >

Comparison operators eRbIedIm,IeRboeFobnUv operands TaMgLay edaypþl;nUvtMélRtlb;Ca Boolean (

true or false ) .

]TahrN_edIm,IRtYtBinitütMélEdlmanenAkñúg $x nigCatMélEdltUcCagR)aM GñkGaceRbICamYynwg less than

operator .

$x < 5

RbsinebI $x pÞúktMél elx 4 expression xagelInwgpþl;CatMél true b:uEnþRbsinebI $x pÞúktMélCaelx 7 enaH

expression nwgpþl;nUvtMél false .

Comparison Operators

Operator eQµaH pþl;tMél True RbsinebI ($x KW 4)

== smmUl tMélxageqVg esµI tMélxag sþaM $x == 5

!= Non-equivalence tMélxageqVg xusBI tMélxagsþaM $x != 5

= = = Identical tMélxageqVg esµI tMélxagsþaM ehIy

tMélTaMgBIrRtUvEtmanRbePTdUcKña $x===5

> FMCag tMélxageqVgFMCag tMélxagsþaM $x > 4

>= FMCag b¤ esµI tMélxageqVgFMCag b¤ esµI tMélxagsþaM $x >= 4

< tUcCag tMélxageqVgtUcCag tMélxagsþaM $x < 4

<= tUcCag b¤ esµI tMélxageqVgtUcCag b¤ esµItMélxagsþaM $x <= 4

Operator xagelIenHPaKeRcIneRbICamYy integers or double ehIysMrab; operator( == )

KWeRbIedIm,IeRbobeFobtMélEdlCa strings .

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 10

5.6 Logical Operators>

Logical Operators

Operator Name Returns True if... Example Result

|| Or Left or right is true true ||

false True

Or Or Left or right is true true ||

false true

Xor Xor Left or right is true but not both true xor

true false

&& And Left and right are true true &&

false false

And And Left and right are true true &&

false false

! Not The single operand is not true ! true false

Logical operators bMElg operand eGayeTACatMél Boolean rYceFVIkareRbobeFobtMélTaMgenaH .

Or operator b¤ ( || ) pþl;tMél true RbsinebI operand xageqVg b¤ xagsþaMNamYymantMél true .

]TahrN_ 1> true || false lT§plKW true .And operator b¤ ( && ) pþl;tMél true enAeBlEdl operand

TaMgBIrmantMél true .

]TahrN_ 2> true && false lT§plKW false .

]TahrN_ 3> ( $x > 2 ) && ( $x < 15 )

5.7 Increment/Decrement Operators

Increment/decrement operators eRbIedIm,IbegáIn b¤ bnßytMél rbs; variable EdlCa Integer

ehIyCaTUeTAeRbIedIm,Irab; Iteration rbs; 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.

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 11

Operator Name Effect on $var

Value of the Expression

$var++

Post-increment

$var is incremented by 1

The previous value of

$var

++$var

Pre-increment

$var is incremented by 1

The new value of $var

(incremented by 1).

$var--

Post-decrement

$var is decremented by 1

The previous value of

$var

--$var

Pre-decrement

$var is decremented by 1

The new value of $var

(decremented by 1).

]TahrN_

$num1 = 5;

$num2 = $num1++; // post-increment, $num2 RtUv)anpþl;nUvtMéledImrbs; $num1

print $num1; // lT§plEdlnwgRtUvbgðajKW tMélrbs; $num1 KW 6

print $num2; // lT§plEdlnwgRtUvbgðajKW CatMéledImrbs; $num1 KW 5

]TahrN_ ³

$num1 = 5;

$num2 = ++$num1; // pre-increment, $num2 RtUv)anpþl;nUvtMélfµIrbs; $num1

eTAeGay $num2 .

print $num1; // lT§plEdlnwgRtUvbgðajKW tMélrbs; $num1 KW 6

print $num2; // lT§plEdlnwgRtUvbgðajKW CatMélrbs; $num1 KW 6

6.Constants >

CaTUeTA Variables RtUv)aneKeRbIedIm,IpÞúknUvtMél BIeRBaHtMél nig RbePTrbs;vaGac

nwgRtUvpøas;bþÚr)anRKb;eBlevla . RbsinebIGñkcg;eFVIkarCamYytMélEdlminERbrRbYlenAkñúgkar RbtibtþikarkUdrbs;Gñk

GñkGaceRbIR)as;nUv constant . PHP )anpþl;nUv define() function edIm,I

begáItnUv constant .

define("CONSTANT_NAME", 42); >

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 12

tMélEdlGñkGacpþl;eTAeGay constant KWRtUvEtCa tMélelx b¤ tYGkSr ehIysMrab;kar

pþl;eQµaHrbs; constant GñkKYrEteRbIGkSrFM . ralkar;eRbIR)as; constant variable GñkRKan;yk eQµaHrbs; constant

enaHmkeRbI b:uEnþminmansBaØa ($) dollar symbol enABImuxenaHeT .

]TahrN_ 6

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>

enAbnÞat;TI 10 eyIg)aneRbI concatenation operator edIm,IP¢ab;tMélrbs; constant nig

GkSr "Welcome" BIeRBaH PHP engine minmanviFIsaRsþedIm,IEbgEck rvag constant nig string

EdlenAkñúg quotation mark enaHeT .

Ca Default constant KW case sensitive b:uEnþGñkGacpøas;bþÚredayTTYlyknUv argument

TI3 Ca boolean mkeRbIkñúg define() function edIm,IkMNt;eGaykareRbIR)as;eQµaH constant Ca

Case insensitive dUcmankñúg]ThrN_xageRkam .

define("USER", "Ankor", true); >

dUecñHGñkGaceRbIR)as; constant edayminmankarxVayxVl;GMBIGkSrtUcb¤FMeLIy .

print User;

print usEr;

print USER;

]TahrN_ 7

constant2.php

<html>

<head>

<title>Defining a constant</title>

</head>

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 13

<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>

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 14

ច្េច្ ៀនទ្យី ៣

1. The if Statement

If statement KWCaviFIsaRsþEdleRbIedIm,IRtYBinitüeTAelIkarRbtibtþikarrbs; statement EdlenAbnÞab;va

( GacCa single statement b¤ Ca block of code EdlzitnUvkñúgsBaØa {-------} )

If statement eFVIkarvaytémø expression EdlenAkñúgsBaØa (---) RbsinebI expression rbs; ifpþl;tMél true enaH

statement EdlenAxaeRkamnwgRtUvGnuvtþn_ .

kUdxageRkambgðajBI TMrg;én if statement EdlRtYtBinitü expression Ca string .

if(expression)

{

// code EdlnwgRtUvGnuvtþn_enAeBlEdl expression pþl;tMél true

}

]TahrN_ 8

<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>

kareRbIR)as; comparasion operator (==) edIm,IeRbobeFob variable $user nig tMélCaGkSr " Thanith "

variable $pwd CamYynwgtMél "123" RbsinebItMélEdlRtUveRbobeFobnigtMélrbs; variable

dUcKñaenaH expression nwgpþl;tMél true ehIy code block nwgRtUvGnuvtþn_b:uEnþRbsinebItMélrbs; $user

bþÚreTACa "Romchong" b¤ tMélrbs; $pwd bþÚreTACa "124" ehIytMeNIrkar scripteLIgvij enaH

expression EdlenAkñúg if statement niwgpþl;tMél falseehIyCode block nwgminRtUvGnuvtþn_ Edl

script nwgEbreTAGnuvtþn_nUv else statement CMnYsvij .

else

print "Login fail !";

[[[[[[[

Going With The Flow

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 15

1.1 Using the else if Clause with the if Statement

GñkGaceRbIR)as;nUvTMrg; if/else b¤ else/if edIm,IeFVIkarBinitüelI expression muneBlEdl

Script rbs;GñkRtUvGnuvtþn_ nUv default block of code .

if ( expression )

{

// code EdlRtUvGnuvtþn_ RbsinebI expression pþl;témø true

}

else if ( another expression )

{

// code EdlRtUvGnuvtþn_ RbsinebI expression dMbUgpþl;témø false

// ehIy expression rbs;va true

}

else

{

// code EdlRtUvGnuvtþn_ RbsinebIBMuman expression NamYy true

}

RbsinebI expression dMbUgminpþl;nUvtMél true enaH block of code dMbUgk¾minRtUv)an Gnuvtþn_Edr else if

cab;epþImeFVIkarCamYy expression rbs;xøÜn RbsinebI expression enHpþl;tMémø True enaH block kUdTI2 nwgRtUvGnuvtþn_

pÞúymkvijkUdEdlsßitenAkñúg else clausenwgRtUvGnuvtþn_ CMnYsvij . GñkGaceRbIR)as; else if )anCaeRcIneTA tamkarcg

;)anrbs;Gñk ehIyRbsinebI Gñkmin cg;eGayman Default action eT GñkmincaM)ac;eRbIR)as; else clause enaHeT .

2. The switch Statement >

switch statement KWCaviFIsaRsþEdleRbIedIm,Ipøas;bþÚrlMdab;énkarGnuvtþn_kUdrbs;kmµviFIEdlGaRs½yeTAelI

karvaytMélrbs; expression . kareRbIR)as; if statement CamYy else if GñkGaceRbIR)as; expression)aneRcIn eday

ELk switch eRbIR)as;Et expression mYyb:ueNÑaH .karGnuvtþn_ code xus²KñaKWGaRs½yeTAelIlT§plénexpression

Edlpþl;tMélCa simple typedUcCa ( number , string , Boolean……. l. ) .

switch (expression)

{

case exp:

// execute this if expression results in result1

break;

case exp:

// execute this if expression results in result2

break;

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 16

default:

// kUdnwgRtUvGnuvtþn_RbsinebIminman expression NadUcnwg expression rbs; case

}

Expression rbs; switch statement CaTUeTARtUv)aneRbICa variable ehIy coderbs; switch statement

RtUvsresrenAkñúg case statement . ral;tMél expression rbs; casenimYy² RtUv)anykmkepÞogpÞat;CamYy expression

rbs; switch statement RbsinNatMélrbs;case NamYydUcnwg expression rbs; switch statement enaH code block

nwgRtUvGnuvtþn_ bnÞab; mk break statement nwgbBa©b;karGnuvtþn_ switch statement b:uEnþRbsinebIBMuman case expression

NamYy dUcnwg switch expression enaH default statement KWCaGñkGnuvtþn_ .

]TahrN_ 9

<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";

}

?>

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 17

</body>

</Html>

3. Loops >

Loop statement GaceGayGñkGnuvtþn_nUvkargarmþgehIymþgeTotenAkñúg programrbs;Gñk rhUtdl;vasMerc lkç½NÐ b¤ GññkbBa¢aeGaycakecjBI loop .

3.1 The while Statement >

While loops KWCaRbePTmYyén loops . expression rbs;vapþl;CatMél true b¤ false dUecñHRbsinebI

expression pþl;tMélCalT§pl true enaH code block nwgRtUvGnuvtþn_ Edl blockCode sßitenAkñúg loop enaH

RtUv)aneKeGayeQµaHfa iteration .

while ( expression )

{

// do something

}

]TahrN_ 10

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 vamanlkçN³Rbhak;RbEhlnwg while statement b:uEnþlkçN³BIrEdlxusKñaBI while

statement KW block code rbs; do while statement Gnuvtþn_muneBlEdl Expression rbs;vaRtUv)an test nig pþl;tMél

true b¤ false .

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 18

do

{ ………………………

// code to be executed

………………………

}

while (expression);

Test expression én do...while statement RtUvEtbBa©b;eday ( ; ) semicolon. >

]TahrN_ 11

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

}

ral; expression nimYy²EdlmanenAkñúgsBaØavg;Rkckrbs; for statement KWRtUvEbgEckKñaeday semicolon ( ; )

. expression TImYy cab;epþImrab; variable ehIy expression TI2eFVIkarRtYtBinitülkç½Nrbs; for loop nig expression

TI3 begáIn b¤ bnßynUvcMnYnkarrab; .

]TahrN_ 12

forloop.php

<html>

<head>

<title>The for Statement</title>

</head>

<body>

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 19

<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>

enAeBlEdl program tMeNIrkardl; for loop variable $i RtUv)an initialize ehIyTest expression

cab;epþImRtYtBinitüeTAelI expression rbs;xøÜn RbsinebI expression pþl;tMélTrue enaH code block nwgRtUvGnuvtþn_

bnÞab;mk $i variable eFVIkarbegáIntMélmYyehIy testExpression cab;epþImeFVIkarRtYtBinitüeTAelI expression

rbs;xøÜnsarCafµImþgeTot. RbtibtþikarenHbnþkarGnuvtþn_rhUtdl; test expression pþl;tMél false .

3.4 Breaking Out of Loops with the break Statement >

ral; loop statement KWsuT§EtmanP¢ab;mkCamYynUv test expression EdlGaceGayGñk bBaÄb;va)an b¤

edayeRbIR)as; break statement .

]TahrN_ 13

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:

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 20

20: </div>

21: </body>

22: </html>

eyIg)aneRbIR)as;nUv if statement enAbnÞat;TI 13 edIm,IRtYBinitünUvtMélrbs; variable$counter

RbsinebItMélrbs;vaesµInwgsUnü 0 break statement nwgRtUvGnuvtþn__ EdlRtUvcakecjBIBlock code rbs; for loop

statement ehIyGnuvtþn_nUv statement EdlenAbnÞab;BI for statement .

3.5 Skipping an Iteration with the continue Statement >

Continue statement bBaÄb;tMeNIrkarrbs; iteration EdlkMBugGnuvtþn_ bu:EnþminbBaÄb; tMeNIrkarrbs; loop

TaMgRsugenaHeT vanwgbnþeFVIkarCamYy iteration eRkay²bnþeTot rhUtdl; Expression pþl;tMél false b¤ CYb nwg break

statement .

]TahrN_ 14 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>

enAbnÞat;TI14eyIg)anCMnYs break statement edaykareRbIR)as; continue statementRbsinebI variable

$counter esµI 0 iteration nwgRtUvrMlgkarGnuvtþn_ ehIybnþGnuvtþn_ iteration CabnþeTot .

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 21

3.6 Nesting Loops >

]TahrN_ 15³

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>

kareRbIR)as; for statement edIm,I bgðaj table eTAkan; brower .

Nesting Two for Loops

01: <!

02: Nesting loops

03: >

04: <html>

05: <head>

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 22

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>

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 23

ច្េច្ ៀនទ្យី ៤

1.What is Functions ?

Function KWCabnþMúén block code EdlGñkbegáIt ehIyGnuBaØatieGayGñkehA ykmkeRbI enAkñúg script rbs;Gñk

. enAeBlEdlGñkehA function kUd EdlenAxagkñúgnwgRtUvGnuvtþn_ ehIyGñkk¾Gac bBa¢ÚntMéleTAeGay function b¤

TTYltMélBI function mkvij .

1.1 Calling Functions >

Function manBIrRbePTKW Function EdlmanRsab; P¢ab;mkCamYynwgPasakmµviFI nigFunction

EdlGñkbegáIteLIgedayxøÜnÉg . enAkñúgPasa PHP man built-in function CaeRcInEdlpþl;nUvPaBgayRsYlsMrab;

karsresrkUdrbs;Gñk .

1.2 Defining a Function >

GñkGacbegáIt function edayeRbI function statement function function_name( $argument1,

$argument2 )

{

//

}

RbsinebI function rbs;GñktMrUveGayman argument cab;BIBIreLIgeTA GñkRtUvEtEckvaedayeRbIR)as;sBaØa

comma( , ) EdlCaTUeTA argument TaMgenaHKWCa variable ehIytMélrbs;vanwgRtUvpþl;eGayenAeBlEdl function

RtUv)anehA .

]TahrN_ 16

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>

Function

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 24

</html>

lT§plEdlbgðajenAelI browser KWCa string éntYrGkSr 1+2+3+…………+10 = 55]TahrN_xagelIenHKW

CakarbegáItnUv function mYyeQµaHfa bigsum()EdlCa function minmannUv Arguments enaHeT .sMrab;]TahrN_TI 20

eyIgnwgbegáIt function EdleRbIR)as; argument .

]TahrN_ 20

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 >

enA]TahrN_xagelIeyIgTTYl)annUvlT§plCa string enAelI browser edaykareRbIR)as; bigsum()

function . function rbs;GññkGaceFVIkarpøas;bþÚrtMélEdlGñk)anpþl;eGayb¤ maneBlxøHGñknwgcg;eGay function

pþl;nUvtMélfµIeGayGñk bnÞab;BIGñk)anpþl;tMéleTA»óva.

Function mYyGacTTYl)antMéledaykareRbIR)as; nUv returnstatement CamYynwgtMélEdlRtUvbBa©ÚnRtlb;

eTAkan; function. return bBaÄb;Rbtibtþikarrbs; function ehIy bBa¢ÚntMélRtlb; eTAvijenAeBlEdl function

RtUv)anehAmkeRbI .xageRkamKWCa]TahrN_énkarbegáIt function Edl return tMélBI plbUlcMnYnBIrtMél .

]TahrN_ 21

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: {

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 25

11: $result = $num1 + $num2;

12: return $result;

13: }

14: print addNums(3,5);

15:

16: ?>

17: </body>

18: </html>

addNums() Function RtUv)anehAykmkeRbIR)as;CamYynwg argument cMnYnBIrEdlCatMélelx 3 nig elx 5

EdltMélTaMgenHRtUv)anrkSaTukenAkñúg variable $num1 nig $num2addNums function eFVIkarKNnanUvplbUként

MélEdlrkSaTukenAkñúg variable TaMgBIrehIypþl;CalT§pleTAeGay variable $result .Gñkk¾Gac return

tMéledaykarehA function déTeTot)anpgEdr return ( another_function( $an_argument ) );

2. Variable Scope

Variable EdlRbkasenAxagkñúg function KWGaceRbIR)as;)anEtenAxagkñúg function enaHb:ueNÑaH

mann½yfaminGaceRbIR)as;)anenAxageRkA function b¤ enAkñúg function déTeTot .

sMrab; project FM²vaGacCYyGñkBIeRKaHfañk;énkarEkERbtMélEdlmanenAkñúg variableeBlEdlGñkRbkas

variable BIr ehIymaneQµaHdUcKña nig zitenAkñúg function epSg²Kña .

xageRkamKWCa]ThrN_ sþIBIkarbegáIt variable mYyenAkñúg function ehIyBüayamykVariable enaHmkbgðajelI

browser BI eRkA function .

cMNaM ³ VariableEdlbegáItenAxagkñúg function minGaceRbIR)as;BIxageRkA function )anenaHeT.

]TahrN_ 22³

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>

Gñknwg)aneXIjnUvlT§plén]TahrN_xagelI EdltMélrbs; variable $testvariableminRtUv)anbgðajenaHeT

BIeRBaHBMuman variable NamYyRtUv)an)anbegáItenAxageRkA functiontest() enaHeT . KYrcMNaMfa karyk variable

Edlminman mkeRbIR)as;KWminmanPaB error eLIy.müa:gvijeTot variable EdlRbkasenAxageRkA function

KWminGacykmkeRbIkñúg function edaysV½yRbvtþienaHeT .

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 26

2.1 Accessing Variables with the global Statement >

maneBlxøHGñkRbEhlCaRtUvkareRbIR)as; variable enAkñúg function rbs;GñkedayBMutMrUv

eGaymankarbBa¢ÚntMéltam argument enaHeT . xageRkamKWCa]TahrN_EdleRbIR)as;nUv

global statement edIm,IeRbIR)as;nUv variable EdlRbkasxageRkA function .

]TahrN_ 23³

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>

enAbnÞat;TI 13 én]TahrN_TI23 eyIg)aneRbIR)as;nUv global BImux variable $lotteryEdl)anRbkasenAkúñg

function lotteryToday() edIm,IsMedAeTAkan; global variable $lottery Edl)anRbkasenAxageRkA function enAbnÞat;TI

09 .

GñkRtUvEteRbIR)as;nUv global statement enAral; function EdlGñkcg;eRbIR)as;nUv global variable.

GñkKYrRbugRby½tñpgEdrenAeBlEdlGñkpþl;tMéleTAeGay variable $lottoeryenAkñúg function BIeRBaH $lottery

nwgeFVIkarpøas;bþÚrtMélrbs;xøÜnTaMgGs;enAkñúg script rbs;Gñk .Gñkk¾GacRbkas variable CamYy global statement

)aneRcInkñúgeBlEtmYy)anpgEdr edaykarEcknUv variable nimYy²edaysBaØa ¬,¦ comma.

]TahrN_ ³ global $var1, $var2, $var3;

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 27

ច្េច្ ៀនទ្យី ៥

1. What Is an Array?

Gñkk¾)ansÁal;rYcmkehIyGMBI variable EdlRtUveKeRbIedIm,IpÞúknUvtMélepSg² . edaykareRbIR)as; variable

Gñkk¾GacbegáItCa script eGayRbtibtþikar b¤ bgðajCaBt’manepSg²enAral;eBlEdlGñktMeNIrkarva b:uEnþKYreGay

esaksþay edayGñkGac rkSaTuknUvtMélEtmYyb:ueNÑaHkñúgeBlEtmYy nig kñúg variable mYy .

Array KWCa variable BiessEdlGnuBaØateGayGñk pÞúknUvtMél)aneRcInenAkñúg variablemYy .

ral;tMélnimYy²RtUv)anrkSaTukenAkñúg index rbs; array EdlGac Caelx b¤ Ca tYGkSr . Ca default Faturbs; array

EdlCa index KWcab;epþImBIelx 0 . ehtuGVI)anCaRtUveRbIR)as; array ?

RbsinebIGñkmantMélcMnYn 5 EdlRtUvrkSarTuk enaHGñkR)akdCaRtUvbegáIt variable cMnYnR)aMpgEdrArray KW flexible

eRBaHvaGacpÞúktMél)anBIr b¤ BIrry tMél edayBMumankaregáItnUvvariablefµIeTotehIy array k¾GaceGayGñkeFVIkarCa

mYytMélrbs;va )anya:ggay dUcCa kar loop Faturbs; array nimYy² b¤ tMrabFaturbs;vaeTAlMdab;énelxerog b¤

CatYGkSr eTAtamkarkMnt;enAkñúg system rbs;Gñk . xageRkamKWCakarbgðajnUvFaturbs; users array EdlmanFatuTI4

Ca index TI3 én users .

The Elements in the users Array

Index Number Value Which Element?

0 Sok First

1 Sao Second

2 Setha Third

3 Mesa Fourth

PHP k¾)anpþl;nUvlT§PaBedIm,IerobcMnUv indexed rbs; array edaykareRbIR)as;TaMg elx nig GkSrpgEdr.

2. Creating Arrays >

GñkGacbegáItnUv array variable edayeRbiviFIBIrya:gKW kareRbIR)as; array() construct b¤ kareRbIR)as;nUvsBaØa square

brackets ( [ ] ) .

2.1 Defining Arrays with the array() Construct>

array()construct vamansar³RbeyaCn_enAeBlEdlGñkcg;pþl;tMéleRcIneTAeGay array kñúgeBlEtmYy.

xageRkamKW]TahrN_énkarbegáIt array mYyEdlmaneQµaHfa $users ehIyeyIg)anpþl;tMélCa string cMnYnbYn

tMéleTAeGayva .

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

\LÚvenHGñkGacykFaturbs; $users mkeRbIR)as;edaykareRbIR)as; index rbs; array

print $users[2];

Array

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 28

lT§plén]TahrN_xagelInwg bgðajCaGkSr Mata Edl index rbs;vaehIyRtUv)andak;enAcenøaH square

brackets ( [2] ) bnÞab;BIeQµaHrbs; array ( $users ) .

2.2 Defining or Adding to Arrays with the Array Identifier>

GñkGacbegáIt array fµI b¤ bEnßmtMéleTAeGay array )anedaykareRbIR)as;nUv array Identifier .

array identifier KWCabnþúMén squre brackets nig index rbs;va Caelx b¤ CaeQµaH.xageRkamCa ]TahrN_énkarbegáIt

$users array edayeRbIvIFIsaRsþmYyepSgeTot .

$users[] = " Sok";

$users[] = " Sao";

$users[] = " Dara";

$users[] = " Mesa";

]TahrN_xagelIminTamTareGayGñkdak;nUvtMélelxEdlCa index enAcenøaH square Brackets enaHeLIy

eRBaH PHP nwgpþl;tMél index edaysV½yRbvtþieTAeGay array . müa:gvijeTotGñkk¾Gacdak;nUvtMélCa index rbs;

array )anpgEdr b:uEnþminmankarKaMRTeGayeFVIEbbenHenaHeTsUmBinitüemIl karsresrkUdxageRkam³

$users[0] = "Phanit"; >

$users[200] = "Ratana";

Array xagelImanFatuRtwmEtBIrb:ueNÑaH b:uEnþ index cugeRkayrbs;vaKWCa index TI200 PHP nwgminkMnt

tMélFatueTAeGay index EdlenAcenøaH enaHeLIy EdleFVIeGaymankarPan;RcLMenAeBlEdlcg;BüayamykFatu

Edlmankñúg array enaHmkeRbI xN³eBlEdlGñkcg;eRbInUv Faturbs;va NamYyeTAtamcitþrbs;Gñk. sMrab;karbegáIt array

GñkGaceRbI nUv array() contstructrYceRbInUv array identifier edIm,IbEnßmnUvFatufµIeTotk¾)an .

sUmBinitü]TahrN_xageRkam ³

$users = array ("Sok", "Sao", "Mata", "Mesa"); >

$users[] = "Menear"; >

3. Populating an Array with array_fill() >

RbsinebIGñkcg;dak;nUvtMélCa default enAcenøaHén index array enaHGñkRbEhlCaeRbInUv array() function

dUcxageRkam .

$member = array ("cambodia", "cambodia", "cambodia","cambodia "); >b¤ GñkGaceRbIR)as;nUv array

müa:geTotdUcCa

$member[] = "Cambodia"; >

$member[] = "Cambodia"; >

$member[] = "Cambodia";>

$member[] = "Cambodia"; >

PHP )anpþl;nUv function edIm,IedaHRsaynUvbBaðaenHedayeRbInUv array_fill() function EdltMrUveGayGñkpþl;nUv

arguments cMnYn3sMrab; function enH TI1KWCatMél index Edlcab;epþIm

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 29

TIBIKWCa cMnYnFatuEdlGñkcg;)an ehIy argument TI3 KWCatMélEdlGñkRtUvpþl;eGayCaFaturbs;Array .

edaykareRbIR)as;nUv array_fill() function GñkGacsresrnUvbMENkkUdxagelIeLIgvij dUcxageRkam ³

$member = array_fill( 0, 4, "Cambodia" ); >

]TahrN_³ 24

<?

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

$member[] = "Malaysia";

print $users[2];

?>

4. Associative Arrays >

Assosciate array KWCa array EdleRbIR)as;nUv index CaGkSrenA cenøaH squqre braketsGñkGacbegáItnUv

assosciate array eday array construct( array() )b¤ array identifier (array[])

]TahrN_

$character = array("name" => "Sok", >

"occupation" => "Student",

"age" => 12,

"Adr" => "Phnom Pehn" );

\LÚvenHeyIgGaceRbIR)as;nUvFatu array rbs; $character dUcxageRkam³

print $character['occupation']; >

keys EdlenAkñúg assosciate array KWCa string dUecñH engine nwgbgðajr)aykarN_ error RbsinebI keys én array minman

quoted . dUecñHGñkKYrEteRbInUv quotation marks enAeBlEdlGñkeRbIkeys én array Ca string .

print $character[occupation]; // minRtwmRtUv

print $character["occupation"]; // RtwmRtUv

RbsinebI key RtUvpÞúkenAkñúg variable enaH GñkmincaM)ac;RtUveRbI quotation mark enaHeLIy .

$occ = "occupation"; >

print $character[$occ]; // RtwmRtUv

4.1 Directly Defining or Adding to an Associative Array >

GñkGacbegáIt b¤ bEnßm eQµaH¼tMél eTAeGay associate array edaykarpþl;nUvtMéleTAeGayeQµaHénFaturbs;

array dYcxageRkam .

$character["name"] = "sok"; >

$character["occupation"] = "Programmer"; >

$character["age"] = 30; >

$character["address"] = "Phnom Penh";>

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 30

5. Getting the Size of an Array >

count() function pþl;nUvcMnYnFaturbs; array Edlman bMENkkUdxageRkameyIg)aneRbIR)as; nUv count()function

edIm,IykFatucugeRkayén array $users mkeRbI .

$users = array ("Sambath", "Ratana", "Davy", "Ryda" ); >

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

]TahrN_ 26

<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>

cMNaM ³ count() pþl;tMéléncMnYnsrubrbs;Fatu array minEmnCatMélén index cugeRkayenaHeT .

]TahrN_xageRkamenHKWkarbegáIt array edaykarpþl;nUv index eTAeGay array edayxøÜnGñk

$users[35] ="Sok";

$users[52] ="Som";

$users[890] ="Mom";

$users[52]="Mab";

count() enAEtpþl;nUvcMnYnsrubénFatu array dEdl KWmancMnYn 4 Fatu . ehIyGñkk¾GacTTYlnUv

Faturbs; array cugeRkay)anedaykareRbInUv end() function EdlTamTarRtwmEt argument

mYy b:ueNÑaH . ]TahrN_ print end($users);

6. Looping Through an Array >

foreach statement KWCaviFIsaRsþmYyya:gRbesIredIm,I loop ral;FatunimYy²EdlmanenA kñúg array .

GñkGaceRbIR)as;nUv foreach statement dUcxageRkam ³

foreach( $arr as $temp )

{

//...>>>>>>>>>>

}>

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 31

$arr KWCa array EdlGñkRtUv loop ehIy $temp KWCa variableEdlGñknwgRtUvrkSarTukCabeNþaHGasnñ nUvFatunimYy²

kñúgRKa loop . kUdxageRkamKWCakarbegáIt array mYyehIyeyIg eRbI foreach statement edIm,IykFatunimYy²mk

bgðajelI browser .

]TahrN_ 26

<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>

]TahrN_ 27

<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>

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 32

6.1 Looping Through an Associative Array >

edIm,IeRbIR)as;nUv foreach statement CamYy assosciat array TaMg keys nig values GñkGaceRbIR)as;CamYynwg

foreach statement dUcxageRkam ³

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

{

//...>>

}

$arr KWCa array EdleyIgnwgRtUv loop ehIy $key KWCa variable EdlpÞúknUv key nimYy²CabeNþaHGasnñ ehIy

$val KWCa variable EdlpÞúknUv value rbs; array nimYy²CabeNþaHGasnñkñúgRKa loop mþg² .

]ThrN_ 28

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>

ArrayEdl)anbegáItenAbnÞat;TI11 ehIyeRbIR)as;nUv foreach statement enAbnÞat;TI 15

edIm,I loop nUvFatuEdlCatMél nig key rbs;va . ral; key nimYyRtUv)anpÞúkenAkñúg variable Edl

pþl;eQµaHeGayfa $key nig ral; value nimYy²RtUv)anpÞúkenAkñúg variable Edlpþl;eQµaHfa $val

ehIyRtUv)anbgðajCalT§pleTAkan; browser enAbnÞat;TI 17 .

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 33

7. Joining Two Arrays with array_merge() >

array_merge() mantYnaTIpÁMúnUvFaturbs; array BIr b¤ array eRcInbBa¢ÚlKña rYcpþl;Ca Array

fµImYyeTotEdlCabnþMúénFatu array TaMgGs;enaH. ]TahrN_xageRkamKWCa]TahrN_énkarbegáItnUv array BIr KW

array $arr1 nig array $arr2 ehIyeFVIkarbBa©ÚlKñarvagFatuén array TaMgBIrrYcpþl;tMélTaMgenaHeTAeGay

$arr3 bnÞab;mk loop ral;FatuEdlmanenAkñúg $arr3 .

]TahrN_ 29

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 pÞúknUvral;FatuEdlmanenAkñúg $arr1 nig $arr2 array . foreach

statement

nwgbgðajnUvbnþMúénFatu array ( 'a', 'b', 'c', 1, 2, 3 ) CamYynwg <br/> enAcenøaHFatunimYy²

.

8. Adding Multiple Variables to an Array >

array_push()TTYlyknUv array nig tMélepSgBI parameters EdltMélTaMgenaHKWCaFatuEdlnwgRtUvbEnßmeTAeGay

array . array_push() function minmanlkçN³dUc array_merge()enaHeT BIeRBaH array

EdlbBa¢ÚneTACa argument dMbUgnwgRtUvERbRbYl ehIy array_push() nwg pþl;mkvijnUvtMélsrubTaMgGs

;EdlmanenAkñúg array enaHvij .

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 34

]TahrN_ 30

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>

\LÚvenH $arr1 )anbEnßmnUvFatuCa integer cMnYnbIFatu Edl)anmkBIkareRbIR)as;nUv array_push() function

dUecñH $arr1 pÞúknUvtMélsrubcMnYn 6 FatuehIyRtUv)anbgðajnUvFatunimYy²eTAkan; browser edaykUdEdlmanenAkñúg foreach

statement .

cMNaM³ eyIg)aneRbInUv backslash eBlEdl print Ca string "------\$arr1" enAbnÞat;TI 10

RbsinebIGñkeRbInUv nimitþsBaØaenABImuxBakü b¤ XøaNamYyenaH PHP nwgbBa©ÚlCatMéleTAeGayeTAtameQµaH variable .

]TahrN_ xagelIeyIgcg;bgðajnUv string '$arr1' EdlminEmnCatMélrbs; variable enaHeT dUecñHedIm,I print nUv

special character ($) eyIgRtUvEteRbInUv backslash (\)

enABImux . RbsinebIGñkcg;bEnßmFatueTAeGay array ehIyCaFatudMbUgeTotenaH GñkGaceRbIR)as;CamYynwg

array_unsift() .

]TahrN_ 31

<html>

<head>

<title>Using array_unsift() </title>

</head>

<body>

<h2>Using array_unsift()</h2>

<?php

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 35

$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>

\LÚvenH $arr1 array pÞúknUvtMél 1, 2, 3, "a", "b", "c" .

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

array_shift() mantYnaTIykecjnUvFatuTImYyén array .sUmBinitü ]TahrN_xageRkam³

]TahrN_ 32

<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/>";

}

?>>

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 36

</body>

</html>

10. Slicing Arrays with array_slice() >

array_slice() GnuBaØateGayGñkTajykcMnYnénFatu array EdlTamTareGayGñkpþl;nUv

argument cMnYnbI TImYyKWCa array variable TI2CaTItaMEdlRtUvcab;epþImyk nigTIbI KWCacMnYnFatu rbs; array

EdlRtUvkarehIy argument TIbIenHKW (optional) RbsinebIGñkmineRbInUv argument enHeT array_slice()

nigcab;yknUvFatuTaMgGs;én array cab;BITItaMgEdlGñk)anpþl;CatMélenA kñúg argument TI1mk.

]TahrN_ 33

<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>

kUdEdlbegáItenA]TahrN_ 33 nwgbgðajnUvlT§pl 'c', 'd', nig 'e' EdlCaFaturbs;

$secend bnÞab;BIeRbInUv array_slice() edayykFatuTaMgGs;rbs; $first .

11. Sorting Arrays >

11.1 Sorting Numerically Indexed Arrays with sort() >

sort() TTYlyknUv argument mYyEdlCa array ehIyeFVIkartMerobvaeTAtamlMdab;éntY GkSrb¤BItUceTAFM

]TahrN_ 34 KWCakarbegáIt array edaypþl;nUvtMélCa string eTAeGaybnÞab;mkeyIgeRbI sort()

edIm,ItMerobFatuTaMgenaHBI A-Z b¤ BItUceTAFM rYcbgðajCalT§pleTAkan; Browser .

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 37

sUmBinitükñúg]TahrN_ 34

<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>

Gñkk¾Gacpøas;bþÚrnUvlMdab;énkartMerobFaturbs; array BIlMdab; tUceTAFM b¤ BIlMdab;FM eTAtUcvijedaykareRbInUv

rsort(). sUmkMuBüayameRbI sort()b¤ rsort() CamYy associate array BIeRBaH vanwgeFVIeGayGñk)at;bg;nUv key rbs; array .

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

assort() TTYlyk argument EdlCaRbePT associate array ehIyeFVIkartMerobtMél rbs; array enaHBI A-Z b¤

CatMélelx BItUceTAFM GaRs½yeTAelIRbePTéntMél .

]TahrN_ 35

<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 )

{

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 38

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>

sMrab;karbþÚrlMdab;énkartMerobBItUceTAFM b¤ BIFMeTAtUc GñkGaceRbIrnUv arsort() .

11.3 Sorting an Associative Array by Key with ksort() >

ksort() TTYlnUv argument EdlCa associate array ehIyeFVIkartMerobtMél rbs;va nimYy²eTAtamlMdab;BI A-

Z b¤ Caelx BIFMeTAtUc edayGaRs½yeTAelI key rbs; array enaH .

]TahrN_ 36

<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>

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 39

Gñkk¾Gacpøs;bþÚrlMdab;énkartMerob BIFMeTAtUv b¤ BI Z-A vijedayeRbI krsort() .

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 40

ច្េច្ ៀនទ្យី ៦

1. What Is an Object ?

Object KWCa bNþúMén variables nig functions EdlzitenAkñúg template BiessmYyEdl eKehAfa class .

object lak;nUvtMeNIrkarEdlmanenAxagkñúg BIkareRbIR)as;va edaypþl;Ca Interface sMrab;eGayGñkbBa¢ÚnnUv

bBa¢aredIm,ITTYlBt’manRtlb;mkvij . interface TaMgenaHKWCa Function BiessEdleKeGayeQµaH methods ehIyral;

methods TaMgGs;én object KWRtUvEt Access eTAkan; special variable ehAfa properties.

KuNsm,tþirbs; object-oriented code KWpþl;nUvkarkat;bnßykarsresrkUd dEdl²BIeRBaH class Edl)an

begáIt Ca object manPaBgayRsYlykeTAeRbIR)as;BI project mYyeTAkan;Project mYyepSgeTot .

bEnßmBIenHvamanlT§PaBbegáIt nUv child classes Edl inherit ehIynwgOverride nUvlkçN³epSg²BI parents class .

2. Creating an Object

edIm,IbegáIt object mYyGñkRtUvEterobcMnUv template mYyedIm,IeGayvaGac instantiated Edl template enHKWCa

class enAkñúgPasa PHP edIm,IRbkas class mYyGñkRtUvEteRbI class Keyword .

class Person

{

// a very minimal class

}

Person class KWCamUldæand¾sMxan;mYyEdlGñkGac instantiate ral;tMélnimYy²BIPersonObject . edIm,IbegáIt

instance mYyén object GñkRtUvEteRbI new statement .

$obj1 = new Person(); >

$obj2 = new Person(); >

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

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

GñkGac test nUv $obj1 nig $obj2 CamYynwg gettype() function . gettype function TTYltMélVariable

nimYy²ehIypþl;Ca string mkvijEdlR)ab;GñkGMBIGVIEdlGñkkMBugEteFVIkarCamYy .

3. Object Properties

Object Edl access eTAkan; special variable RtUv)aneKehAfa properties . GñkGacRbkasnUv special

variable TaMgenaH)anenARKb;TIkEnøgTaMgGs;én class b:uEnþedIm,IeGaymanPaBgayRsYlGñkKYrEtRbkas;vaenAxagelI .

sMrab; property mYyvaGacCa value b¤ Ca array b¤ CaObject epSg² .

class Person >

{

var $name = "Vichet"; >

} >

[[

Object

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 41

eyIg)an declared nUv variable CamYynwg var keyword EdlenHKWCaviFIsaRsþEtmYyKt;edIm,I declare nUv property

mYyenAkñúgPasa PHP 4 eyIgnwgeXIjBIlkçN³bEnßmrbs; PHP 5 enA]TahrN_eRkay²eTot .

dUecñHRbsinebIGñkcg;sresrkUdeGay compatible CamYy PHP 4 enaH GñkRtUvEteRbI var keyword.

\LÚvenH Person objet Edl)anbegáItKWmanpÞúknUv property mYy EdleGayeQµaHfa $name

CamYynwgtMélrbs;vaKW "Vichet" . GñkGac access nUv property enH BIxageRkA object

nigeFVIkarpøas;bþÚrtMélrbs;vaedayeRbI]TahrN_ 37 .

<?

class Person >

{

var $name = "Vichet"; >

}

$obj1 = new Person(); >

$obj2 = new Person(); >

$obj1->name = "Soporn"; >

print "$obj1->name<br />"; >

print "$obj2->name<br />"; >

?>

( -> ) operator enHGnuBaØateGayGñkeFVIkar access b¤ pøas;bþÚrnUvtMélrbs; propertiesénObject .

eyIg)anpþl;nUvtMél "Soporn" eTAeGay $name property tamry³ $obj1->name .

4. Object Methods >

Method KWCa function Edl defined enAkñúg class . RKb; object Edl)an instantiatedBI class EtgEtman

method‟s Canic© eyIgnwgbEnßmnUv method mYyeTAeGay Person class enA

]TahrN_ 38 .

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: ?>

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 42

dUcEdlGñk)anCYbRbTHmkehIyGMBI method én]TahrN_ 37 EdlemIleTAvamanlkçN³dUcKñaeTAnwg

function FmµtaEdr . GñkGac call object method edaykareRbIR)as;nimitþsBaØa ( -> ). method Edl)an access

eTAkan; member variables én class xagelI)an return nUv string "Ratana" EdlenHminEmnCakarGnuvtþn_EdlRtwmRtUv

enaHeT method KYrEt return tMélEdl copy BI $name property nwg minEmnCa string literal.

Gñkk¾)ansÁal;rYcmkehIyGMBIkaraccess a property BIxageRkA object b:uEnþetIRtUveFVIya:gNaedIm,I refer vaenAxagkñúg class

xøÜnÉg? sUmBinitüemIl]TahrN_ 39 .

5. Accessing a Property from Within a Method >

]TahrN_ 39

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 Edl)anbegáItkñúg]TahrN_ 39 eyIg)aneRbIR)as;nUv special variable $this edIm,I refer eTAkan;

current instantiated object enAbnÞat;TI 15 KW $name . object Edl refereTAkan;xøÜnÉgRtUvEteRbI $this variable

P¢ab;CamYysBaØa ( -> ) edaykareRbIviFIenHGñkGac accessral; property b¤ method EdlzitenAkñúg class xøÜnÉg.

GñkGacKitfacg;eGay object mannUvtMélén $name property epSg²Kña edayGñkGaceFVIkarerobcMnUvtMélrbs; $name

property dUcEdl)anGnuvtþn_enAkñúg]TahrN_ 39 b¤ GñkGacbegáItCamethod sMrab;eFVIkarCamYyvadUcmanbgðajkñúg

]TahrN_ 40 .

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 43

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

]TahrN_ 40

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én object cab;epþImedaytMél string "tepy"enAbnÞat;TI12 b:uEnþbnÞab;BI setName() method

RtUv)anehAenAbnÞat;TI 26 tMélrbs;vaRtUv)anbþÚreTACa "darya" vij . Object KWmanlT§PaBpøas;bþÚrnUv property

rbs;xøÜnÉg)an ehIysMrab;karbBa¢ÚnnUv arguments eTAkan; method vijKWGñkGaceRbInUvviFI dUcEdlGñkGnuvtþn_vaCamYy

function FmµtaEdr .

7. Object Constructors >

enA]TahrN_muneyIg)aneRbIR)as; method mYyeQµaHfa setName() edIm,IeFVIkarpøas;bþÚrtMélrbs; $name

property müa:gvijeTot karpþl;nUvtMéltMbUgsMrab; $name property enAkñúg Class KW hard-code .var $name = "tepy";

> RbsinebIeyIgKitfa $name property pÞúknUvtMélepSg²Kña ral;eBlEdl instance én Person class

eyIgGaceFVIeGaykan;EtRbesIrCagmunedaykar set $name property enAeBlEdl Object RtUv)an initialize.

eyIgGaceRbIR)as; special function EdleKeGayeQµaHfa constructor edIm,I set properties

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 44

nigbMeBjkargarepSg²eTAtamtMrUvkarénkargar. constructor KWRtUvehAeday sV½yRbvtþienAeBlEdl object RtUv)an

instantiated edaykareRbIR)as; new keyword .

GñkGacbegáItnUv constructor tamviFIsaRsþBIrya:g TI1 KW constructor EdlCa functionmaneQµaHdUc class .

]TahrN_ 41 nwgbEnßmnUv constructor samBaØmYyeTAeGay Person Class EdlkUdxageRkamenHeRbIR)as;)ansMrab;Et

PHP 5 b:ueNÑaH .

]TahrN_ 41 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>

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 45

Person() constructor method bnÞat;TI14KWRtUv)anehAedaysV½yRbvtþienAeBlEdleyIgInstantiate nUv Person

object bnÞat;TI29 eyIgk¾)anerobcMnUvtMél default mYyCa string "tepy" pþl;eTAeGay parameter pgEdr

vaKWCakarCMnYseGay xN³EdleyIgmin)anpþl;Ca argument enAeBlEdleyIgbegáIt Object.

PHP 5 )anbgðajnUv syntax fµImYyedIm,IbegáIt constructor methods edayCMnYseGaykareRbIR)as;nUv function

EdlmaneQµaHdUc class mkCakareRbI special syntax fµIKW__construct()dUecñHeyIgGaceFVIkarpøas;bþÚrbnÞat;TI5én

]TahrN_xagelI mkeRbInUv syntax fµIedayeFVIkarCMnYsnUv function Person() mkeRbI __construct() vij.

function __construct( $name="tepy") >

{

………….

}

8. Limiting Access to Object Properties >

PHP 4 min)anpþl;nUvkar karBarsMrab; object properties enaHeT Client code Gac getb¤ set object

properties)aneTAtamkarKitrbs;BYkeK.mansMnYrsYrfaetImanbBaðaGVIeTkñúgkarGnuvtþn_EbbenH? vaminmanCabBaðakñúgkareRbI

R)as;nUv Public accessible properties enaHeT Edl CaTUeTA vaCakarGnuvtþn_sMrab;kar access eTAkan; object

EdlmanlkçN³tUc. enA]TahrN_xag eRkameyIgnwg)aneXIjnUvlkç½NÐmYyEdlkMNt;nUvRBMEdnénkar access eTAkan;

$name propertyrbs; Person class .

]TahrN_ 42 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"

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 46

28: print "<br />";

29: $person->name = "makara";

30: ?>

PHP 5 pþl;nUvviFIsaRsþepSgedIm,I declare nUv properties rbs;eyIgedaykarCMnYsnUv Var keyword mkeRbInUv

keywords fµImYykñúgcMeNam keyword TaMgbI EdlmanlkçN³ Rsedog eTAnwg programming Java eyIgnwgbgðajBIkar

declarenUv property fµIenHenAkñúgtaragxageRkam

PHP 5 Property Declaration Keywords

Privacy Level Description

public Accessible to all. Equivalent to var.

private Available only to the containing class.

protected Available only to the containing class and subclasses.

dUecñHeyIgGacpøas;bþÚr properties rbs;eyIgEdlmanenAkñúg]TahrN_xagelIedayeRbIprivate CMnYs eday var

keyword vij .

ex.

private $name; >

private $pid; >

\LÚvenHkarBüayampøas;bþÚrnUvtMélrbs; $name property én Person object enAbnÞat;TI 30 nwgbgðajnUv error

message dUcxageRkam .

Fatal error: Cannot access private property Person::$name in c:\Inetpub\wwwroot\

classPrivateProperty.php on line 30 >

dUecñH Client coders RtUvEteRbIR)as;nUv setName() method edIm,IeFVIkarEkERbeTAelItMélrbs; $name property .

maneBlNamYyGñkRbEhlCacg;eGay child classes Gac accsess eTAkan; property

EdlenAkñúgeBlenaHGñkKYrEteRbInUv protected keyword eRBaHvaGnuBaØateGayGñk accesse vaBClass EdlGñk)an

derived ehIyeyIgnwg)aneXIjvaenAkñúgEpñkmYyEdlniyayBI Inheritance .

9. Limiting Access to Object Methods >

lkçN³sMxan;én object-oriented code KWCa class . Object RtUvEtkMNt;nUvmuxgarnig Public interface

eGay)anc,as;las;enAeBlGñkbegáItnUv methods epSg² .bMENkEdlmanenAkñúg classKWpÞúknUvmuxgarepSg²sMrab;tM

eNIrkardUecñHGñkKYrEtlak;nUvmuxgarTaMgenaHBIBiPBxageRkA. sMrab;Ca]TahrN_xagelIeyIgKYrEtbegáItnUv method

sMrab; $personStr property BIeRBaHral;tMeNIrkarTaMgGs;rbs; $personStr RtUv)anpÞúkenAkñúg setName() method .

function setName( $n )

{

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 47

$this->name = $n;

$this->$personStr=$this->name." ".$this->pid;

} >

GñkRbEhlCaRtUvkarnUv method edIm,I reset nUv string rbs; $personStr dUecñHeyIgnwgbegáItnUv

Method fµImYysMrab; pþl;tMéleTAeGay $personStr property .

function setName( $n )

{

$this->name = $n;

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

}

function makePersonStr( $string , $code)

{

return $this->personStr = "$string $code";

}

\LÚvenHeyIgenAEtmanbBaðaenAeLIyCamYynwg method rbs;eyIg BIeRBaH client code enAEtGacAccess nUv

makePersonStr() method ehIyvaGaceFVI»ó Tinñn½yrbs;eyIgmankarBi)ak RKb;RKg . eyIgcg;eGayRtwmEt object

EdlCaGñkbegáItnUv property EtmYyKt;EdlmansiT§ Access mk kan; property enH enAkñúgCMnan;rbs; PHP 5

eyIgGacpþl;nUvlkçN³ pravicy eTAeGay methods dUcEdleyIg)anGnuvtþn_CamYynwg private property BI]TahrN_mun .

private function makePersonStr($string , $code) >

{

// ...

}

\LÚvenH makePersonStr() function Gac access )anEtenAkñúg method TaMgLayNaEdlzitkñúg Person class

b:ueNÑaH .

Public, protected ehIynwg private vatMeNIr)anEtCamYynwg PHP 5 Etb:ueNÑaH dUecñHRbsinebIGñkBüayam

eRbInUv keyword TaMgbIenHCamYy PHP 4 enaH script rbs;GñknwgRtUvbraC½yTaMgRsug .

10.Inheritance >

edIm,IbegáIt class mYyEdlGac inherits function BI parent class eyIgRbEhlCaRtUvEkERbnUvkar declare class

rbs;eyIgbnþicbnþÜc . ]TahrN_fµIxageRkamenH KWCakarbegßItnUv Item Class ehIynig begßItnUv inheriting class

Edlpþl;eQµaHfa PriceItem .

]TahrN_ 43

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: {

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 48

08: 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>

eyIg)anbegáItnUv class mYyeTotEdlmaneQµaHfa PriceItem enAbnÞat;TI 21 . KYrcMnaM

fa extends clause EdleRbIR)as;enAxagkñúgkar declare class enAbnÞat;TI21 enHmann½yfa PriceItem object

inherits ral; function TaMgGs;EdlmanenAkñúg Item class dUecñH PricteItem Object nimYy²KWmanlT§PaB access

eTAkan; getName() method b¤ $name property b:uEnþ k¾GaRs½yeTAelIkareRbIR)as;nUv privacy settings pgEdr .

edaysarEteyIgBMu)anbegáItnUv Constructor method sMrab; PriceItem class dUecñHetI $name property

vaGaceFVIkarpøas;pþÚrtMél BI default "item" eTACa "Angkor" edaybBa¢ÚneTAtam PriceItem )any:agdUcemþc ?

BIeRBaHeyIg

BMu)anpþl;nUv contructor enAkñúg PriceItem enaHeT dUecñHRbsinebI class Edl extend BI class déT

eTotminmannUv constructor method enaH contructor EdlCarbs; parent class nwgRtUv)an

ehAedaysV½yRbvtþienAeBlEdl child object cab;epþImbgáIteLIg .

11. Overriding the Method of a Parent Class >

enAkñúglkçN³én object-oriented kUdrbs; child classes Gac override methods BI Parents class

nwgGnuBaØtieGay objects Gac instantiated BI parent class .

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

]TahrN_ 44

01: <?php

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 49

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 EdlbegáItenAkñúg PriceItem class enAbnÞat;TI 20 RtUv)anehA

edayeRbIR)as;nUv $name property rbs; parent class EdlenAcMnucenHeyIgKYrEteFVIkarsMerccitþ

begáItnUv $name property EdlmanenAkñúg Item class Ca private .

class Item

{

private $name;

// ...

}

karpøas;bþÚrnUv]TahrN_xagelIeFVIeGaylT§plmanPaBERbRbYldUcxageRkam-

lT§plEdlTTYl)anmuneBleFVIkarpøas;bþÚr KW (price) Angkor lT§plfµIEdlnwgTTYl)anKW (price) \LÚvenH PriceItem

class minGac access eTAkan; $name property eTot)aneT b:uEnþRbsinebI Child class RtUvkar access eTAkan;

methods b¤ property én ancestor classes eyIKYrEteRbInUv Protected keyword CMnYseGay private vij .

12. Calling an Overridden Method >

maneBlxøH function EdlmanenAkñúg parent class GacmanplRbeyaCn_sMrab;Gñk dUecñH

sMrab; Object-oriented-programmingGnuBaØatieGayGñk refer eTAkan; parent class edayeRbInUv

parent keyword . ]TahrN_xageRkamenH getName() method EdlzitenAxagkñúg PriceItem

Class nwg call nUv method enAkñúg Item class Edl)anRtUv override.

Calling an Overridden Method (PHP 5 Syntax) >

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 50

]TahrN_ 45

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: ?>

eyIg)aneFVIkarCamYynwg getName() method enAkñúg PriceItem class bnÞat;TI 17 .

PriceItem class mineFVIkarpÞal;CamYynwg $name property rbs; Item class enaHeT dUecñHenAcMnuc enHeyIgGac declare

$name property Ca private EdlmineFVIeGaymanplb:HBal;CamYynwg lT§plenaHeT

ehIyRbsinebIeyIgeRbIvaCamYynwg PHP 5 eTotenaH vaKWCakarGnutþn_d¾l¥ edIm,I Lock nUv methods nig property

rbs;eyIg .

13. Working with Constructors >

eyIgFøab;)aneXIjmkehIyfa constructor rbs; parent class nwgRtUv called edaysV½y

RbvtþiRbsinebI child class min)anbegáItnUv constructor sMrab;xøÜnvaenaHeT . eyIgnwgbEnßmnUv

Constructor method eTAeGay PriceItem class rbs;eyIgCamYynwg]TarhN_xageRkam .

]TahrN_ 46 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: }

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 51

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: ?>

eyIg)anbegáItnUv constructor method enAbnÞat;TI16 edIm,ITTYl argument sMrab;

$name nig $codeRBmCamYynwg argument fµIsMrab; price. eyIg)aneRbIR)as; parent keyword

edIm,I call constructor rbs; Item class enAbnÞat;TI22 muneBlEdleyIgeFVIkarerobcMtMéleGay

$price property EdlenHbgðajeGayeyIgeXIjBIehtuplmYysMrab;eRbInUv syntax fµIrbs; PHP5 edIm,IbegáIt contructor .

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

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 52

ច្េច្ ៀនទ្យី ៧

enAelI internet (world wide web ) Form pøl;nUvlT§PaBeénkarbBa¢ÚnnUvBt’manBIGñk eRbIR)as;BI Client

eTAkan; Server . PHPRtUv)anrcnaeLIgedIm,IeFVIkarCamYynwgBt’manTaMgenaHenAeBlEdl HTML forms RtUv)an submit

.

1. User Input>

GñkR)akdCacg;eGaykmµviFIrbs;GñkmanskmµPaB b¤ TMnak;TMngCamYynwgGñkeRbIR)as;kñúgxN³eBlNamYy .

]TahrN_xaeRkamKWCakarbegáItnUv Form mYyedIm,ITTYlnUvBt’manBIGñkeRbIR)as;dUcCa first-name , last-name , date of

birth , email address nig 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>

[

Form

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 53

<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>

enAbnÞat;EdleyIg)aneRbInUv form tage<form method="get" action="register.php">eyIg)aneRbInUv get method

EdlCa attribute dMbUgenAkñúg form tag . HTTP get method eFVIkarbBa¢ÚnTinñn½yBI form eTAtam URL

EdleFVIeGayTinñny½TaMgenaHGacbgðajenAelI address bar rbs; browser CaehtueFVIeGaylT§plEdl)anBI form

GacRtUvrkSarTukCa bookmark . GñkRbEhlCaRtUveRbI post method vijCakarRbesIrCag RbsinebIGñkcg;

eRbIR)as;nUv passwordBIeRBaH POST eFVIkarbBa¢ÚnTinñn½yEdlmanenAkñúg form eTAtam body én HTTP request dUcecñH

Tinñn½yTaMgenaHminRtUv)anbgðajeGayeXIjCamYy URL b¤ Ca bookmarked enaHeT .

edIm,I processes data BI form EdleRbI get method enAkñúg Script GñkGaceRbICamYy $_GET b¤RbsinebIGñkeRbI nUv post

method GñkGaceRbICamYy $_POST b¤ eRbI $_REQUEST GñkGaceRbI)as;)anTaMgBIr method.

]TahrN_ kareRbIR)as; get method enAkñúg 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>";

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 54

print "</tr>";

print "<tr>";

print "<td><b>Last-Name :</b></td>";

print "<td> $lame </td>";

print "</tr>";

print "</table>";

?>

</body>

</html>

xageRkamKWCalT§plEdlTTYl)anbnÞab;BI form RtUv)an submit edayeRbI get mehod . sUmBinitüemIlnUv address

bar rbs; browser EdlBt’manbBa¢ÚnmkenaH RtUv)anP¢ab;mkCamYynwg url

]TahrN_ 49 kareRbIR)as; post method enAkñúg 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>";

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 55

?>

</body>

</html>

Gñknwg)aneXIjBIPaBxusKñarvagkareRbIR)as;nUv post method nig get method enAelI Address bar rbs;

brower nimYy² . xageRkamKWCalT§plEdlTTYl)anbnÞab; BI form RtUv)an Submit edayeRbIR)as;nUv post method .

2. Accessing Form Input with User-Defined Arrays >

]TahrN_ 49 pþl;lT§PaBeGayGñkTTYlnUvBt’manBI HTML element Edl)an Submit

nUvtMélmYysMrab;Etelement mYyb:ueNÑaHEdlenHBMuTan;manlkçN³RKb;RKan;enAeLIyenaHeTRbsin ebIGñkcg;eFVIkarCamYynwg

multiple select .

]TahrN_ 50

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>

eyIgnwgbegáIt script edIm,IEsVgrk input BI "products[]" form element EdlbegáItenAbnÞat;TI 12edaypþl;eQµaHCa array

indexed ehAfa products. products[]KWCa select element Edlpþl;eGaynUvCMerIssMrab;GñkeRbIR)as;edaykareRbI

option element enAbnÞat;TI 13 dl; bnÞat;TI 17eyIgnwgbgðajBIlT§plEdlGñkeRbIR)as;)aneRCIserIsBI form xagelI

EdlbegáItCa array enAkñúg ]TahrN_ 51

01: <html>

02: <body>

03: <head>

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 56

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>

enAbnÞat;TI 09 én ]TahrN_ 51 eyIgeFVIkarRtYtBinitüeTAelI $_POST['products'] Element RbsinebI

element enHCa array eyIgnwg loop ral;FatunimYy²rbs;vaenAbnÞat;TI 10 edIm,I bgðajCalT§pleTAkan; Browser .

Gñkk¾GacGnuBaØatieGayGñkeRbIR)as; eRCIerIsnUvCMerIseRcInedayeRbI check boxes EdlRtUvpþl;nUveQµaHdUc²KñasMrab;

element nimYy² ehIyP¢ab;CamYy empty brakets . PHP nwg compiles nUvGVIEdlGñkeRbIR)as;)an select eTACa array .

eyIgnwgeFVIkarpøas;bþÚrBIkareRbI select element enA]TahrN_xagelI mkeRbI check boxes vijdUcmankñúg]TahrN_ 52.

]TahrN_ 52

<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>

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 57

multiple.php

]TahrN_ 52

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>

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 58

ច្េច្ ៀនទ្យី ៨

1. What is MySql ? >

MySql KWCaRbePT Open Source Sql databases management system EdlmanRbCaRbiybMputsMrab;

kareRbIR)as; edayRtUv)anGPivDÆn_nigKaMRTeday MySQL AB . MySQL AB KWCaRkumh‘unEdlbegáIteLIg

edayRkumGñkGPivDÆn_ MySql .

1.1 MySQL is a relational database management system. >

A relation databases KWrkSaTuknUvTinñn½ykñúg table epSgBIKñaEdlmanlkçN³RbesIrCagkarrkSaTuknUvTinñn½yTaMg

Gs;enAkñúg storeroom d¾FMmYy ehIyviFIenHGacCYybegáInel,Ón nig manPaBgayRsYleRbIkan;EtRbesIreLIgCamYy

nwgTinñn½y . SQL KWCabMENkmYyén MySQL Edl eRbI CaBaküeBjfa “Structured Query Language” SQL

KWCaPasaEdleRbIR)as;Ca standard edIm,I access eTAkan; databases ehIyRtUv)ankMNt;eday ANSI/ISO SQL

Standard .SQL standard RtUv)anvivtþn_eLIgenAkñúgGMLúgqñaM 1986 EdlbegáIt)anCaCMnan;rbs; SQL-92

edaysMedAeTAelI SQL standard EdleFVIkardak;ecjnUvCMnan;rbs;xøÜnenAkñúgGMLuúgqñaM 1992 nig bnÞab;mkKW SQL-1999

nigeRkaymkeTotKW SQL-2003 .

1.2 MySQL software is Open Source. >

Open Source KWmann½yfaGñkeRbIR)as;manlT§PaBEkERbnUv software enaH)an ehIy GacTajyknUv

Software TaMgenaHenAelI Internet nigGaceRbIR)as;va edayminmankarbg;R)ak; eTAelIesvakmµGVITaMgGs; . MySQL

software eRbIR)as; GPL( General Public License ) edIm,Ipþl;eGayGñknUvGVIEdlRtUvkar nig GVIEdlGñkminRtUvkarcMeBaH

software enH . KWmann½yfa RbsinebIGñkminmanGarmµN_Tukcitþ CamYyniwg GPL b¤ Gñkcg;bgáb;nUvkUdeTAkñúg MySQL

edIm,IeFVICaCommercial application GñkGacTijnUvc,ab;GnuBaØatieGayeFVIBaniC¢kmµBIRkumh‘un MySQL Edl

Bt’manlMGitGñkGaceRbIR)as;nUveKhTMB½r (http://www.mysql.com/company/legal/licensing/) ។

2. SQL commands in mysql >

EpñkxageRkamnwgbgðajBIkareRbIR)as; SQL commands enAkñúg MySQL context .

RKb; commands TaMgGs;suT§Et)anTTYlsÁal;eday MySQL system kñúgGMLúgeBlEdl design SQL databases

environment . command rbs; MySQL nimYy²RtUvEtbBa©b;CamYynwgsBaØa Semicolon ( ; ) .

show databases KWCa command dMbUgEdleRbIedIm,IbgðajnUveQµaH database TaMgGs;EdlmanenAkñúg MySQL

kñúgenaHman database cMnYnBIrP©ab;mkRsab;CamYy MySQL package.

mysql> show databases; +----------+ | Database | +----------+ | mysql | | test |

[

MySql

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 59

+----------+ 2 rows in set (0.00 sec)

Database EdlmaneQµaHfa mysql pÞúknUv MySQL settings ehIynig users epSg² .sMrab;Ca]TahrN_

eyIgnwgbegáIt database mYyeQµaHfa BbuDb .

create database databaseName ;

syntax : mysql>create database BbuDb ; >

eyIgGacBinitüemIl database Edl)anbegáItxagelIedayeRbIR)as; show database command.

>mysql> show databases;

+------------+

| Database |

+------------+

| mysql |

| BbuDb |

| test |

+------------+

3 rows in set (0.00 sec)

edIm,Ilb;nUv database NamYyenaHGñkGaceRbI SQL command : drop database databaseNameGñkKYrRbugRby½tñpgEdr

cMeBaHkareRbIR)as; command enH BIeRBaHvanwgeFVIkarlb; database edayminmankarsaksYr b¤ eFVIkarbBa¢ak;BI

GñkmþgeToteLIy.SQL syntax EdleRbIedIm,IbegáIt table eyIgnwgbgðajCamYy]TahrN_xageRkam b:EnþmuneBlEdleRbI

command enHGñkRtUvEtkMNt;nUv database mYyeGayCak;lak;Camunsin edayeRbI command use:

mysql>use BbuDb ;. eyIgniwgeRbI command edIm,IbegáIt table Edlmanattributes dUcCa id , username , password ,

name nig email CamYynwg]TahrN_xageRkam .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)

); >

ral; attribute nimYy²suT§EtRtUv)ankMNt;nUvcMMnYntYGkSrEdlRtUvrkSaTukenAkñúg table ehIy fieldnimYy²én table

suT§EtTamTareGaymannUvtMélCanic© . cMENkÉ id attribute tMélrbs;vaniwgRtUvekIneLIgedaysV½yRbvtþienAeBl

EdlTinñn½yRtUv)anbBa©ÚleTAkan; tblpeople mYyelIk² .varchar KWCatMélEdleRbICatYGkSr b¤CatYelx cMENkÉ

binary eKeRbIedIm,IeFVIeGaytMél eTACa case-sensitive rIÉ name ehIy nig email attribute KWminRtUv)aneRbI binary

enaHeT dUecñHvaminmanlkçN³ case-sensitive eLIy . id KWRtUv)anbegáItCa primary key sMrab; table edIm,I

identify row nimYy²én table .

mysql> desc tblpeople ;>

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 60

+----------+-------------+------+-----+---------+--------------+> | 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)>

bnÞab;BImkeTotGñkGaceRbIR)as; insert command edIm,IbBa©ÚlTinñn½yeTAkñúg table .

]TahrN_³

mysql>insert into tblpeople values (null, 'muth', ' muth07 ', 'monen', ' [email protected] ');

mysql>insert into tblpeople values(null, 'lou', ' army ', ' lou cy ', ' [email protected] '); >

enAeBlEdl id attribute Ca auto_increment eyIgeRbI null sMrab;Ca data entry Edl null Value

minmanlkçN³dUcnwg blank (" ") enaHeT . id attribute cab;epþImedaytMélCa integer 1 ehIyvanwgeFVIkarbegáIntMél 1

énenAeBlEdlmankarbBa¢ÚlTinñn½yeTAkan; row fµImþg². GñkGacBinitüemIlBt’man TaMgGs;EdlmanenAkñúg

tablebnÞab;BI)anbBa©ÚledayeRbIR)as; SQL command mysql>select * from tblpeople ; > +----+----------+----------+------------+---------------------+ | id | username | password | name | email | +----+----------+----------+------------+---------------------+ | 1 | muth | muth07 | monen |[email protected] | | 2 | lou | army | lou cy |[email protected] | +----+----------+----------+------------+---------------------+ 2 rows in set (0.00 sec)

edIm,Ilb;nUv table NamYyecjBI database GñkGaceRbI command :mysql> drop table tableNamesMrab; command

EdleRbIedIm,Ilb; row BI table TamTareGayGñkpþl;nUveQµaHén table ehIynigwhere condition EdlbBa¢ak;BI row(s)

EdlnwgRtUvlb; .

delete from tableName where Where-condition

sUmRbugRby½tñRbsinebIGñkmineRbI where-condition enaHeT RKb; rows TaMgGs;EdlmanenAkñúgtable

nwgRtUvlb;ecalTaMgGs;. enAkñúg]TahrN_xageRkameyIgnwgeRbItMélrbs; attribute name nig username edIm,Ilb; row

ecjBI table tblpeople .

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

UPDATE command RtUv)aneRbIedIm,IEkERbBt’manEdlmanenAkñúg table GñkGac select yk

Bt’manNamYymkEkERbBt’manedayminmankar)at;bg;nUv record b¤ row edImTaMgRsugeLIy .

The syntax is:

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

WHERE condition;

ex.

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

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 61

3. PHP/MySQL Functions >

3.1 Connecting to MySQL >

muneBlEdlcab;epþImeFVIkarCamYynwg database rbs;Gñk GñkRtUvEt connect eTAkan; Server Camunsin .

PHP pþl;nUv mysql_connect () function edIm,IGnuvtþn_nUvParkic©enH .

bMENkkUdxageRkamnwgbgðajBIkareRbIR)as; mysql_connect() P¢ab;eTAkan ; MySQL database Server .

$link = mysql_connect( "localhost", "root", "123" );

if ( ! $link )

{

die( "Couldn't connect to MySQL" );

}

3.2 Selecting a Database >

bnÞab;BI)anbegáIt connection edIm,IP¢ab;eTAkan; MySQL rYcral;ehIy GñkRtUvEteRCIerIsDatabase

NamYyedIm,IeFVIkarCamYyva edayGñkGaceRbIR)as;nUv mysql_select_db() function .

bMENkkUdxageRkameyIgnwg select yk database mYyEdlmaneQµaHfa BbuDb .

$database = "BbuDb"; >

mysql_select_db( $database ) or die ( "Couldn't open $database ); >

3.3 Adding Data to a Table >

\LÚvenHeyIgmanlT§PaBRKb;RKan;edIm,I access eTAkan; database ehIyeyIgGacbBa¢ÚlnUvBt’maneTAkan;

table én database . sMrab;Ca]ThrN_eyIgnwgeRbIR)as; table Edl)anbegáItenAkñúg database BbuDb EdlmaneQµaHfa

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 );

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 62

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 ', ' [email protected] ' )";

23: mysql_query( $query, $link )

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

25:

26: mysql_close( $link );

27: ?>

28: </div>

29: </body>

30: </html>

sMrab;]TahrN_enHeyIgmin)anbBa©ÚltMéleTAeGay id column enaHeT eRBaH field enHCaRbePT

auto_increments . vaCakarBit ral;eBlEdleyIg reload script én]TahrN_xagelITinñn½ydEdlnwgRtUvbBa©ÚleTAkan;

row fµImYyeTotén 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>

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 63

<tr>

<td>Email :</td>

<td><input type="TextBox" size="18" name="txtemail"/></td>

</tr>

<tr>

<td align="right" colspan="2">

<input type="Submit" value="Submit">

</td>

</tr>

</table>

</body>

</html>

Inser.php >

01 <html>

02 <head>

03 <title>Listing 13.3 Adding user input to a database</title>

04 </head>

05 <body>

06

07 <?php

08

09 $username = $_REQUEST['txtusr'] ;

10 $name =$_REQUEST['txtname'] ;

11 $pwd =$_REQUEST['txtpwd'] ;

12 $email = $ REQUEST['txtemail'] ;

13 if ( ! empty($username) && ! empty( $name ) && ! empty($pwd )&&

14 !empty($emial) ) // check user input here!

15 {

16 $db = "BbuDb";

17 $link = @mysql_connect( "localhost", $user, $pass );

18 if ( ! $link )

19 {

20 die( "Couldn't connect to MySQL: ".mysql_error() );

21 }

22 @mysql_select_db( $db ) or die ( "Couldn't open $db: ".mysql_error() );

23

24 $query = " insert into tblpeople(username , password , name , email )

25 values( '" .$username. '", '" .$name. '", '". $pwd .'", '" .$email. '" )";

26 mysql_query( $query, $link ) or die ( "INSERT error: ".mysql_error() );

27

28 mysql_close( $link );

29 ?>

30 </body>

31 </html>

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 64

eyIg)an select nUv database EdlpÞúk table eQµaHfa tblperson enAbnÞat;TI 22 ehIynwgbegáIt SQL query

edIm,IbBa©ÚltMélEdl)anmkBI user-submitted edaybBa¢ÚnBt’maneTAeGaymysql_query() enAbnÞat;TI 26 .

3.5 Accessing a Resultset >

GñkGacmanPaBgayRsYledIm,ITTYl)an array BICYr nimYy²én filds edaykareRbIR)as; CamYynwg mysql_fetch_row()

function . function enHtMrUveGayGñkpþl; result resource mYy ehIy vanwg return vijnUv row nimYy²EdlmanenAkñúg

field .

Listing All Rows and Fields in a Table

01: <html>

02: <head>

03: <title> Selecting Data</title>

04: </head>

05: <body>

06: <?php

07: $user = "root";

08: $pass = "1235";

09: $db = "BbuDb";

10: $link = mysql_connect( "localhost", $user, $pass );

11: if ( ! $link )

12: {

13: die( "Couldn't connect to MySQL: ".mysql_error() );

14: }

15: mysql_select_db( $db, $link )

16: or die ( "Couldn't open $db: ".mysql_error() );

17:

18: $result = mysql_query( " SELECT * FROM tblperson " );

19: $num_rows = mysql_num_rows( $result );

20:

21: print "<table border=\"1\">\n";

22: while ( $a_row = mysql_fetch_row( $result ) )

23 {

24: print "<tr>\n";

25: foreach ( $a_row as $field )

26: {

27: print "\t<td>".$field."</td>\n";

28: }

29: print "</tr>\n";

30: }

31: print "</table>\n";

32: mysql_close( $link );

33: ?>

34: </body>

35: </html>

bnÞab;BIeyIg)an connected eTAkan; database server ehIynwg selected database rYcral;eyIg )aneRbI mysql_query()

enAbnÞat;TI 18 edIm,IbBa¢Ún select statement eTAkan; database serverbnÞab;mkeyIgrkSarnUv return result resource

enAkñúg varible mYyeQµaHfa $result ehIyeRbIvaedIm,I TTYlykcMnYn row EdlmanenAkñúg table .

sMrab; test expression én while statement enAbnÞat;TI 22 eyIg)anpþl;nUvlT§plEdl)anBI

mysql_fetch_row() eTAeGay variable $a_row. zitkñúgtMeNIrkarrbs; while statement

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 65

eyIg)an loop nUv row array EdlpÞúkkñúg $a_row enAbnÞat;TI 25 ehIyeFVIkarbec©jnUvlT§plBIFatunimYy²

bBa¢ÚleTAkñúg table cell rYcRtUv)anbgðajeday web browser . Gñkk¾Gac accessFields

edayeRbIR)as;eQµaHrbs;vaeTAtamviFIsaRsþBIrya:gKW ³ mysql_fetch_row() va return Ca

Numerics array nig mysql_fetch_row() va return Ca associative array

CamYynwgeQµaHrbs;Fields edayeRbICa keys rbs; array. bMENkkUdxageRkameyIgnwgCMnYsbnÞat;TI 23-33

edaykareRbIR)as; mysql_fetch_array() CMnYsvij .

print "<table border=\"1\">\n";

while ( $a_row = mysql_fetch_array( $result ) )

{

print "<tr>\n";

print "<td>".$a_row['name']."</td>";

print "<td>".$a_row['username']."</td>";

print "<td>".$a_row['email']."</td>";

print "</tr>\n";

}

print "</table>\n";

müa:gvijeTotGñkGaccab;yk fields BICYrNamYymkeFVICa properties én object eday eRbI

mysql_fetch_object() enaHeQµaH field TaMgGs;nwgkøayCaeQµaHrbs; properties .

print "<table border=\"1\">\n"; >

while ( $a_row = mysql_fetch_object( $result ) )

{

print "<tr>\n";

print "<td>".$a_row->name."</td>";

print "<td>".$a_row->username."</td>";

print "<td>".$a_row->email."</td>";

print "</tr>\n";

}

print "</table>\n";

cMeBaHkareRbIR)as; mysql_fetch_array() nig mysql_fetch_object() TaMgBIrenHsuT§Et

pþl;nUvPaBgayRsYlsMrab;cab;yk Bt’manBI row NamYy. eTaHbICaya:gNak¾edayCaFmµta PaK eRcIneKniymeRbIR)as;

mysql_fetch_array() .

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 66

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 67

ច្េច្ ៀនទ្យី ៩

1. Cookie>

cookie KWCaTinñn½yEdlrkSaTukeday user‟s browserEdlRbRBwtþeTA)anedaykar requestBI server b¤ script .

vaGacrkSaTuk)anRtwmEt 20 cookies nig TMhMpÞúkTinñn½y)anRtwm 4 kilobyte b:ueNÑaH ehIyral; cookie

nimYy²RtUvEtmannUv eQµaH tMél nig kalbriecäTQb;eRbIR)as;; .

bnÞab;BI cookieRtUv)an set manEt ma:sIunkMBüÚT½rEdl set nUv cookie enaHb:ueNÑaHeTIbGacmansiT§ read

nUvTinñn½yEdlmanenAxagkñúg)an b:uEnþk¾GaRs½yeTAelI user‟s privacy Edl userGaceFVIkar configure enAelI browser

rbs;BYkeK edIm,IeGay cookie TaMgGs; manlT§PaB set b¤ k¾bdiesFmineGaymankar request cookie . cookie

GacCaviFIsaRsþd¾RbesIrsMrab;rkSarTuknUvBt’manxøIBIGñkeRbIR)as; BI page mYyeTA page mYyeTot . .

Cookies rbs; PHP bBa¢ÚneTAkan; web server edayeRbIR)as; setcookie() function .RbsinebI cookie )an set

nUv time-out browser nwgeFVIkarcgcaMnUv cookie eTaHbICaGñk restartma:sIunk¾eday b:uEnþRbsinebIGñkmin)an set nUv time-

out sMrab; cookie enaHeT browser nwgbM)at;ecalnUv cookie enaHPøamenAeBlEdlGñk close browser.sMrab;Ca]TahrN

_eyIgnwg set cookie enAeBlEdl user bBa©ÚlnUv username nig password )anRtwmRtUvCamYynwg 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();

[

Saving State with Cookies and Session >

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 68

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>

cMeBaH superglobal EdleRbIedIm,I read cookies KW $_COOKIE EdleyIgnwgGnuvtþn_vaCa mYynwg]TahrN_enAkñúg

file mYyeQµaHfa 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');

}

?>

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 69

sMrab;kareRbIR)as user id rbs;eyIgenH KWvamanPaBcaM)ac;Nas; dUcCakarcg;caMsMrab;Authentication data

¬dUcEdleyIg)anGnuvtþn_enAkñúg script rbs;eyIg ) .b:uEnþvaminTan;CaKMnitEdlRtwmRtUvenaHeT BIeRBaH

GñkeRbIR)as;GacEkERb cookies TaMgenaH b¤ install tMélepSg²)aneTAtamGMeBIcitþ .

mantMeNaHya:gRbesIrmYysMrab;bBaðaenHKWkareRbIR)as; PHP Sessions EdleyIIgnwgGnuvtþn_enAkñúg]TahrN_eRkay

mYyeTot . edIm,I lb; cookie GñkRKan;EteRbIR)as; parameters dUcEdlGñk set cookie b:uénþGñkmincaM)ac;pþl;nUv value

sMrab; cookie enaHeT ehIy kalbriecäTQb;eRbIR)as;GñkRtUvpþl;eGayCakalbriecäTénGtItkal . enAkñúg logout page

eyIgnwglb; cookie edayeRbIviFI dUcxageRkam.

logout.php

<?php

setcookie('uid', '', time() - 86400, '/');

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

?>

time()-86400 KWCakalbriecäTEdlknøghYseTAmYyéf¶ nwgCakalbriecäTénGtItkal

edIm,IR)ab;eGay browser bM)at;ecalnUv cookie data enaH .

2. SESSIONS >

PHP session GnuBaØatieGay application rbs;GñkrkSarTukBt’manenAkñúgcurrent session

xN³eBlEdlGñkeRbIR)as;)an logged in eTAkan; application rbs;Gñk . session RtUv)ankMNt; eday session ID

EtmYyKt; PHP begáIt session ID eday MD5 hash én remote IP addressnig bEnßmnUvsBaØaepSg²eday random

eTAkñúg hexadecimal string . eyIgnwgsresreLIgvijnUv]TahrN_elIkmun EdleyIg)aneRbIR)as; cookie

mkCMnYsedaykareRbIR)as; session vij .

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 */

វិទ្យាស្ថា នពហុបច្ចេកច្ទ្យសច្េត្តបាត្់ដំបង POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP Prepare By: DY CHANDOEUN Page 70

<?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');

?>

eyIgenAEt initialize nUv session CamYynwg session_start() bnÞab;BIeyIgGac clear nUvsession )anedayeFVIeGay

$_SESSION subperglobal eTACa empty array bnÞab;mkeyIgeFVIkarDestroy session ehIynwg associate data edaykar

call session_destroy() function .

cMnaM ³ edIm,Ilb;ecjnUvFatuTaMgGs;rbs; session GñkRtUvEtpþl; empty array eTAeGay variableenaH .

Good Luck For You