You are on page 1of 70

សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

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

History
PHP RtUv)anpþl;eQµaHCapøvÚ kar HyperText Preprocessor vaCaPasaEdltMeNIrkarenAelI ServerEdlCa TUeTA
RtUv)an sresrkñgú bribT HTML b:Eu nþmni dUcCa HTML page FmµtaenaHeTPHP script minRtUv)anbBa¢Ún eTAeGay
client eday server pÞal;enaHeT vaeFVk I arbBa¢Úneday PHP engine . PHP code EdlzitenAkñgú script GaceRbIedIm,IeFVI
karCamYy Databases, begáItCarUbPaB ,Gan nigbBa©ÚlTinñny½ b¤ EkrERbGtßbTEdlmanenAxagkñgú files b¤ eFVIkar
TMnak;TMngeTAkan; Remote Server RBmCamYynwglT§PaBCaeRcInepSgeTot .
Rasmus Lerdorf KWCamnusSdMbUgEdlGPivDÆn_nvU 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þúnM Uv Perl scripts mkGPivDÆn_ enAkñúgGMLgú qñaM 1995 b:uEnþvaenAmankgVHxatCaeRcInenAkñúg
PasaenH dUcCa for loops CaedIm .
PHP/FI 2
enAkñúgqñaM 1997 Rasmus bnþkarGPivDÆn_nvU PHP/FI 2 rhUtmkdl;Ex vickäi a 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;Bk Y eK . BYkeK)aneGaydwgfa PHP/FI BMuTan;manlT§PaB
RKb;RKan;enAeLIyehIyxVHxatnUv lkçN³BiessCaeRcIn . cMncu mYyEdlmankarcab;GarmµN_CageK KW while loops
EdlBYkeKnwgRtUvRbtibtþi .
PHP 3>
Zeev and Andi sMerccits þ resr scripting language eLIgvijb:uEnþBvMu tþman RasmuscUlrYmedIm,IGPivDÆn_nvU
PHP3eLIyehIy)anpþln; vU eQµaHfµf I aHypertext PreprocessoredIm,IbBa¢ak;fa PHPKWCaplitplepSgmYyeTotehIynwg
minRtwmEtykmkeRbIsMrab;EtkargarpÞal; xøÜnenaHeT . Zeev and Andi k¾)anbegáItnUv Extension API Edl API
begátI fµIenHvamanlT§PaBbMeBjnUvkargarCaeRcIndUcCa Accessing databases , spell checkers ehIynwg bec©k
viTüadéT²eTot EdleFVeI Gaymankarcab;GarmµN_BsI MNak;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 .

By PREAP SAN PHP & MYSQL Page.. 1


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

PHP 4 >
enAeRkayqñaM 1998 Zeev nig Andi gakeTABitnitüelIkargar PHP 3 ehIyBYkeKmanKMnti faBYkeKGacsrsrnUv
script language eLIgvijeGaymanlkçN³l¥RbesIrCagmuneTAeTot kñg ú xN³eBlEdl PHP 3 kMBgu bnþkareFVIsm<n½ § nig
RbtibtþikarenaH PHP 4 k¾ cab;epþmI begáItnUvKMrfU µ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þfIsµ Mrab;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:Eu nþedaymankarpøas;bÚrþ enAkñgú PasaenHCabnþbnÞab;eTIb PHP 4 )anbegátI nUvCMnan;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;cgu eRkayrbs; 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ñgú CMnan; PHP 5 mancMncu CaeRcInEdlnwgRtUvEkERb bEnßm b¤ rMelaHecal .
PHP‟s minRtwmEtERbRbYledayGaceGayeRbIR)as;nUvlkçN³ Object-Oriented b:eu NÑaHenaHeT vaEfmTaMg pÞúknUvmux

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


manPaBgayRsYl kñgú karsRmbsRmYlCamYyÉksar XML nig SOAP b¤ MySQLi fµI ehIynwg extensions epSg²
eTotEdlCacMnucsMxan;enAkñgú PHP‟s . eKrMBwgfa PHP 5 nwgGackøayCaGñknaMmuxeK enAelITpI SarénkarGPIvDÆn_ web
.



By PREAP SAN PHP & MYSQL Page.. 2


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

ច្េច្ ៀនទ្យី ២
Building Block
1.អថេរ (Variables) >
VariableKWCaRKwHd¾sMxan;sMrab;PasakMuBüÚTr½ vaRtUv)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ñny½ BI 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þln; vU eQµaHrbs;
variable CatYGkSr tMélelx b¤ underscore ( _ ) k¾b:uEnþGñkminGaceRbIGkSrdkXøaCamYyeQµaHrbs; variable enaHeT

.
]TahrN_ xageRkamKWCakarpþle; Qµ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 GaceFVkI arpøas;brþÚ RKb;eBlevla . CaTUeTAkarRbkasVariable b¤ karpþlt; éM leTAeGay
variable GñkGacGnuvtþn_nUv statement dUcxageRkam .
$num1 = 5;
$num2 = 8;
karRbkas variable BIr xagelIGkñ )aneRbIR)as;nUv assignment operator (=) Edlnwgerobrab;lMGitenAkñgú emeron “
Operator and Expression “ .bnÞab;BIGñk)anpþln ; UvtMéleTA variablerYcral;ehIy GñkGacykvamk eRbIR)as;)an
dUcxageRkam ³
print $num2; vamantMélesµnI gw kareRbI print 8; dUcecñHmann½yfa $num2 pÞúktMémø 8

cUrcgcaMfaral;cgu bBa©b;énr)aykarN_rbs; PHP nimYy²RtUvEtbBa©b;edaysBaØa ( ; ) semicolon.


2 Data Types >
RbePTxus²KñaénTinñn½yRtUv)aneRbIR)as;nvU cMnYnsrubrbs;GgÁcgcaMepSg²Kña ehIyvaGacRbRBwteþ TAenAeBlGñk
erobcMvaenAkñgú script rbs;Gñk . manPasakmµviFmI YycMnnY TamTareGayGñksresrkmµviFI RbkasnUvRbePT énTinñn½y

By PREAP SAN PHP & MYSQL Page.. 3


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

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


nUvRbePTTinñn½yedaysV½yRbvtþei nAeBlEdlGñk)anpþlt; éM 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: ?>

By PREAP SAN PHP & MYSQL Page.. 4


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

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 EdlCacMnnY Kt; b¤
GñkGacniyay)anfatMélelxEdlKµanek,ósdUecñHlTÞplEdlnwgTTYl)anbnÞab;BkI areRbIR)as;nUv gettype() function
bnÞat;TI12 KW // integercMENkkarpþln; vU tMé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ßti enAbnÞ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

nwgCMnsY nUvtMé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>

By PREAP SAN PHP & MYSQL Page.. 5


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

3.Displaying Type Information with var_dump() >


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

eRbIedIm,IR)ab;nvU RbePT variable nig cMnHu rbs;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
PHP pþl;eGaynUvviFIedIm,eFVkI arpøas;bÚrþ nUvRbePTTinñ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;

By PREAP SAN PHP & MYSQL Page.. 6


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

$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 KWCanimitµ sBaØaTaMLayNaEdlGñkGaceRbItMélmYy b¤ eRcIn begátI ecjCatMélfµImyY eTot
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µmI YyepSgeTot.
4+5>
4 ehIynig 5 KWCa operand EdlRtUv)an operated eday addition operator (+) edIm,IbegátI nUvtMélfµI KW 9 . karpþMúnvU
operand nig operator edIm,Ibegát I CalT§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; >

By PREAP SAN PHP & MYSQL Page.. 7


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

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;BpI lEck ( Modulus ) 10%3 1

- dk ( Subtraction ) 10-2 2

5.3 The Concatenation Operator ( . ) >


Concatenation operator eRbIedIm,IP¢ab; string sMrab; operator mYyenHvaeFVk
I arCamYyEt string b:ueNÑaH .
dUecñHral; operand EdlminEmnCa string vanwg convert eGayeTACa string sUmBinitüemIl]TahrN_ ³
"hello"." world" karsresrEbbenHvaesµn I gw karsresr "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

By PREAP SAN PHP & MYSQL Page.. 8


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

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þln; vU tMélRtlb;Ca Boolean (
.
true or false )

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

operator .
$x < 5
RbsinebI pÞúktMél elx 4 expression xagelInwgpþl;CatMél
$x 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

tMélxageqVg esµI tMélxagsþaM ehIy $x===5


=== Identical
tMélTaMgBIrRtUvEtmanRbePTdUcKña

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

By PREAP SAN PHP & MYSQL Page.. 9


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

5.6 Logical Operators

Logical Operators
Operator Name Returns True if... Example Result
true ||
|| Or Left or right is true True
false
true ||
Or Or Left or right is true true
false
true xor
Xor Xor Left or right is true but not both false
true
true &&
&& And Left and right are true false
false
true &&
And And Left and right are true false
false
! Not The single operand is not true ! true false

Logical operators bMElg operand eGayeTACatMél Boolean rYceFVkI areRbobeFobtMé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ánI 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.

By PREAP SAN PHP & MYSQL Page.. 10


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

Operator Name Effect on $var Value of the Expression

The previous value of


$var++ Post-increment $var is incremented by 1
$var

The new value of $var


++$var Pre-increment $var is incremented by 1
(incremented by 1).

The previous value of


$var-- Post-decrement $var is decremented by 1
$var

The new value of $var


--$var Pre-decrement $var is decremented by 1
(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ñgú kar RbtibtþikarkUdrbs;Gñk
GñkGaceRbIR)as;nUv constant . PHP )anpþl;nUv define() function edIm,I
begátI nUv constant .
define("CONSTANT_NAME", 42); >
By PREAP SAN PHP & MYSQL Page.. 11
សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

tMélEdlGñkGacpþle; TAeGay constant KWRtUvEtCa tMélelx b¤ tYGkSr ehIysMrab;kar


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

enaHmkeRbI b:Eu nþ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;téM lrbs; constant nig


GkSr "Welcome" BIeRBaH PHP engine minmanviFsI aRsþedIm,IEbgEck rvag constant nig string
EdlenAkñgú quotation mark enaHeT .
Ca Default constant KW case sensitive b:uEnþGñkGacpøas;brþÚ edayTTYlyknUv 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 edayminmankarxVayxVlG; MBIGkSrtUcb¤FMeLIy .
print User;
print usEr;
print USER;

]TahrN_ 7
constant2.php
<html>
<head>
<title>Defining a constant</title>
</head>

By PREAP SAN PHP & MYSQL Page.. 12


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

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

By PREAP SAN PHP & MYSQL Page.. 13


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

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

Going With The Flow

1. The if Statement
If statement KWCaviFsI aRsþEdleRbIedIm,IRtYBinitüeTAelIkarRbtibtþikarrbs; statement EdlenAbnÞab;va
( GacCa single statement b¤ Ca block of code EdlzitnUvkñg ú sBaØa {-------} )
If statement eFVk
I arvaytémø expression EdlenAkñgú sBaØa (---) RbsinebI expression rbs; ifpþlt; éM l true enaH
statement EdlenAxaeRkamnwgRtUvGnuvtþn_ .

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


if(expression)
{
// code EdlnwgRtUvGnuvtþn_enAeBlEdl expression pþlt; éM 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þlt; éM l true ehIy code block nwgRtUvGnuvtþn_buE: nþRbsinebItMélrbs; $user
bþÚreTACa "Romchong" b¤ tMélrbs; $pwd bþÚreTACa "124" ehIytMeNIrkar scripteLIgvij enaH
expression EdlenAkñúg if statement niwgpþl;téM l falseehIyCode block nwgminRtUvGnuvtþn_ Edl

script nwgEbreTAGnuvtþn_nUv else statement CMnsY vij .


else
print "Login fail !";

By PREAP SAN PHP & MYSQL Page.. 14


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

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þlt; émø true
}
else if ( another expression )
{
// codeEdlRtUvGnuvtþn_ RbsinebI expression dMbUgpþlt; émø false
// ehIy expression rbs;va true
}
else
{
// code EdlRtUvGnuvtþn_ RbsinebIBMuman expression NamYy true
}
RbsinebI expression dMbgU minpþl;nUvtMél true enaH block of code dMbgU k¾minRtUv)an Gnuvtþn_Edr else if
cab;epþmI eFVIkarCamYy 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;brþÚ lMdab;énkarGnuvtþnk
_ Udrbs;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þlt; éM 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;

By PREAP SAN PHP & MYSQL Page.. 15


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

default:

// kUdnwgRtUvGnuvtþnR_ bsinebIminman expression NadUcnwg expression rbs; case


}

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


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þRbsinebIBmMu an 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";
}

?>

By PREAP SAN PHP & MYSQL Page.. 16


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

</body>
</Html>

3. Loops >
Loop statement GaceGayGñkGnuvtþnn_ Uvkargarmþ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þlt
; éM 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 .

By PREAP SAN PHP & MYSQL Page.. 17


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

do
{
………………………
// code to be executed
………………………
}
while (expression);
Test expression én do...while statement RtUvEtbBa©be; day ( ; ) 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>

By PREAP SAN PHP & MYSQL Page.. 18


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

<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þmI RtYtBinitüeTAelI expression rbs;xønÜ RbsinebI expression pþlt; éM lTrue enaH code block nwgRtUvGnuvtþn_
bnÞab;mk $i variable eFVkI arbegáIntMélmYyehIy testExpression cab;epþImeFVIkarRtYtBinti üeTAelI expression
rbs;xønÜ sarCafµImgþ eTot. RbtibtþikarenHbnþkarGnuvtþn_rhUtdl; test expression pþlt; éM 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:

By PREAP SAN PHP & MYSQL Page.. 19


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

20: </div>
21: </body>
22: </html>

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


RbsinebItéM 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;teM NIrkarrbs; iteration EdlkMBugGnuvtþn_ bu:EnþminbBaÄb; tMeNIrkarrbs; loop

TaMgRsugenaHeT vanwgbnþeFVkI arCamYy 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 .

By PREAP SAN PHP & MYSQL Page.. 20


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

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>

By PREAP SAN PHP & MYSQL Page.. 21


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

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>

By PREAP SAN PHP & MYSQL Page.. 22


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

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

1.What is Functions ?
Function KWCabnþúéM n block code EdlGñkbegátI ehIyGnuBaØatieGayGñkehA ykmkeRbI enAkñúg script rbs;Gñk
. enAeBlEdlGñkehA function kUd EdlenAxagkñgú nwgRtUvGnuvtþn_ ehIyGñkk¾Gac bBa¢nÚ tMé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;BIBrI eLIgeTA 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>

By PREAP SAN PHP & MYSQL Page.. 23


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

</html>
lT§plEdlbgðajenAelI browser KWCa string éntYrGkSr 1+2+3+…………+10 = 55]TahrN_xagelIenHKW
CakarbegátI nUv 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;Gk ñ GaceFVkI arpøas;bÚþrtMélEdlGñk)anpþl;eGayb¤ maneBlxøHGñknwgcg;eGay function
pþl;nUvtMélfµIeGayGñk bnÞab;BIGñk)anpþlt; éM leTA»óva.
Function mYyGacTTYl)antMéledaykareRbIR)as; nUv returnstatement CamYynwgtMélEdlRtUvbBa©ÚnRtlb;

eTAkan; function. return bBaÄb;Rbtibtþikarrbs; function ehIy bBa¢nÚ tMélRtlb; eTAvijenAeBlEdl function
RtUv)anehAmkeRbI .xageRkamKWCa]TahrN_énkarbegáIt function Edl return tMélBI plbUlcMnnY BIrtMé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: {

By PREAP SAN PHP & MYSQL Page.. 24


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

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 cMnnY BIrEdlCatMélelx 3 nig elx 5
EdltMélTaMgenHRtUv)anrkSaTukenAkñúg variable $num1 nig $num2addNums function eFVkI arKNnanUvplbUként
MélEdlrkSaTukenAkñúg variable TaMgBIrehIypþlC; alT§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:eu NÑ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þIBkI arbegáIt variable mYyenAkñúg function ehIyBüayamykVariable enaHmkbgðajelI


browser BI eRkA function .

cMNaM ³ VariableEdlbegátI enAxagkñ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átI enAxageRkA functiontest() enaHeT . KYrcMNaMfa karyk variable
Edlminman mkeRbIR)as;KWminmanPaB error eLIy.müa:gvijeTot variable EdlRbkasenAxageRkA function
KWminGacykmkeRbIkúgñ function edaysV½yRbvtþei naHeT .
By PREAP SAN PHP & MYSQL Page.. 25
សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

2.1 Accessing Variables with the global Statement


maneBlxøHGñkRbEhlCaRtUvkareRbIR)as; variable enAkñúg function rbs;GñkedayBMtu rM vU
eGaymankarbBa¢ÚntMéltam argument enaHeT . xageRkamKWCa]TahrN_EdleRbIR)as;nUv
global statement edIm,IeRbIR)as;nvU 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_T2I 3 eyIg)aneRbIR)as;nvU global BImxu 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Úrþ tMélrbs;xøÜnTaMgGs;enAkñúg script rbs;Gñk .Gñkk¾GacRbkas variable CamYy global statement
)aneRcInkñgú eBlEtmYy)anpgEdr edaykarEcknUv variable nimYy²edaysBaØa ¬,¦ comma.
]TahrN_ ³ global $var1, $var2, $var3;

By PREAP SAN PHP & MYSQL Page.. 26


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

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

1. What Is an Array?
Gñkk¾)ansÁal;rYcmkehIyGMBI variable EdlRtUveKeRbIedIm,IpúÞknUvtMélepSg² . edaykareRbIR)as; variable
Gñkk¾GacbegátI Ca script eGayRbtibtþikar b¤ bgðajCaBt’manepSg²enAral;eBlEdlGñktMeNIrkarva b:Eu nþ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þmI BIelx 0 . ehtuG)VI anCaRtUveRbIR)as; array ?
RbsinebIGñkmantMélcMnYn 5 EdlRtUvrkSarTuk enaHGñkR)akdCaRtUvbegáIt variable cMnYnR)aMpgEdrArray KW flexible
eRBaHvaGacpÞkú tMél)anBIr b¤ BIrry tMél edayBMumankaregátI nUvvariablefµeI TotehIy 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 EdlmanFatuT4I
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þln; vU lT§PaBedIm,IerobcMnvU 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>
vamansar³RbeyaCn_enAeBlEdlGñkcg;pþl;tMéleRcIneTAeGay array kñgú eBlEtmYy.
array()construct

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


tMéleTAeGayva .
$users = array ("Sok", "Sao", "Mata", "Mesa");
\LÚvenHGñkGacykFaturbs; $users mkeRbIR)as;edaykareRbIR)as; index rbs; array
print $users[2];

By PREAP SAN PHP & MYSQL Page.. 27


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

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þei TAeGay array . müa:gvijeTotGñkk¾Gacdak;nUvtMélCa index rbs;
array )anpgEdr b:uEnþminmankarKaMRTeGayeFVEI bbenHenaHeTsUmBint
i üemIl karsresrkUdxageRkam³
$users[0] = "Phanit"; >
$users[200] = "Ratana";
Array xagelImanFatuRtwmEtBIrb:eu NÑaH b:uEnþ index cugeRkayrbs;vaKWCa index TI200 PHP nwgminkMnt
tMélFatueTAeGay index EdlenAcenøaH enaHeLIy EdleFVeI GaymankarPan;RcLMenAeBlEdlcg;BüayamykFatu
Edlmankñgú array enaHmkeRbI xN³eBlEdlGñkcg;eRbInUv Faturbs;va NamYyeTAtamcitþrbs;Gkñ . 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þln


; vU
arguments cMnn Y 3sMrab; function enH TI1KWCatMél index Edlcab;epþIm

By PREAP SAN PHP & MYSQL Page.. 28


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

TIBIKWCa cMnYnFatuEdlGñkcg;)an ehIy argument TI3 KWCatMélEdlGñkRtUvpþle; GayCaFaturbs;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 brakets Gñ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ñkKYrEteRbInvU 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"; >

By PREAP SAN PHP & MYSQL Page.. 29


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

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þlt; éM léncMnnY srubrbs;Fatu array minEmnCatMélén index cugeRkayenaHeT .
]TahrN_xageRkamenHKWkarbegáIt array edaykarpþln; vU index eTAeGay array edayxønÜ Gñk
$users[35] ="Sok";
$users[52] ="Som";
$users[890] ="Mom";
$users[52]="Mab";
count() enAEtpþln; vU cMnnY srubénFatu array dEdl KWmancMnYn 4 Fatu . ehIyGñkk¾GacTTYlnUv
Faturbs; array cugeRkay)anedaykareRbInUv end() function EdlTamTarRtwmEt argument
mYy b:eu NÑaH . ]TahrN_ print end($users);
6. Looping Through an Array >
foreach statement KWCaviFIsaRsþmYyya:gRbesIredIm,I loop ral;Fatunimy
Y ²EdlmanenA kñgú array .
GñkGaceRbIR)as;nUv foreach statement dUcxageRkam ³
foreach( $arr as $temp )
{
//...>>>>>>>>>>
}>

By PREAP SAN PHP & MYSQL Page.. 30


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

$arr KWCa array EdlGñkRtUv loop ehIy $temp KWCa variableEdlGñknwgRtUvrkSarTukCabeNþaHGasnñ nUvFatunimYy²
kñgú RKa loop . kUdxageRkamKWCakarbegáIt array mYyehIyeyIg eRbI foreach statement edIm,IykFatunmi Yy²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>

By PREAP SAN PHP & MYSQL Page.. 31


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

6.1 Looping Through an Associative Array


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

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


{
//... >>
}

$arrKWCa 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úg
ñ RKa 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>
Edl)anbegátI enAbnÞat;T1I 1 ehIyeRbIR)as;nUv foreach statement enAbnÞat;TI 15
Array

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Þkú enAkñgú variable Edlpþl;eQµaHfa $val
ehIyRtUv)anbgðajCalT§pleTAkan; browser enAbnÞat;TI 17 .

By PREAP SAN PHP & MYSQL Page.. 32


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

7. Joining Two Arrays with array_merge() >


array_merge() mantYnaTIpÁMúnvU Faturbs; array BIr b¤ array eRcInbBa¢ÚlKña rYcpþlC; a Array
fµmI YyeTotEdlCabnþúéM nFatu array TaMgGs;enaH. ]TahrN_xageRkamKWCa]TahrN_énkarbegátI nUv array BIr KW
array $arr1 nig array $arr2 ehIyeFVIkarbBa©ÚlKñarvagFatuén array TaMgBIrrYcpþlt ; Mé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Þkú nUvral;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¢nÚ eTACa argument dMbgU nwgRtUvERbRbYl ehIy array_push() nwg pþl;mkvijnUvtMélsrubTaMgGs
;EdlmanenAkñgú array enaHvij .

By PREAP SAN PHP & MYSQL Page.. 33


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

]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 cMnnY bIFatu Edl)anmkBIkareRbIR)as;nvU array_push() function
dUecñH $arr1 pÞkú nUvtMélsrubcMnYn 6 FatuehIyRtUv)anbgðajnUvFatunmi Yy²eTAkan; browser edaykUdEdlmanenAkñúg foreach
statement .

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


RbsinebIGñkeRbInUv nimitsþ BaØ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 ehIyCaFatudMbgU eTotenaH GñkGaceRbIR)as;CamYynwg


array_unsift() .

]TahrN_ 31
<html>
<head>
<title>Using array_unsift() </title>
</head>

<body>
<h2>Using array_unsift()</h2>

<?php

By PREAP SAN PHP & MYSQL Page.. 34


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

$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() mantYnaTIykecjnUvFatuTImy
Y é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/>";
}

?>>

By PREAP SAN PHP & MYSQL Page.. 35


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

</body>
</html>

10. Slicing Arrays with array_slice()


array_slice()GnuBaØateGayGñkTajykcMnYnénFatu array EdlTamTareGayGñkpþln; vU
argument cMnYnbI TImYyKWCa array variable TI2CaTItaMEdlRtUvcab;epþImyk nigTIbI KWCacMnnY Fatu rbs; array
EdlRtUvkarehIy argument TIbIenHKW (optional) RbsinebIGñkmineRbInvU 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átI enA]TahrN_ 33 nwgbgðajnUvlT§pl 'c', 'd', nig 'e' EdlCaFaturbs;


$secend bnÞab;BIeRbInvU 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,IteM robFatuTaMgenaHBI A-Z b¤ BItUceTAFM rYcbgðajCalT§pleTAkan; Browser .

By PREAP SAN PHP & MYSQL Page.. 36


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

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þrÚ nUvlMdab;énkartMerobFaturbs; array BIldM ab; tUceTAFM b¤ BIldM ab;FM eTAtUcvijedaykareRbInUv


rsort(). sUmkMuBüayameRbI sort()b¤ rsort() CamYy associate array BIeRBaH vanwgeFVIeGayGñk)at;bg;nvU 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 )


{

By PREAP SAN PHP & MYSQL Page.. 37


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

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¤ BIFeM TAtUc GñkGaceRbIrnUv arsort() .


11.3 Sorting an Associative Array by Key with ksort() >
ksort() TTYlnUv argument EdlCa associate array ehIyeFVk I artMerobtMél rbs;va nimYy²eTAtamlMdab;BI A-
Z b¤ Caelx BIFeM TAtUc 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>

By PREAP SAN PHP & MYSQL Page.. 38


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

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

By PREAP SAN PHP & MYSQL Page.. 39


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

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

Object

1. What Is an Object ?
Object KWCa bNþéúM n variables nig functions EdlzitenAkñúg template BiessmYyEdl eKehAfa class .
object lak;nvU tMeNIrkarEdlmanenAxagkñg ú BIkareRbIR)as;va edaypþlC; a Interface sMrab;eGayGñkbBa¢nÚ nUv
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þri bs; object-oriented code KWpþl;nUvkarkat;bnßykarsresrkUd dEdl²BIeRBaH class Edl)an


begátI 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átI 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ñkGMBIGEVI dlGñkkMBgu EteFVIkarCamYy .
3. Object Properties
Object Edl access eTAkan; special variable RtUv)aneKehAfa properties . GñkGacRbkasnUv special
variable TaMgenaH)anenARKb;Tk
I EnøgTaMgGs;én class b:uEnþedIm,IeGaymanPaBgayRsYlGñkKYrEtRbkas;vaenAxagelI .
sMrab; property mYyvaGacCa value b¤ Ca array b¤ CaObject epSg² .
class Person >
{
var $name = "Vichet"; >
} >
By PREAP SAN PHP & MYSQL Page.. 40
សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

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átI KWmanpÞkú nUv property mYy EdleGayeQµaHfa $name
CamYynwgtMélrbs;vaKW "Vichet" . GñkGac access nUv property enH BIxageRkA object

nigeFVIkarpøas;bÚrþ tMé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þln; vU tMé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: ?>

By PREAP SAN PHP & MYSQL Page.. 41


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

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


function FmµtaEdr . GñkGac call object method edaykareRbIR)as;nimt i þsBaØa ( -> ). method Edl)an access
eTAkan; member variables én class xagelI)an return nUv string "Ratana" EdlenHminEmnCakarGnuvtþnE_ dlRtwmRtUv
enaHeT method KYrEt return tMélEdl copy BI $name property nwg minEmnCa string literal.
Gñkk¾)ansÁal;rYcmkehIyGMBIkaraccess a property BIxageRkA object b:Eu nþetIRtUveFVyI a: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átI kñúg]TahrN_ 39 eyIg)aneRbIR)as;nvU 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ñkGaceFVkI arerobcMnUvtMélrbs; $name
property dUcEdl)anGnuvtþn_enAkñg ú ]TahrN_ 39 b¤ GñkGacbegáItCamethod sMrab;eFVkI arCamYyvadUcmanbgðajkñúg
]TahrN_ 40 .

By PREAP SAN PHP & MYSQL Page.. 42


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

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þmI edaytMél string "tepy"enAbnÞat;TI12 b:uEnþbnÞab;BI setName() method
RtUv)anehAenAbnÞat;TI 26 tMélrbs;vaRtUv)anbþrÚ eTACa "darya" vij . Object KWmanlT§PaBpøas;bÚrþ nUv property
rbs;xønÜ Ég)an ehIysMrab;karbBa¢nÚ nUv 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Úrþ tMélrbs; $name
property müa:gvijeTot karpþl;nUvtMéltMbg U sMrab; $name property enAkñúg Class KW hard-code .var $name = "tepy";
> RbsinebIeyIgKitfa $name property pÞkú nUvtMélepSg²Kña ral;eBlEdl instance én Person class
eyIgGaceFVeI Gaykan;EtRbesIrCagmunedaykar set $name property enAeBlEdl Object RtUv)an initialize.
eyIgGaceRbIR)as; special function EdleKeGayeQµaHfa constructor edIm,I set properties

By PREAP SAN PHP & MYSQL Page.. 43


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

nigbMeBjkargarepSg²eTAtamtMrvU karénkargar. constructor KWRtUvehAeday sVy½ RbvtþienAeBlEdl object RtUv)an


instantiated edaykareRbIR)as; new keyword .

GñkGacbegáItnUv constructor tamviFsI aRsþBrI ya: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>

By PREAP SAN PHP & MYSQL Page.. 44


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

Person() constructor method bnÞat;T1I 4KWRtUv)anehAedaysV½yRbvtþei nAeBlEdleyIgInstantiate nUv Person


object bnÞat;T2I 9 eyIgk¾)anerobcMnUvtMél default mYyCa string "tepy" pþl;eTAeGay parameter pgEdr
vaKWCakarCMnYseGay xN³EdleyIgmin)anpþlC; a argument enAeBlEdleyIgbegáIt Object.
PHP 5 )anbgðajnUv syntax fµmI YyedIm,IbegáIt constructor methods edayCMnsY eGaykareRbIR)as;nUv function
EdlmaneQµaHdUc class mkCakareRbI special syntax fµKI W__construct()dUecñHeyIgGaceFVkI arpø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ðaGVeI TkñúgkarGnuvtþn_EbbenH? vaminmanCabBaðakñg
ú kareRbI
R)as;nvU Public accessible properties enaHeT Edl CaTUeTA vaCakarGnuvtþns_ Mrab;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"

By PREAP SAN PHP & MYSQL Page.. 45


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

28: print "<br />";


29: $person->name = "makara";
30: ?>
PHP 5 pþl;nvU viFIsaRsþepSgedIm,I declare nUv properties rbs;eyIgedaykarCMnYsnUv Var keyword mkeRbInUv
keywords fµm I Yykñgú cMeNam keyword TaMgbI EdlmanlkçN³ Rsedog eTAnwg programming Java eyIgnwgbgðajBIkar
declarenUv property fµeI nHenAkñg
ú taragxageRkam
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 CMnsY eday var

keyword vij .
ex.
private $name; >
private $pid; >

\LÚvenHkarBüayampøas;brþÚ nUvtMé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;nvU setName() method edIm,IeFVkI arEkERbeTAelItMélrbs; $name property .
maneBlNamYyGñkRbEhlCacg;eGay child classes Gac accsess eTAkan; property
EdlenAkñgú eBlenaHGñkKYrEteRbInUv protected keyword eRBaHvaGnuBaØateGayGñk accesse vaBClass EdlGñk)an
derived ehIyeyIgnwg)aneXIjvaenAkñg ú Epñ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átI nUv method
sMrab; $personStr property BIeRBaHral;tMeNIrkarTaMgGs;rbs; $personStr RtUv)anpÞúkenAkñgú setName() method .
function setName( $n )
{

By PREAP SAN PHP & MYSQL Page.. 46


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

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

GñkRbEhlCaRtUvkarnUv method edIm,I reset nUv string rbs; $personStr dUecñHeyIgnwgbegátI nUv
Method fµm
I YysMrab; 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»ó Tinnñ y½ rbs;eyIgmankarBi)ak RKb;RKg . eyIgcg;eGayRtwmEt object
EdlCaGñkbegáItnUv property EtmYyKt;EdlmansiT§ Access mk kan; property enH enAkñúgCMnan;rbs; PHP 5
eyIgGacpþln; vU lkç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:eu NÑaH dUecñHRbsinebIGñkBüayam

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


10.Inheritance >
edIm,IbegátI class mYyEdlGac inherits function BI parent class eyIgRbEhlCaRtUvEkERbnUvkar declare class
rbs;eyIgbnþicbnþÜc . ]TahrN_fIµxageRkamenH KWCakarbegßItnUv Item Class ehIynig begßtI nUv inheriting class
Edlpþle; Qµ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: {

By PREAP SAN PHP & MYSQL Page.. 47


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

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átI nUv class mYyeTotEdlmaneQµaHfa PriceItem enAbnÞat;TI 21 . KYrcMnaM
fa extends clause EdleRbIR)as;enAxagkñgú kar 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átI nUv Constructor method sMrab; PriceItem class dUecñHetI $name property
vaGaceFVIkarpøas;prþÚ tMél BI default "item" eTACa "Angkor" edaybBa¢nÚ eTAtam PriceItem )any:agdUcemþc ?
BIeRBaHeyIg
BM)u 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
ehAedaysVy½ RbvtþienAeBlEdl child object cab;epþmI bgá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

By PREAP SAN PHP & MYSQL Page.. 48


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

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átI enAkñgú PriceItem class enAbnÞat;TI 20 RtUv)anehA
edayeRbIR)as;nUv $name property rbs; parent class EdlenAcMnucenHeyIgKYrEteFVIkarsMerccitþ
begátI nUv $name property EdlmanenAkñúg Item class Ca private .
class Item
{
private $name;
// ...
}
karpøas;bþrÚ nUv]TahrN_xagelIeFVIeGaylT§plmanPaBERbRbYldUcxageRkam-
lT§plEdlTTYl)anmuneBleFVIkarpøas;bÚrþ KW (price) Angkor lT§plfµEI dlnwgTTYl)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 eyIKYrEteRbInvU Protected keyword CMns


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

By PREAP SAN PHP & MYSQL Page.. 49


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

]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)aneFVkI arCamYynwg getName() method enAkñúg PriceItem class bnÞat;TI 17 .
PriceItem class mineFVk I arpÞal;CamYynwg $name property rbs; Item class enaHeT dUecñHenAcMncu enHeyIgGac declare
$name property Ca private EdlmineFVIeGaymanplb:HBal;CamYynwg lT§plenaHeT
ehIyRbsinebIeyIgeRbIvaCamYynwg PHP 5 eTotenaH vaKWCakarGnutnþ d_ ¾l¥ edIm,I Lock nUv methods nig property
rbs;eyIg .
13. Working with Constructors >

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


RbvtþRi bsinebI 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: }

By PREAP SAN PHP & MYSQL Page.. 50


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

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átI nUv constructor method enAbnÞat;TI16 edIm,ITTYl argument sMrab;
$name nig $codeRBmCamYynwg argument fµs I Mrab; 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µrI bs; PHP5 edIm,IbegáIt contructor .
parent::__construct( $name, $code );

By PREAP SAN PHP & MYSQL Page.. 51


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

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

Form

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;TnM gCamYynwgGñkeRbIR)as;kúñgxN³eBlNamYy .
]TahrN_xaeRkamKWCakarbegáItnUv Form mYyedIm,ITTYlnUvBt’manBIGkñ eRbIR)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>

By PREAP SAN PHP & MYSQL Page.. 52


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

<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)aneRbInvU form tage<form method="get" action="register.php">eyIg)aneRbInvU get method
EdlCa attribute dMbgU enAkñúg form tag . HTTP get method eFVkI arbBa¢nÚ Tinñn½yBI form eTAtam URL
EdleFVIeGayTinnñ y½TaMgenaHGacbgðajenAelI address bar rbs; browser CaehtueFVeI GaylT§plEdl)anBI form
GacRtUvrkSarTukCa bookmark . GñkRbEhlCaRtUveRbI post method vijCakarRbesIrCag RbsinebIGñkcg;
eRbIR)as;nUv passwordBIeRBaH POST eFVkI arbBa¢nÚ Tinnñ ½yEdlmanenAkñgú form eTAtam body én HTTP request dUcecñH
Tinñny½ TaMgenaHminRtUv)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>";

By PREAP SAN PHP & MYSQL Page.. 53


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

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

By PREAP SAN PHP & MYSQL Page.. 54


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

?>
</body>
</html>
Gñknwg)aneXIjBIPaBxusKñarvagkareRbIR)as;nUv post method nig get method enAelI Address bar rbs;
brower nimy
Y ² . 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átI enAbnÞat;TI 12edaypþl;eQµaHCa array
indexed ehAfa products. products[]KWCa select element Edlpþle; GaynUvCMerIssMrab;GñkeRbIR)as;edaykareRbI

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

EdlbegátI Ca array enAkñúg ]TahrN_ 51


01: <html>
02: <body>
03: <head>

By PREAP SAN PHP & MYSQL Page.. 55


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

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;Fatunimy Y ²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 nimy Y ² ehIyP¢ab;CamYy empty brakets . PHP nwg compiles nUvGVIEdlGñkeRbIR)as;)an select eTACa array .
eyIgnwgeFVIkarpøas;brþÚ BIkareRbI 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>

By PREAP SAN PHP & MYSQL Page.. 56


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

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>

By PREAP SAN PHP & MYSQL Page.. 57


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

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

MySql

1. What is MySql ? >


MySql KWCaRbePT Open Source Sql databases management system EdlmanRbCaRbiybMpt u sMrab;
kareRbIR)as; edayRtUv)anGPivDÆn_ngi KaMRTeday MySQL AB . MySQL AB KWCaRkumh‘nu EdlbegátI eLIg
edayRkumGñkGPivDÆn_ MySql .
1.1 MySQL is a relational database management system. >
A relation databases KWrkSaTuknUvTinñny
½ kñúg table epSgBIKñaEdlmanlkçN³RbesIrCagkarrkSaTuknUvTinñn½yTaMg
Gs;enAkñúg storeroom d¾FmM Yy ehIyviFIenHGacCYybegánI el,Ó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átI )anCaCMnan;rbs; SQL-92
edaysMedAeTAelI SQL standard EdleFVkI ardak;ecjnUvCMnan;rbs;xÜønenAkñgú GMLuú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µGT VI aMgGs; . MySQL
software eRbIR)as; GPL( General Public License ) edIm,Ipþl;eGayGñknUvGVIEdlRtUvkar nig GVIEdlGñkminRtUvkarcMeBaH

software enH . KWmann½yfa RbsinebIGñkminmanGarmµN_Tukcitþ CamYynig w GPL b¤ Gñkcg;bgábn; UvkUdeTAkñgú MySQL


edIm,IeFVCI aCommercial application GñkGacTijnUvc,ab;GnuBaØatieGayeFVBI aniC¢kmµBIRkumh‘un MySQL Edl
Bt’manlMGti GñkGaceRbIR)as;nvU eKhTMBr½ (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ñúgGMLgú eBlEdl design SQL databases
environment . command rbs; MySQL nimy Y ²RtUvEtbBa©b;CamYynwgsBaØa Semicolon ( ; ) .
show databases KWCa command dMbg U EdleRbIedIm,IbgðajnUveQµaH database TaMgGs;EdlmanenAkñúg MySQL
kñgú enaHman database cMnnY BIrP©ab;mkRsab;CamYy MySQL package.
mysql> show databases;
+----------+
| Database |
+----------+
| mysql |
| test |

By PREAP SAN PHP & MYSQL Page.. 58


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

+----------+
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átI xagelIedayeRbIR)as; show database command.
>mysql> show databases;
+------------+
| Database |
+------------+
| mysql |
| BbuDb |
| test |
+------------+
3 rows in set (0.00 sec)
edIm,Ilb;nvU database NamYyenaHGñkGaceRbI SQL command : drop database databaseNameGñkKYrRbugRby½tñpgEdr
cMeBaHkareRbIR)as; command enH BIeRBaHvanwgeFVIkarlb; database edayminmankarsaksYr b¤ eFVkI arbBa¢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 ;. eyIgnig w eRbI 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;nvU cMMnYntYGkSrEdlRtUvrkSaTukenAkñúg table ehIy fieldnimYy²én table
suTE§ tTamTareGaymannUvtMélCanic© . cMENkÉ id attribute tMélrbs;vaniwgRtUvekIneLIgedaysVy½ Rbvtþ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 ;>

By PREAP SAN PHP & MYSQL Page.. 59


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

+----------+-------------+------+-----+---------+--------------+ >
| 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', ' muth_monen@hotmial.com ');
mysql>insert into tblpeople values(null, 'lou', ' army ', ' lou cy ', ' lou_cy@gmail.com '); >
enAeBlEdl id attribute Ca auto_increment eyIgeRbI null sMrab;Ca data entry Edl null Value
minmanlkçN³dUcnwg blank (" ") enaHeT . id attribute cab;epþmI edaytMélCa integer 1 ehIyvanwgeFVIkarbegáIntMél 1
énenAeBlEdlmankarbBa¢lÚ Tinñny½ eTAkan; row fµmI þ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 |muth_monen@hotmail.com |
| 2 | lou | army | lou cy |lou_cy@gmail.com |
+----+----------+----------+------------+---------------------+
2 rows in set (0.00 sec)

edIm,Ilb;nvU table NamYyecjBI database GñkGaceRbI command :mysql> drop table tableNamesMrab; command
EdleRbIedIm,Ilb; row BI table TamTareGayGñkpþln; vU eQµ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ñgú table
nwgRtUvlb;ecalTaMgGs;. enAkñgú ]TahrN_xageRkameyIgnwgeRbItéM 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;nvU 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’ ;

By PREAP SAN PHP & MYSQL Page.. 60


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

3. PHP/MySQL Functions >


3.1 Connecting to MySQL >
muneBlEdlcab;epþmI eFVIkarCamYynwg 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,IPa¢ b;eTAkan; MySQL rYcral;ehIy GñkRtUvEteRCIerIsDatabase
NamYyedIm,IeFVkI arCamYyva 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át I enAkñ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 );

By PREAP SAN PHP & MYSQL Page.. 61


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

12: if ( ! $link )
13: {
14: die( "Couldn't connect to MySQL: ".mysql_error() );
15: }
16: print "<h2>Successfully connected to server</h2>\n\n";
17: @mysql_select_db( $db )
18: or die ( "Couldn't open $db: ".mysql_error() );
19: print "Successfully selected database \"$db\"<br />\n";
20:
21: $query = "insert into tblpeople(username , password , name , email )
22: values( ' ratana07 ', ' 1234 ', ' som ratana ', ' ratana@example.com ' )";
23: mysql_query( $query, $link )
24: or die ( "INSERT error: ".mysql_error() );
25:
26: mysql_close( $link );
27: ?>
28: </div>
29: </body>
30: </html>
sMrab;]TahrN_enHeyIgmin)anbBa©ÚltMéleTAeGay id column enaHeT eRBaH field enHCaRbePT
auto_increments . vaCakarBit ral;eBlEdleyIg reload script én]TahrN_xagelITn
i ñny½ dEdlnwgRtUvbBa©ÚleTAkan;
row fµm
I YyeToté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>

By PREAP SAN PHP & MYSQL Page.. 62


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

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

By PREAP SAN PHP & MYSQL Page.. 63


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

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

By PREAP SAN PHP & MYSQL Page.. 64


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

eyIg)an loop nUv row array EdlpÞkú kñgú $a_row enAbnÞat;TI 25 ehIyeFVkI arbec©jnUvlT§plBIFatunmi Yy²
bBa¢lÚ eTAkñgú table cell rYcRtUv)anbgðajeday web browser . Gñkk¾Gac accessFields
edayeRbIR)as;eQµaHrbs;vaeTAtamviFsI aRsþBrI ya: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() CMnsY vij .
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 BICYrNamYymkeFVCI a 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() TaMgBIrenHsuTE§ t


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

By PREAP SAN PHP & MYSQL Page.. 65


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន



By PREAP SAN PHP & MYSQL Page.. 66


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

ច្េច្ ៀនទ្យី ៩ Saving State with Cookies and Session >


1. Cookie >
cookie KWCaTinñn½yEdlrkSaTukeday user‟s browserEdlRbRBwteþ TA)anedaykar requestBI server b¤ script .
vaGacrkSaTuk)anRtwmEt 20 cookies nig TMhMpkÞú Tinñny½ )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:snIu kMBüÚTr½ Edl set nUv cookie enaHb:eu NÑ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
GacCaviFsI aRsþd¾RbesIrsMrab;rkSarTuknUvBt’manxøBI IGñkeRbIR)as; BI page mYyeTA page mYyeTot . .
Cookies rbs; PHP bBa¢n Ú eTAkan; web server edayeRbIR)as; setcookie() function .RbsinebI cookie )an set
nUv time-out browser nwgeFVIkarcgcaMnvU cookie eTaHbICaGñk restartma:snIu k¾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();

By PREAP SAN PHP & MYSQL Page.. 67


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

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');
}
?>

By PREAP SAN PHP & MYSQL Page.. 68


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

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


¬dUcEdleyIg)anGnuvtþn_enAkñúg script rbs;eyIg ) .b:Eu nþvaminTan;CaKMnti EdlRtwmRtUvenaHeT BIeRBaH
GñkeRbIR)as;GacEkERb cookies TaMgenaH b¤ install tMélepSg²)aneTAtamGMeBIcitþ .
mantMeNaHya:gRbesIrmYysMrab;bBaðaenHKWkareRbIR)as; PHP Sessions EdleyIgI nwgGnuvtþ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átI 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
mkCMnsY edaykareRbIR)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 */

By PREAP SAN PHP & MYSQL Page.. 69


សាលាបច្ចេកច្េស ដុន បូសកូ ច្េត្តព្រះសីហនុ ផ្នែកទំនាក់ទំនងសងគម និង សារព័ត៌មាន

<?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;mkeyIgeFVk I arDestroy 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

By PREAP SAN PHP & MYSQL Page.. 70

You might also like