Ads 468x60px

Php-ийн үндэс


Numbers бол тоон мэдээлэл бєгєєд дотроо integer ( бvхэл ) ба floating point ( бутархай ) гэж 2 хуваагдана.

Integer -- Бvхэл тоо
Floating Point -- Бутархай.

Бvхэл тоо нь нэмэх ба хасах тоо байж болно гэхдээ энгийн ба аравтын бутархай байж болохгvй.

23.5 мэтийн аравтын бутархай тоо нь
floating point тєрєлд орно. Бас нэг      анхаарах юм бол энгийн бутархай тоог аравтын бутархайд шилжvvлж            floating point болгох ёстой. Жишээ нь: 1/2 гэснийг 0.5 болгох хэрэгтэй. 40 1/5 = 40.2 гэх мэт.


2 ( зєв
Integer )
45 ( зєв
Integer )
-78 ( зєв
Integer )

4.5 ( зєв
floating point )
-45.87 ( зєв
floating point )
2.005 ( зєв
floating point )

23 5/8 ( буруу, энгийн бутархайг аравтынх болгоогvй)
345d ( буруу, vсэг орсон)
35.56.7 ( буруу, 2 цэг орсон)

Тэгэхээр тоог хэрхэн variable-д хэрэглэх гэхээр variable-ын нэрийн араас тэнцvvгийн тэмдгээр ( = ) холбоно.

$Year = 2001
$Cost = 4000

Анхаарах юм бол тэнцvvгийн тэмдгээр ( = ) variable-г утгатай харгалзуулж байгаагаас ТЭНЦYY гэж заагаагvй юм. Дээрх жишээнээс харахад Year гэдэг нэртэй variable-г 2001 гэсэн утганд харгалзуулсан болохоос Year гэдэг variable нь 2001 гэсэн тоо биш юм. Харгалзуулах, тэнцvvлэх 2 тєстэй гэхдээ адил биш
String бол тоо ба vсгийн холимогоос ( тоо, vсэг, тусгай тэмдэгт, зай )       бvтсэн variable юм. String variable-ын утга нь нэг ( ' ) юмуу хоёр ( " )      хашилтын тэмдгийн хооронд байдгаараа тоон variable-аас ялгарна.             Хашилтын тэмдэгийн хооронд л байгаа бvх утга string болж хувирдаг. Тоо ч гэсэн, бvгд.

"Hello, World!"
"23 6/9"
"34.78.92"
"342"
"What's up"
"Cost"

"How is it going? ( буруу, хашилтын тэмдгийн сvvлийх нь байхгvй )
' Who is this ( буруу, хашилтын тэмдгийн сvvлийх нь байхгvй )

        String variable-г vг, єгvvлбэр ба тоо агуулсан vг зэрэг утганд харгалзуулахад илvv тохиромжтой байдаг.
Arrays бол олон утгыг ( value ) нэг хувьсагчид ( variable ) харгалзуулсан євєрмєц variable юм. Arrays нь Strings ба Numbers 2-г хоёуланг нь агуулж болдог. Тvvгээр ч барахгvй Arrays нь ондоо Arrays-г утга болгож чадна. Тийм учраас Arrays-д асар их хэмжээний мэдээлэл ( утга ) багтааж болдгоороо, String ба Numbers variable-аас ялгарна.

Arrays-н хамгийн гол ашиг нь хоорондоо тєстэй хувьсагчуудын утгыг ганцхан хувьсагчид харгалзуулснаар цаг, зай хэмнэхээс гадна кодын алдаа гарах нь багасна.

Жишээ нь та єєрийн СД-нvvдээ РНР хуудаст хийхээр шийдлээ гэж бодьё. Жирийн HTML дээр яахав та ингэх байх.

.... <OL>
<LI>CD1
<LI>CD2
<LI>CD3
....
<LI>CD?
</OL>

Ингээд хийчэх амархан. Гэтэл энэ урт жагсаалтад байгаа СДнvvдийг хэрхэн А-аас Я хvртэл байрлуулах вэ. Бас л нэг тусдаа HTML хуудас бvтээх шаардлага гарах биз. Бvvр хамтлагын нэрээр нь, хугацаагаар нь, зарагдсан тоогоор нь, уран бvтээлчдийх нь нэрээр нь, СД-ны нэрээр нь, дууны тєрлєєр нь, улсых нь нэрээр гэх мэтээр олон тєрлийн аргаар жагсаах бол тус бvрд нь HTML хуудас бvтээх шаардлага гарах байсан хэрвээ РНР мэтийн вэб хэлvvд байгаагvйсэн бол.

Гэхдээ ямар нэг урт жагсаалт бvхий variable хийхдээ нєгєє муу String Numbers 2-oo бас л ашиглах нь тийм ч сайн арга биш. Энэ нь СД бvрд нэг variable vvсгэх шаардлагатай гэсэн vг.

$CD1 = "CD1";
$CD2 = "CD2";
$CD3 = "CD3";
$CD4 = "CD4";
....
$CD? = "CD?";

гэх мэтээр. Энэ нь маш их цаг, хvч хєдєлмєр гарздана.

Тэгвэл эдгээрийн тєстэй тал болох variable нэрийг нь ашиглаад нэг Array болгочоод $My_CDs гэсэн ойлгомжтой нэрээр нэрлэвэл байдал эрс хєнгєрнє.

$My_CDs = array(
"CD1" => "CD1", "CD2" => "CD2", "CD3" => "CD4", ..... "CD?" => "CD?",
);

Yр дvнд нь бvх СД гээ ганцхан хувьсагчид оруулчихаж болно. Дотор нь хайж, хvссэнээрээ жагсаах боломжтой болно. Маш хэрэгтэй хэрвээ их хэмжээний мэдээлэл агуулсан хувьсагч бvтээж байгаа нєхцєлд.

Тэгэхээр Array гэдгийг тодорхой авж vзье.
Array нь бусад хувьсагчийн адил нэртэй байна. Гэхдээ онцлог нь олон утга авдаг тул утга бvрийг ялгах vvднээс утга бvрд тvлхvvр vг эсвэл дугаар єгч хийдэг. Энэ дугаар эсвэл тvлхvvр vгээр нь утгыг дуудаж идэвхжvvлнэ ( ажиллуулна ). Тvлхvvр vг буюу дугаар нь тоо эсвэл vг, vг тооны холимог ч байсан болно. Хамгийн гол нь ойлгоход дєхємтэй, богинохон байвал дээр. Энэ тvлхvvр vг буюу дугаар тоо нь [ ба ] ( square brackets ) тэмдгийн хооронд байрладаг.

           Ондоо нэг Array vvсгэх арга бол ижил хувьсагчийн нэр ба тvлхvvр vг хэрэглэх юм.

$List[CD] = "CD1"
$List[CD2] = "CD2"
$List[CD3] = "CD3"
$List[CD4] = "CD4"
......
$List[CD?] = "CD?"

гэх мэтээр. Гэхдээ ингэж хийхэд тоогоор дугаарладаг тул цаг vрж болно. Эсвэл бvvр ингэсэн ч болно.

$List[ ] = "CD1"
$List[ ] = "CD2"
$List[ ] = "CD3"
$List[ ] = "CD4"
..........
$List[ ] = "CD?"

( [ ) ба ( ] ) тэмдгийн хооронд юу ч битгий бич. Yр дvн нь яг адилхан. Хэрвээ жагсаах хэрэгтэй бол яг дээрээсээ эхлэдэг. Нэг анхаарах юм бол РНР-д       жагсаалт гаргахдаа 0-ээс эхэлж тоолдог. 0, 1, 2, 3 4 гэх мэтээр. Тэгэхээр       $List[ ] = "CD1" ба $List[0] = "CD1" хоёр угтаа адил. $List[5] = "CD5" гэвэл     $List[ ] = "CD5" гэсэн утгыг дарж бичдэг. Яг тvлхvvр vгийг нь зааж єгвєл байгаа мэдээллийг нь хvчээр дарж бичдэг гэсэн санаа юм.

РНР4 дээр шинээр орж ирсэн MERGE function-р 2 Arrays-г нийлvvлж болно.

Эхлээд танд $My_CDs ба $My_CDs2 гэсэн 2 ондоо тєрлийн arrays хувьсагч байлаа гэж бодъё. Гэтэл эдгээрийг "Миний бvх СД" гэсэн ганцхан хувьсагчид оруулмаар байвал бvхнийг шинээр эхлэх хэрэггvй, байгаа хувьсагчаа нийлvvлэхэд л болоо.
Код нь:
$Variable_name = array_merge( $Variable_name1, $Variable_name2, $Variable_name3 ..... $Variable_name?);

$My_all_CDs = array_merge ( $My_CDs, $My_CDs2);

Arrays бол маш єргєн хэрэглэгдэх тєрєл бєгєєд String Numbers хоёроос илvv мэдээлэлтэй харьцаж чадна.
Concatenation бол 2 String-г хооронд нь холбоход хэрэглэдэг команд. Хэрэглэхдээ

$NewString = $A_String . $B_String гэх мэтээр.

Жишээн дээр авж vзье.


Top of Form
Bottom of Form
Энэ хэрхэн ажиллав гэхээр $Ner хувьсагчид оруулсан мэдээлэл ба $Ovog хувьсагчид оруулсан мэдээллvvдийг $Full_Name гэсэн ганц хувьсагч болгоод print командаар дэлгэцэнд гаргасан.

<?php
$Full_name = $Ner . " " . $Ovog;
print "Taны нэр: $Full_name<br\n>";
?>

    гээд л болоо. Зарим хvн тэр . " " . хаанаас гараад ирэв гэж бодож байгаа бол 2 vгнийхээ дунд зай авахын тулд хоосон зай оруулснаас юм. Єєрєєр хэлбэл дээрх кодон дээр 3 юмыг холбосон байна ( Нэр, зай, Овог).
Жишээн дээр авж vзье. Доорх 2 цонхонд дурын тоог оруулаад тэнцvvгийн тэмдгийг дар.


Top of Form
Bottom of Form
Дээрх жишээг хийсэн сорс код нь дараах байдалтай байна.

...... ACTION="2.php"><INPUT TYPE="text" NAME="ehnii" SIZE="1" MAXLENGTH="2">&nbsp;&nbsp;+&nbsp;&nbsp;<INPUT TYPE="text" NAME="daraa" SIZE="1" MAXLENGTH="2"> ......

гэж HTML хуудсаа хийчээд

<?
$Result = $ehnii + $daraa;
print "Хариу: $Result<br\n>";
?>


гэж хариугаа РНР хуудсаар гаргаж авна.

2 vйлдэл хийгдсэн. Эхнийх нь 2 тоог нэмэх
$Result = $ehnii + $daraa; сvvлчийх нь дэлгэцэн дээр гаргах print "Хариу: $Result<br\n>";
Variable -- Хувьсагч
Integer -- Бvхэл тоо
Floating Point -- Бутархай тоо
Value -- Утга
Strings -- Тоо, vсэг, зай ба тусгай тэмдэгтvvдээс бvтсэн утга
Numbers -- Тоон утга
Input -- Єгєгдєл, хэрэглэгч ( вэбмастер ) оруулсан дата
Arrays -- Бvлэг хувьсагчид
Objects -- Оршин буй бодит эд юм
Declare variable type -- Хувьсагчийн тєрлийг заах
= -- Харгалзуулах тэмдэг, тэнцvvлэх биш!
" -- Strings variable-н 2 талд байрлах хашилтын тэмдэг
' -- Strings variable -н 2 талд байрлах хашилтын тэмдэг
<FORM> таг вэб хэлд орж ирснээр вэбэд хувьсгал гарсан гэхэд хилсдэхгvй. <FORM> тагийн хvчээр вэб хуудас хэрэглэгчээс мэдээлэл хvлээн авж боловсруулдаг болсон юм. Харамсалтай нь HTML хэл єєрєє нэгэнт ороод ирсэн мэдээллийг боловсруулж чадахгvй. Тиймээс вэбмастерууд олон жил CGI-г ( эсвэл тєстэй ) хэрэглэсээр ирсэн. Гэтэл бидний РНР, CGI-аас дутахгvй      эдгээр бvх vйлдлийг гvйцэтгэдэг. РНР, <FORM> таг хоёр хамтарсан нєхцєлд вэб хуудас нь:
·         дата хvлээн авж датабэйсд хадгалах
·         датаг датабэйсээс татаж vзvvлэх
·         датаг єєрчлєх
гэх мэт олон зvйл чадна. Зочдын дэвтэр, Форум, И-мэйл, Асуулт форм, элдэв    дайнамик санал асуулгын пол зэрэг нь <FORM> ашигладаг. Єєрєєр хэлбэл вэб хэрэглэгчээс дата хvлээн авах бvх ажиллагаанд <FORM> оролцдог.

Энд <FORM> хэрхэн бvтээх талаар оруулах нь зохимжгvй ( мэдээжийн юм нуршиж байгаад зарим РНР кодчид уучил ) ч гэсэн товчхон харъя.
Нэр
Тайлбар
Жишээ
<FORM>
Форм эхлэл

ACTION
Формд оруулсан датаг боловсруулах кодын байршил, хаяг

TEXT AREA
Олон мєр бvхий тэкст дата цонх
TEXT
Нэг мєр бvхий дата цонх
CHECK BOX
Тийм эсвэл vгvй гэсэн хариулт авах
Do you know HTML?
RADIO
Олон сонголтоос нэгийг сонгох
PHP CGI
SELECT
Мэню хэлбэртэй жагсаалтаас сонгох
HIDDEN
Нууцлагдсан дата

PASSWORD
Нууц vг оруулах цонх
Enter your Password!
SUBMIT
Формд оруулсан датаг боловсруулах код руу шилжvvлэгч
RESET
Бvх формын хариултыг цуцлах

<INPUT TYPE= гээд л дээрх форм тєрлvvдийн нэгийг нь оруулдаг. Жишээ нь: <INPUT TYPE=TEXT NAME=нэр VALUE=утга>

Харин хамгийн гол анхаарах юм бол АCTION= гээд ямар нэг РНР хуудас руу зааж єгєх. Ингэснээр HTML хуудаст хэрэглэгчийн оруулсан мэдээлэл нь РНР хуудас руу очиж цаашдын vйлдэл нь гvйцэтгэгдэнэ. Жишээ нь:


<FORM ACTION="form.php" METHOD=post>
Нэр: <INPUT TYPE=TEXT NAME=name ><BR>
И-мэйл: <INPUT TYPE=TEXT NAME=email><BR>
<INPUT TYPE=SUBMIT NAME=SUBMIT>
</FORM>

гэсэн код нь дараах байдалтай харагдана.

Bottom of Form

Дээрх жишээн дээрээс харахад датаг шууд дэлгэц рvv гаргаж байна.
Хамгийн гол зорилго нь РНР хуудас руу хамаг мэдээллийг шилжvvлдэг гэдгийг л vзvvлэхэд юм.
Бидэнд FORM-той зууралдах хэрэг огт байхгvй, хамгийн чухал юм бол РНР ажиллагаандаа анхаарах.

HTML мэдэхгvй бол иймэрхvv энгийн юман дээр ( форм яаж хийх ) л сууна, тиймээс HTML мэдлэгээ нэмэгдvvлэх хэрэгтэй.
Method -ын араас Get ба Post гэсэн 2 сонголтыг ихэвчлэн хэрэглэдэг. Бусдыг нь дурдвал head, put, link, unlink, options, delete, trace ба connect гэхдээ эдгээрийг єргєн хэрэглэдэггvй бєгєєд энд хэлэлцэхгvй.

GET -- Браузэрт хувьсагчийн нэр ба утгыг оруулаад URL-н араас бичээд явуулдаг. Жишээ нь:

<FORM ACTION=form.php METHOD=get>

гэсэн нєхцєлд .....form.php?name=test&email=test@test.com гэх мэтээр. Ийм учраас ихэнх хvмvvс GET биш POST хэрэглэдэг. POST хэрэглэхэд оруулсан мэдээлэл URL-н араас бичигддэггvй, иймээс хєндлєнгийн хvн ямар мэдээлэл браузэрээр дамжиж байгааг харж чадахгvй. Тvvнээс биш vр дvнд нь єєр ялгаа GET, POST хоёрт байхгvй. Гэхдээ GET хэрэглэсэн хуудсуудыг Bookmark хийхэд зvгээр байхад POST хэрэглэсэн хуудас болохгvй байж болно. Иймээс ихэнх SEARCH ENGINE-тэй хуудсууд GET хэрэглэдэг.

Гэхдээ POST хэрэглэснээр бvрэн хамгаалалттай боллоо гэсэн vг биш юм. Энэ     нь зєвхєн илгээсэн мэдээлэл браузэрийн URL дээр л харагдахгvй болохоос биш замаас нь хакерууд хулгайлахад саад болж чадахгvйг санах хэрэгтэй.

POST ба GET хоёрын хооронд дээрхээс ондоо ялгаа vгvй.
Формоос орж ирсэн мэдээлэл РНР хуудаст ирэхэд РНР хэрхэн програмчлагдсанаас шалтгаалж ондоо vйлдлvvд хийгдэнэ. Дурдвал:

Дэлгэц рvv гаргах
Датабэйсд хадгалах
Жижиг тэкст файльд хадгалах (датабэйс хэрэглэхгvй)
Хадгалсныхаа дараа дэлгэц рvv гаргах
И-мэйл явуулах
И-Худалдаа хийх
Захиалга єгєх
Файль хуулах
Бvртгvvлэх
Файльд засвар хийх
Шинээр файль vvсгэх
Файль устгах
Зураг зурах
Датабэйсээс мэдээлэл татах мэтийн 700 vйлдэл РНР чадна. Эдгээрээс вэбмастерууд хэдхэнийг л хэрэглэдэг.

Хэрвээ энэ талаар нарийн мэдмээр байвал РНР MANUAL уншаарай.
METHOD -- Формтой хуудаснаас мэдээлэл дамжих арга
GET -- Мэдээллийг URL -н араас бичээд шилжvvлдэг
POST -- Мэдээллийг монитор дээр харагдуулахгvйгээр шилжvvлдэг
ACTION -- Ямар хуудас мэдээллийг хvлээн авж боловсруулах хаяг
SEARCH ENGINE -- Хайлт хийдэг вэб хуудсууд
URL -- Вэб хуудасны хаяг
FORM -- Форм эхлvvлэх HTML таг нэр.



Variable ба бусад РНР-н vндсэн мэдлэгтэй танилцсаны дараа жинхэнэ програмын vндсэн мэдлэгvvдийн нэг болох Conditional Structures-н тухай танилцья. Conditional Structures-ын тусламжтайгаар програмчин хэсэг бvлэг кодыг нєхцєл байдлаас хамаарч ажиллах, эсвэл ажиллахгvй байх тийм код бичиж болно. Ондоо vгээр хэлбэл хэрвээ ямар нэг нєхцєл бvрдвэл ямар нэг vйлдэл хийгдэнэ, хэрвээ бvрдэхгvй бол огт єєр vйлдэл хийгдэнэ эсвэл юу ч болохгvй гэсэн энгийн логик бvтэцтэй. Conditional Structures бол ямар ч    програмын хэлийн vндсэн ойлголт гэж дээр хэлсэн, тиймээс РНР-ээс бусад хэл vзэж байсан хvмvvс аль хэзээний мэдэж байгаа гэж найдаж байна.

Бас нэг жижигхэн юм гэвэл TRUE, FALSE хоёр. TRUE нь vнэн эсвэл нєхцєл биелэгдсэн, FALSE нь худлаа буюу нєхцєл биелэгдээгvй гэсэн утгатай.

Бvvр жижигхэн юм гэвэл 1, 0 хоёр. 1 нь vнэн эсвэл нєхцєл биелэгдсэн, 0 нь       худлаа буюу нєхцєл биелэгдээгvй гэсэн утгуудтай. Компьютерын хэл нь 0 ба 1 гэсэн хоёрхон тэмдэгтээс бvтдэгийг бvгд мэднэ.

Conditional Structures-г хэрэглэх хамгийн наад захын жишээ гэвэл хэрэглэгч форм дах асуултыг бєглєсєн, эсвэл буруу хариулт оруулсан зэргийг шалгах мэтийн жирийн vйлдлvvд байж болно.
if (condition) {statement;}

Энэ юу гэсэн код вэ гэхээр хэрвээ
condition vнэн ( TRUE ) бол statement биелэгдэнэ  буюу гvйцэтгэгдэнэ. Хэрвээ condition худлаа ( FALSE ) бол statement биелэгдэхгvй, РНР шууд дараачийн код руу шилжэнэ.

condition нь ( ба ) тэмдгийн ( хаалт ) хооронд байрлах ба statement нь { ба } тэмдгийн ( нум шиг хаалт ) хооронд бичигдэнэ.

Statement-н ард цэгтэй таслалаа (
; ) мартаж болохгvй!

Нэг жишээ бодьё. Танд 20 ногоон байлаа гэе. Дэлгvvрт 25 ногооны хоол байсан нєхцєлд та хоол авж чадахгvй. Yvнийг Conditional Structures-р бичвэл:

$food = buuz;
if ($Money >= 25) {
$Мoney = $Money - 25;
sell $food;
print "Худалдаа хийсэнд баярлалаа!";
}
......


Эхлээд бид нар хоолны нэрийг бууз гэлээ. Дараа нь таны мєнгийг хэд гэдгийг шалгана. Хэрвээ 25-тай тэнцvv эсвэл их
нєхцєлд таны данснаас 25 ногоон суутгаад, бууз єгєєд "Худалдаа хийсэнд баярлалаа!" гэсэн мєр дэлгэцэнд гарна. Хэрвээ таны мєнгє 24.99 эсвэл тvvнээс доош байсан нєхцєлд та хоолгvй!

Маш энгийн бєгєєд жинхэнэ амьдрал дээрээс єчнєєн жишээ гарган бодож болно.

Condition -- нєхцєл, хэрвээ ийм ( тийм ) бол,
Statement -- vйлдэл, гvйцэтгэл.
ELSE бол control structure-д бага зэргийн нэмэгдэл боломж олгоно.         Урьд нь ямар нэг нєхцєл биелэгдэхгvй бол РНР дараачийн код руу              шилждэг байсан бол ELSE байхад єєр нэг vйлдэл гvйцэтгэдэх боломжтой, гэхдээ эхнийх биш.

Condition -- нєхцєл
Statement -- vйлдэл
ELSE -- ондоо vйлдэл рvv шилжvvлэгч

if (condition) {statement(1);}
else {statement(2);}


Энэ юу гэсэн код вэ гэхээр хэрвээ condition vнэн бол statement(1) биелэгдэнэ  буюу гvйцэтгэгдэнэ. Хэрвээ condition худлаа бол statement(1) биелэгдэхгvй, харин statement(2) биелэгдэнэ.

Энэ тєрлийн control structure нь маш тvгээмэл бєгєєд энгийн. Тvрvvчийн хоолний жишээгээ дахин vзье.

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>{ Худалдаа РНР хуудас }</title>
<link rel="stylesheet" href="../../dw/dw.css" type="text/css">
</head>
<body>
<?
$food = buuz;
if ($money >= 25) {
$money = $money - 25;
print "Худалдаа хийсэнд баярлалаа!";
print "<p>";
print "Yлдэгдэл:";
print $money;
} else {
print "Уучлаарай, таны хvсэлтийг биелvvлэх боломжгvй!";
}
?>
</body>
</html>


тvрvvчийн кодноос юугаараа давуу гэхээр хэрвээ худалдан авагчийн мєнгє 25 ногоон хvрэхгvй нєхцєлд
"Уучлаарай, таны хvсэлтийг биелvvлэх боломжгvй!" гэсэн бичлэг дэлгэцэнд гарна. Yvнээс ондоо vйлдлvvд гvйцэтгэж мэдээж болно. Доорх цонхонд 25-аас их эсвэл бага тоо оруулж дээрх кодын ажиллагааг шалгана уу.


Top of Form
Bottom of Form
Дээрх жишээн дээрээс бvх юм маш энгийн гэдэг нь ойлгомжтой байна. Ёрдєє эхлээд нєхцєл тулгана, хэрвээ шаардлагатай зvйлс байвал vйлдэл хийгдэнэ, хэрвээ байхгvй бол ондоо vйлдэл хийгдэнэ. Ингээд л болоо.
if ба else хоёрын дараагийн control structure ойлголт бол else if буюу elseif юм.

if (condition(1)) {statement(1);}
elseif (condition(2)) {statement(2);}
else { statement(3);}


Энэ юу гэсэн код вэ гэхээр хэрвээ condition 1 vнэн бол statement 1          биелэгдэнэ  буюу гvйцэтгэгдэнэ. Хэрвээ condition 1 худлаа бол     statement 1 биелэгдэхгvй гэхдээ statement 2 биелэгдэхээс ємнє condition 2-г бас шалгана. Хэрвээ condition 2 vнэн бол Statement 2 биелэгдэнэ. Хэрвээ condition 2 худлаа бол statement 3 шууд биелэгдэнэ.

                statement гэдэг маань хэдэн ч statement агуулж болно гэдгийг бvv мартаарай.


Top of Form
Bottom of Form
            Дээрх жишээ болгосон цонхон дотор эхний удаа 25-аас дээш тоо,               хоёрдох удаад 25-аас доош тоо, гуравдах удаад нь ямар ч тоо оруулахгvй шалгаж vзнэ vv.

     
Elseif -г хэрэглэснээр else -ээс илvv vйлдэл гvйцэтгэх боломжтой болдог. Учир нь 2 нєхцєл 3 бvлэг vйлдэл агуулдаг.

Бид нар урьдын хоолны жишээн дээрээ юм нэмж дахин сайжруулж vзэж байгаа нь нэгэнт ойлгосон зvйл дээр тулгуурлаж цаашаа ахихын тулд юм.

         Та магадгvй анзаарсан биз. Хэрвээ та дээрх цонхонд ямар ч тоо       оруулаагvй нєхцєлд "
Please enter a number!" гэсэн анхааруулга гарж     ирнэ. Тvрvvчийх дээр нь энэ байгаагvй учир нь бидэнд ганцхан нєхцєл       хоёрхон vйлдэл байсан. elseif -г хэрэглэснээр бид хэрэглэгчийн vйлдэлд илvv бодитой хяналт тавих боломжтой болж байгаа юм.
Else ба elseif зэргийг ойлгосны дараа control structure-н бас нэг     хувилбар Switch-н тухай vзье. Яг vнэндээ бол хэрвээ та HTML формын INPUT, VALUE зэргийг мэддэг бол switch бол яг адилхан ( маш тєстэй ) байдаг. Гэхдээ else, elseif-тэй тєстэй талууд ч байна. Би яагаад INPUT, VALUE-тэй адил гэсэн гэхээр Conditional Structures-н condition нь HTML формын NAME=??? гэсэн утгыг авах ба VALUE=??? нь цорын ганц statement буюу vйлдэл гvйцэтгэнэ. Value бvрд цорын ганц statement        гvйцэтгэгдэнэ, энэ нь ганцхан value оршино гэсэн vг биш юм. Хэрвээ           нєхцєлд байхгvй value орж ирвэл заавал гvйцэтгэх default statement      гэж байдаг. Энэ нь else -н дараа байх statement-ээс ялгаагvй. Яагаад else ба elseif-тэй тєстэй гэхээр адил бvтэцтэй байх ба бас condition, statement зэргийг агуулдаг.

switch ($variable) {
case "value1":
statement(1);
break;
case "value2":
statement(2);
break;
default:
statement(3);
break;
}


Энэ юу вэ гэхээр хэрвээ
value 1 vнэн бол statement 1 биелэгдэнэ  буюу          гvйцэтгэгдэнэ. Хэрвээ value 1 худлаа бол statement 1 биелэгдэхгvй, харин value 2-г шалгана. Хэрвээ value 2 vнэн байвал statement 2    биелэгдэнэ, хэрвээ худлаа бол шууд дараачийн нєхцєл болох default vнэн гэсэн vг. Энэ нєхцєлд statement 3 заавал биелэгдэнэ. else ба elseif -ээс ялгарах юм нь value-г шууд condition шиг байдлаар авж vзнэ. Харин     condition -г єєрийг нь ёрєнхий condition мэтээр авж vздэг. Condition дотор олон жижигхэн condition оруулсан гэж ойлгож болно.

$Variable хаанаас гараад ирэв гэхээр энэ чин ёрєнхий condition.

Дээрх switch condition-г elseif structures-ээр бичвэл

if ($variable == "value1") {
statement(1);
} elseif ($variable == "value2") {
statement(2);
} else {
statement(3);
 }


Энд бас нэг жижигхэн юм тайлбарлья.

      = ( ганц тэнцvvгийн тэмдэг ) нь == ( хоёр тэнцvvгийн тэмдэг) -ээс жижиг ялгаатай. Дээр би цухуйлгаад хаясан одоо яг нарийн тайлбарлахад тохиромжтой vе нь.

= -- Харгалзуулах
== -- Жинхэнэ тэнцvvлэх

гэсэн утгатай.

    Харгалзуулах гэдэг маань тухайн хувьсагчийн утгийг зааж байгаа, тvр      хугацаанд. Харин тэнцvvлэх гэдэг нь тухайн хувьсагчийн утга бол яг жинхнээсээ тэнцvv гэсэн vг.

Бас нэг юм бол
break; vйлдлийн дараа switch condition дуусдаг.Top of Form
Bottom of Form


Дээрх код хэрхэн ажиллаж байгааг сорс кодоос нь харъя.

<?
switch ($urvagch) {
case "Zanabazar":
print "<center>Зєв!</center>";
break;
case "Kublai":
print "<center>Буруу!</center>";
break;
default:
print "<center>Тvрvvчийн хуудаснаас ямар нэг хариу сонгоно уу!</center>";
break;
}
?>

      Зарим хvмvvс
switch нь else ба elseif-тэй тєстэй тул бараг адилхан гэж ташаа дvгнэж байж болох юм. Тэгвэл тийм биш. Switch дээр олон value урьдчилж єгчихєєд дараа нь шалгаад явчихдаг бол else ба elseif дээр бол хоёроос дээш value-г шалгадаг код бичихэд тєвєгтэй ба тэгж заваарах    шаардлагагvй юм. Switch нь их хэмжээний нєхцєлтэй асуудал шийдвэрлэхэд тохиромжтой байхад else, elseif нь нэг эсвэл хоёрхон бололцоотой нєхцєл бvхий програмд илvv тохиромжтой байдаг гэхvv дээ.

Бас нэг мэдэхэд илvvдэхгvй юм бол
elseif ба else if хоёрт ялгаа байдаггvй.
Логиктой, гарцаагvй эсвэл бараг л vнэн байх тийм хариу гаргахад AND ба OR гэсэн нэмэгдэл тэмдэгvvд хэрэглэдэг.

AND -- хоёр нєхцєл хоёулаа vнэн байхыг шаарддаг.
OR -- хоёр нєхцлийн ядаж нэг нь vнэн байхыг шаарддаг.

if ($Number1 < 50 AND $Number2 < 50) {
$Result = $Number1 + $Number2;
print $Result;
} else {
Print "50-с доош хоёр тоог оруул!";
}


if ($Number1 < 50 OR $Number2 < 50) {
$Result = $Number1 + $Number2;
print $Result;
} else {
Print "50-с доош нэг тоог оруул!";
}


Дээрх кодны ажиллагааг доорх хоёр дэлгэцэнд 50-иас доош тоо оруулж шалгана уу.

Top of Form
AND -->     +     
Bottom of Form

AND хэрэглэсэн vед хоёр дэлгэцэнд оруулсан бvх ( 2 ) утгууд тулгасан нєхцєлтэй таарах ёстой!

Top of Form
OR -->     +     
Bottom of Form

OR хэрэглэсэн vед хоёр дэлгэцэнд оруулсан утгуудын ядаж нэг нь тулгасан нєхцєлтэй таарах ёстой!

ОR -г || гэж тэмдэглэж болно. AND - г && гэж тэмдэглэж болно.

OR = ||
AND = &&


Тэгэхээр
$Number1 > $Number2 AND $Number3 < $Number4 бол
    $Number1 > $Number2 && $Number3 < $Number4 гэсэнтэй яг адилхан юм.
Loops-ээр олон давтагдсан vйлдлийг гvйцэтгэхэд хэрэглэнэ. Одоогоор РНР-д While ба For гэсэн хоёр янзын Loops байдаг. Loops хэрэглэхийн эцсийн зорилго нь цаг, зай хэмнэх асуудал юм. Эхлээд While Loops-н талаар vзье.

while (condition) {
statement;
}


     Энэ юу гэсэн код вэ гэхээр хэрвээ
condition vнэн бол statement     биелэгдэнэ  буюу гvйцэтгэгдэнэ. Дараа нь эргээд vйлдлvvдээ давтаад байна.     Давтаад байна гэдэг маань condition-г шалгаад л vнэн бол давтагдаад          байна гэсэн vг. Хэрвээ condition худлаа бол statement биелэгдэхгvй, зогсоод РНР шууд дараачийн код руу шилжэнэ.

Тэгэхээр жишээ болгоод 1-ээс 20 хvртэлх тоог мэню дотор гаргая.

print "<select name=number><option>Click</option>\n";
$Number = 1;
while ($Number <
21) {
print "<center><option>$Number</option>\n";
$Number++;
}
print "</select></center>";

Жишээ

     ++ бол нэгээр нэмэгдэхийг заадаг тэмдэгт. Тэгэхээр $Number++ гэдэг нь             РНР код энэ мєрєєр унших тоолонд $Numbers хувьсагч нэгээр нэмэгдэнэ гэсэн vг.

Дээрх жишээний HTML сорс код нь ингэж харагдах байх ...

<center><select name=number><option>Click</option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
<option>10</option>
<option>11</option>
<option>12</option>
<option>13</option>
<option>14</option>
<option>15</option>
<option>16</option>
<option>17</option>
<option>18</option>
<option>19</option>
<option>20</option>
</select></center>


         Хэрвээ би 21-г 2000-аар соливол РНР кодын хувьд бол тун амархан. Харин HTML код дээр бол хэр удах нь ойлгомжтой биз ээ.

FOR нь WHILE-тай тєстэй гэхдээ ялихгvй зvйлээр ондоо, гол ялгаа нь         WHILE-ын хувьд бол Condition ( нєхцєл ) TRUE байх нь чухал бол     FOR-ын хувьд хэдэн удаа vйлдлийг давтах нь чухал байдаг. Нэгийг нь нєгєєгєєр нь орлуулаад ажиллуулахад ихэнх тохиолдолд ажилладаг.

for (initial expression; condition; closing expression;) {
statement;
}


initial expression -- хамгийн эхэнд ганцхан удаа гvйцэтгэгдэнэ.
condition -- нєхцєл, эндээс TRUE, FALSE хоёрын нэгийг шийднэ.
       closing expression -- condition нь TRUE байснаас statement буюу vйлдэл гvйцэтгэгдсэн нєхцєлд ажиллана.
for -- For Loops-г эхлvvлэгч
Regular Expression ( энгийн илэрхийлэл ?) бол програмчлалын бас нэгэн чухал ойлголт, РНР програмд єргєн хэрэглэгддэг.

Гол зорилго нь хэрэглэгчийн формд оруулсан мэдээллийг шалгах ажлийг        хєнгєвчлєх. Хоёрдугаарт, вэб-програмыг нарийн мэргэжлийн тєвшинд хийхэд зайлшгvй шаардлагатай.

      Чухамдаа бол Regular Expression нь хэрэглэгчийн формд оруулсан утга           буюу дата дотор задлан шинжилгээ ( анализ ) хийж, хэрэгтэй хэсгээ              сугалж аваад хэрэггvй эсвэл санаатай оруулсан бохир хак кодыг шvvрдэж цэвэрлэдэг.

Хамгийн єргєн хэрэглээ нь хайлт. Єгvvлбэр дотроос, vгний хэсгээс, хvссэн      мэдээллээ олж болно. Бас нэг vvрэг нь нэгэнт олсон vр дvнд засвар     єєрчлєлт оруулах боломжтой, жишээ нь ямар нэг vг эсвэл vгийн хэсгийг ондоо нэг vг эсвэл vгийн хэсгээр солих, устгах гэх мэт.

Regular Expression-ыг vvнээс хойш Regexp гэж нэрлэх болно.

         Regexp-г бичихэд бусад РНР кодуудаас харьцангуй тєвєгтэй учир нь             Regexp нь хатуу дvрэм журамтай, тодорхой синтакс арга барил шаарддаг гэхдээ vндсэн гол санаа нь амархан.
Хэрэглэгчийн оруулсан мэдээллийг Regexp-д pattern гэнэ. Pattern          гэдэг нь тоо, vг (ар араасаа дараалсан vсэгнvvд ), эсвэл vсэг, тооны холимог байж болно.

Pattern жирийн хялбархан, эсвэл нvсэр том, боловсронгуй байж болно.
       Хойшид
pattern бичихдээ бусад vгнээс ялгахын тулд хашилтын тэмдгийн дунд ( " " ) бичнэ. Жишээ --> "pattern".

       
 Pattern-г тодорхойлох эхний тєрєл тэмдэгтvvдийг ( vсэг, тоо, vг гэх мэт ) Literal гэнэ. Literal бол яг яаж бичигдсэн тэр хэлбэрээрээ утгаа хадгалдаг.

           Иймээс
literal-аар бид тодорхой хайлт явуулж уг pattern-д таарсан бvх             vр дvнг хvлээж авдаг. Жишээ нь "бар" гэсэн literal pattern зєвхєн "бар" гэсэн vгийг олоход хэрэглэгдэх мэт.

      Дaрaaгийн тєрєл болох Metacharacters буюу "хувьсагч тэмдэгтvvд" бол єєрийн жинхэнэ утгаасаа цааш олон утга агуулж болох тэмдэгтvvд.
        Эхний Metacharacter бол єгvvлбэрийн эцэст ордог цэг. Цэг нь (
"." )       ямарваа хайлтаас ганцаараа байгаа тэмдэгтvvдийг олно. Жишээ нь хайлтын эцэст: a, b, c, d, x, y, z гэх мэт ганц vсгээс ( тэмдэгт ) бvтсэн бvх        биетийг гаргаж ирнэ. Дараачийн гурван Metacharacter нь олон тохиолдол бvхий хариу гаргадаг. Эхний "n*" Metacharacter зєвхєн n тэмдэгтvvдийг олно. n, nn, nnn, nnnn гэх мэт. Дараачийн "n+" нь "n*"-тэй тєстэй гэхдээ багаар бодоход нэг хариу олохыг шаарддаг. Дараачийн
"n?" Metacharacter нь ганцхан n олохыг шаардана.

Хэрвээ хайлтын тэмдэгтvvдийн тоог мэдэж байвал тэр тоог нь муруй хаалтын тэмдэгт (
{} ) оруулаад болоо. Жишээ нь "n{3}" хайлтаар nnn гэсэн тэмдэгтvvд олдоно. Хэрвээ "n{3,}" гэвэл ( 3-ын ард байгаа таслалыг анхаар ) nnn, nnnn, nnnnn гэх мэтээр гурваас дээш тооны n гэсэн тэмдэгтvvдийг олно. Харин "n{3,5}" гэвэл гурваас тавын хоорондох n тэмдэгтvvдийг олно. nnn, nnnn, nnnnn гэх мэтээр. Эцэст нь ( ^ ), энэ тэмдэгтийн араас нь бичсэн vсгээр эхэлсэн бvх хоёр тэмдэгтээс бvтсэн string-г олоход хэрэглэнэ. Жишээ нь "^n" гэвэл na, nf, n5, np, nr, nx гэх мэт. Харин "n$" гэвэл n -ээр дууссан бvх хоёр тэмдэгтээс бvтсэн string олдоно. Жишээ нь an, en, 5n, jn гэх мэт.

Бас нэг тэмдэгт бол босоо зураас (
| ). Босоо зураасаар хоёр тусдаа тэмдэгт хайхад хэрэглэнэ. "n|m" гэсэн Metacharacter хайлтаар n ба m гэсэн бvх string олдоно.
Regexp-д хэрэглэдэг тусгай тэмдэгтvvд
  тэмдэгтvvд
   хайлт
  .
   Бvх тэмдэгт
  ^n
   n-ээр эхэлсэн
  n$
   n-ээр тєгссєн
  n+
   n агуулсан (багаар бодоход нэг)
  n?
   0 эсвэл ганцхан n агуулсан
  \n
   шинэ мєр
  \t
   зай авах
  \
   ардаа байгаа тэмдэгийн утгыг    єєрчлєх
  (nm)
   n m хоёр хамтдаа
  (n|m)
   n эсвэл m агуулсан
  n{2}
   nn
  n{1,}
   n, nn, nnn, nnnn гэх мэт
  n{1,3}
   n, nn, nnn
  [a-z]
   бvх жижиг тэмдэгтvvд
  [A-Z]
   бvх том тэмдэгтvvд
  [0-9]
   бvх тооны тэмдэгтvvд
Functions

РНР-д
string дотроос ямар нэг тэмдэгтийг сонгоход хэрэглэдэг 2 functions байдаг. Эдгээрийг дурдвал

ereg()
eregi()


eregi() нь string-ээс том жижиг ялгаагvй тэмдэгтээс бvтсэн тэмдэгт сонгодог байхад ereg() нь том жижиг тэмдэгтийн ялгааг хамаардаг. ereg() нь гол тєлєв нууц vг шалгах мэтийн нарийвчилсан vйлдэлд хэрэглэгдэнэ. Энгийн хайлт хийхэд eregi() нь голчлон хэрэглэгддэг.
Ёр нь яагаад вэбмастер хэрэглэгчийн и-мэйлийг шалгадаг вэ. Олон ондоо шалтгаан байдаг гэхдээ гол нь хэрэглэгчийг форм бєглєхдєє санамсаргvйгээр буруу хариулт оруулаад байхаас сэргийлдэг.


Top of Form
  
Bottom of Form


     Дээрх цонхонд эхлээд ямар нэг и-мэйл хаяг оруулна уу. Хэрвээ байх          нєхцєлгvй и-мэйл (
www.com, www@.com, ertewwq гэх мэт ) оруулсан нєхцєлд дараах бичлэг гарна "Буруу И-мэйл хаяг орсон!"

Доорх РНР кодод бvх нєхцєл нь заагдсан байгаа.

<?
$Pattern = ".+@.+\..+";
if (eregi($Pattern, $Array["E-mail"])) {
print "Зєв И-мэйл хаяг орсон!<br>";
} else {
print "Буруу И-мэйл хаяг орсон!<br>";
}
?>


$Pattern = ".+@.+\..+"; энэ юу гэсэн утгатай вэ?

"." нь ямарч хамаагvй тэмдэгт сонгоно, "+" тэмдгээр дараачийн тэмдэгттэй холбоно. "+"-н дараа нь "@" тэмдэгт байна. Энэ нь ямарч хамаагvй тэмдэгтийн араас "@" тэмдэгт зайлшгvй байна гэсэн vг. "@" -н араас нь "." байна. "."-н араас нь "+" байна. Энэ нь "@" -н араас ямар нэг тэмдэгт зайлшгvй байхийг заана. Дараа нь "+" -ээр дараагийн тэмдэгттэй холбоно. Дараачийн тэмдэгт нь "." байх болно гэдгийг "\." зааж єгж байна. Эцэст нь "." тэмдгийн араас ".+". Энэ нь "." -н араас ямар ч хамаагvй тэмдэгт байхийг заана.

  Тэгэхээр
eregi() function нь И-мэйл цонхонд хэрэглэгчийн оруулсан pattern-г дээрх нєхцєлтэй ( ".+@.+\..+" ) тулгаад хэрвээ vнэн бол TRUE худлаа бол FALSE гэсэн хариу буцаана.
Ихэвчлэн асуултын формд вэб хуудасны хаяг оруулах дэлгэц байдаг. Хэдийгээр энэ нь нэг их чухал биш ч гэсэн шалгахад гэмгvй. Хэрэглэгчийн оруулсан буруу мэдээллийг сvvлд засварласнаас эхэлж шалгасны дараа датабэйсд хадгалах нь хэн хэндээ зовлон багатай байдаг. Зарим хvн санаатайгаар алдаатай мэдээлэл оруулж болно. Тэднийг тэгvvлэхгvй байхын    тулд эхлээд шалгахаас єєр зам байхгvй. Ёр нь хэрэглэгчийн оруулсан    мэдээлэл бvрийг логик талаас нь урьдчилан тааварлаж нєхцєл тулгаж шалгаж байх нь вэбмастерын програмчлалын нэг хэсэг болдог.

Тэгэхээр доорх хялбар, вэб хуудасны хаяг шалгах дасгалыг vзье!


Top of Form


Functions юунд хэрэгтэй вэ?
Програмчлалын явцад том хэмжээний ажлийг жижиг жижиг хэсэгт задалж   хийвэл амар байдаг. Ингэснээр программист нэг хэсгийг дуусгаад дараах хэсэгт шилждэг тул сvvлд нь кодоо засварлахад алдаа багатай байдаг. 2-рт, хэсэг бvлэг кодыг салангид байлгаснаар бусад кодуудтай нэгтгэн бvхэл код болгоход туйлын хялбар болно. Function бол ямар нэг vйлдэл хийх хэсэг жижигхэн кодууд бєгєєд заримдаа "тусгаар тогтносон жижиг програм" гэж нэрлэсэн ч болно. Жижиг хэмжээнд задарсан програмыг модуль гэх ба олон модулууд хамтран нэг апликэйшн vvсгэнэ. Function нь модультай тун тєстэй. Модулийг программистууд тоосготой зvйрлэдэг. Тиймээс тоосгоо зєв байрлуулах ба бvтээх хэрэгтэй.

1-рт бvтээнэ.
2-рт хэрэгтэй газраа дуудаж ажиллуулна.

      Хэрвээ ямар нэг vйлдэл 2-оос олон удаа давтагдаж байгаа нєхцєлд
function vvсгээд тvvнээ дахин ашиглаад байх хэрэгтэй.

2 тєрлийн vндсэн
function байдаг.
1. PHP built-in (гол системээсээ хийгдсэн)
2. User defined (хэрэглэгчийн бvтээсэн)

PHP built-in function-ы нэг жишээ бол print () юм. PHP built-in function-ыг ажиллуулахад хэрэглэгч тvvнийг бvтээх шаардлагагvй шууд дуудаад ажиллуулж болно. Харин хэрэглэгчийн шаардлагад нийцсэн function хийгдээгvй байсан нєхцєлд vvнийг программист єєрєє бvтээж болно. Тиймээс function бvтээхээсээ ємнє бvтээгдсэн эсэхийг нь шалгаж байвал цаг хvч гарздахгvй талтай.
Function-г хэрхэн vvсгэх вэ?
Тэгэхээр таны хvссэн function байхгvй бол та vvнийг бvтээхэд ядаж зvдэх юм байхгvй, энгийн хялбар юм.

function function_name (parameters) {
statement(s);
}

     Эхлээд
function гээд function_name гэдгийн оронд хvссэн нэрээ єгнє. Нэрлэхийн хувьд гэвэл долларын тэмдэг ($) бичихгvй ба утга нь хийх vйлдэлтэйгээ тохирж байвал хойшдоо самуурахгvй. Жишээ нь буруу нэр гэвэл FUNCTION1, харин зєв нэр гэвэл CALCULATE гэх мэт. Yvний дараа 2 хаалтын хооронд хувьсагч (parameters) орно. Дараа нь нуман хаалтын дотор statement(s)-ын оронд жинхэнэ РНР кодоо бичнэ. Эдгээр РНР кодуудад тооны хувьд хязгаарлалт байхгvй.

Parameters гэж юу вэ?

Function нь input авахад тухайн input нь argument болж хувирдаг. Зарим нєхцєлд argument єєрчлєгдєхгvй. Хэрвээ єєрчлєгдвєл parameters болж хувирна. Тэгэхээр argument parameters 2 нь анхандаа нэг єгєгдєл (input) байснаа сvvлд нь єєрчлєгдєж болдог. Parameters Argument 2-н vvрэг нь адилхан утгыг function-д оруулж єгдєг.

Statement гэж юу вэ?

Statement бол input биш жинхэнэ РНР код, ажиллагааг зааварласан байна. Statement нь заавал тооцоолон бодох, ямар нэгэн vр дvнд хvрэх зорилготой байна. Зорилгодоо хvрэхэд хэрэгтэй утгаа (єгєгдєл, input) parameter буюу argument-ээс авж ид шидээ гvйцээнэ. Машинаар яривал parameter буюу argument нь бензин, тос байхад Statement нь гол хєдєлгvvр эд анги, харин очих газар нь Statement-н зорилго. Тун энгийн юмыг удаан тайлбарласны хэрэггvй болов уу.

За тэгэхээр нэг function бvтээчихлээ гэж бодъё. Бvтээгдсэний дараа кодоо дуудахдаа ёрдєє л нэрийг нь коддоо оруулаад цэгтэй таслалаа марталгvй бичихэд л болоо.

<?php
.......
хэсэг РНР код
хэсэг РНР код
хэсэг РНР код

function_name(parameters);

хэсэг РНР код
хэсэг РНР код
?>

   function_name дуудагдсан газар бvртээ л statement(s) хэсэгт байрлах РНР кодыг гvйцэтгэнэ. Иймээс function-аар маш их хэмжээний цаг, хvч, зай хэмнэдэг.

  Function-ыг ондоо vгээр тайлбарлавал нилээд итгэлтэй боол бєгєєд нэрийг    нь дуудангуут чаддаг бvхнээ дор нь гvйцэтгэнэ. Олон найдвартай боолтой   баян хvний ажил хурдан бvтнэ биз дээ? Тэгэхээр эхлээд боолдоо ажлийг хэрхэн хийхийг нь сайн тайлбарлаж єгєх нь єєрєєс тань шалтгаална гэхvv дээ.
Bottom of Form
Доорх 2 цонхонд харгалзах утгуудыг бєглєнє vv.
(Анхаар: татварын хувьд 100-аас дээш тоо оруулж болохгvй!)


Top of Form
Цалин:
Татварын хувь:

  
Bottom of Form



Эхний жишээ болгоод 2 argument хэрэглэгчээс авж эцсийн хариуг vзvvлдэг жижиг
function бvтээе! Доорх жишээг хийхэд нэг HTML ба нэг РНР хуудас хэрэгтэй.

HTML хуудасны сорс код нь дараах байдалтай байна.

<FORM NAME="form1" METHOD="post" ACTION="tax.php">
Цалин: <INPUT TYPE="text"
NAME="salary" SIZE="4" MAXLENGTH="6">
<BR>
Татварын хувь: <INPUT TYPE="text"
NAME="tax_rate" SIZE="1" MAXLENGTH="2">
<BR>
<INPUT TYPE="submit" NAME="Submit" VALUE="Тооцоол">&nbsp;&nbsp;<INPUT TYPE="reset" NAME="Submit2" VALUE="Єєрчлєх">
</FORM>


Дээрх кодноос анхаарах хэсгийг нь улаанаар тэмдэглэв.

Улаанаар тэмдэглэсэн хэсэгт оруулсан хэрэглэгчийн оруулсан утгыг (
NAME="salary" ба NAME="tax_rate") ACTION="tax.php"-аар  дараачийн РНР хуудас руу шилжvvлнэ. Дараагийн РНР хуудасны сорсыг харъя.

<?php
function
tax($salary,$tax_rate) {
$loose = ($salary/100)*$tax_rate;
$salary = $salary - $loose;
return $salary;
} // function энд бvтээгдсэн
if ($salary AND $tax_rate) {
echo "Таны цалин: $salary.\n<br>"; // Энд цалинг vзvvлнэ
echo "Татвар: $tax_rate%\n"; // Энд татварын хэмжээг vзvvлнэ
echo "<hr>";
echo "<br>Yлдэгдэл: ";
echo (tax($salary,$tax_rate)); // Энд vлдэгдлийг vзvvлнэ.
echo "<br><br><a href=example.htm>Буцах</a>";
} else {
echo "Шаардлагатай тоог оруулна уу!
<br>
<br>
<a href=example.htm>Буцах</a>\n"; }
?>
tax < Function-ы нэр
$salary,$tax_rate < Parameters ба Arguments
2-дах жишээн дээр хэдvvлээ интэрнэтээр гитар зарж байлаа гэж бодъё. Гитар бvр $50 ба татварт нийт худалдааны 10%-г тєлнє. Хэрвээ худалдааны єртєг $300-с давсан нєхцєлд $99 хvртэлх хєнгєлєлт vзvvлнэ гэж бодъё.

Доорх 2 цонхонд харгалзах утгуудыг бєглєнє vv.
Bottom of Form
Тэгэхээр эхлээд сорсыг харъя.

<FORM NAME="form1" METHOD="post" ACTION="example2.php">
Тоо:
<INPUT TYPE="text" NAME="quantity" SIZE="4" MAXLENGTH="6"><BR>
Хєнгєлєлт:
<INPUT TYPE="text" NAME="discount" SIZE="1" MAXLENGTH="2"><BR>
<INPUT TYPE="submit" NAME="Submit" VALUE="Тооцоол">&nbsp;&nbsp;
<INPUT TYPE="reset" NAME="Submit2" VALUE="Єєрчлєх"></FORM>


Эндээс харахад дээрх 2 формын цонхнуудад QUANTITY (тоо) ба DISCOUNT (хєнгєлєлт) гэсэн 2 input авдаг. Авсан input-aa дараачийн РНР хуудаст шилжvvлэхэд тэдгээр нь argument болоод function-уудад хэрэглэгдэнэ.

Одоо РНР хуудасны сорс кодыг харъя.


<?
function calculate_total ($quantity, $discount) {
global $cost;
global $tax;
$total_cost = ($cost * $quantity);
$total_cost = ($total_cost - (($total_cost/100) * $tax));
if (($total_cost < 300) AND ($discount)) {
print ("Таны \$$discount-н хєнгєлєлт хvчингvй учир нь нийт худалдааны єртєг $300-с доогуур.<p>");
}
if ($total_cost >= 300) {
$total_cost = $total_cost - $discount;
}
return $total_cost;
}
// end of the calculate_total function.
function calculate_payments ($total_cost, $number_payments = "12") {
$payments = round ($total_cost, 2)/ $number_payments;
$payments = sprintf ("%01.2f", $payments);
return $payments;
}

?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title></title>
</head>
<body>
<?php
$cost = 50.00;
$tax = 10.00;
if ($quantity) {
$quantity = abs($quantity);
$discount = abs($discount);
$total_cost =
calculate_total ($quantity, $discount);
// print the results.
print "Та $quantity тооны барааг ширхэгийг нь \$$cost-р худалдан авлаа.\n<p>";
print "Татварын 10%-г оролцуулан, хєнгєлєлтийг хасаад худалдааны єртєг $";
printf ("%01.2f", $total_cost);
print ".\n<p>Та бараагаа 1 жилийн дотор сараар хувааж тєлбєл сарын $";
print
(calculate_payments($total_cost));
print " байх болно.\n<p>";
} else {
print "Худалдан авах гитарын тоог оруулна уу.\n";
}
?>
</body>
</html>
Нэг анхаарах юм бол function дуудагдахаасаа ємнє бvтээгдсэн байх хэрэгтэй. Ихэнх РНР программистууд HTML хэсгийнхээ дээд талд function-аа бvтээгээд HTML дотроосоо дууддаг. Дээрх жишээнээс харна уу.

global $variable
гэж юу вэ?

Бид урьдын жишээнvvдээс харахад variable буюу argument-г РНР function луу шилжvvлэхэд утга нь зєвхєн тухайн function дотроо ажиллаж байсан. Харин global scope-г ашиглан хэд хэдэн function-ы хооронд нэг variable-г дамжуулан хэрэглэж болдог. Энэ нь олон дамжлагатай vйлдэл хийх програмыг хялбар болгоно.

function function_name ($argument) {
global $variable;
}

гэсэн байдлаар бичигдэнэ. Дээрх жишээн дээрээс харахад ийм байна.

<?
function calculate_total ($quantity, $discount) {

global
$cost;
global
$tax;
......

Тэгэхээр дээрх кодон доторх 2
function 2-уулаа $cost ба $tax variable-г хэрэглэх учраас ингэж global scope-г хэрэглэжээ.


function calculate_total (); < 1-дэх function
function calculate_payments (); < 2 дах function
Датабэйс бол SQL дээр бичигдсэн олон хvснэгтээс бvтсэн, мэдээлэл хадгалах ба гаргаж vзvvлэх зориулалттай, dynamic вэбийн ар талд гол vvргийг гvйцэтгэгч нууц ноёнтон юм. Хvснэгт бvр нь багана ба мєрvvдээс бvрдэх ба багана мєр 2 огтлолцсон газрыг нь бид "НYД" гэдэг билээ. Нvд бvрт мэдээллийг хадгалах ба мэдээллийг татахдаа (гаргаж vзvvлэхдээ гэхvv эсвэл?) хамгийн эхний мєр буюу INDEX -г ашиглан хэрэгтэй мэдээллээ олдог. Тэгэхээр РНР -д датабэйс хэрэглэснээр вэбийг хэрэглэгчийн хайлтаас vндэслэн мэдээллийг бvрдvvлэх боломжтой. Энэ юу гэсэн vг вэ гэхээр, вэбмастер 2 зvйл дээр голчлон ажиллана. 1-рт вэбийн гадаад тєрх, 2-рт датабэйсд мэдээлэл оруулах. Ингэснээр вэбмастер тоо томшгvй олон HTML хуудас бvтээх хэрэггvй болно. Ёрдєє л РНР хуудсаа датабэйстэй холбож хаячаад пиводоод яваад байж болно гэсэн vг. Эсвэл, PlayStation тоглоод зах хэсээд явж байсан ч болно. Яагаад гэхээр вэб хуудас єєрєє єєрийгєє бvтээгээд шинэчлээд байж байх учраас. Муу юм зааж байгаа ч юм биш, датабэйс бол вэбмастерын амьдралыг эрс хєнгєвчилнє. Вэб хуудсанд датабэйс хэрэглэх нь сvvлийн vед эрс нэмэгдсэнээс болж датабэйстэй харьцаж чаддаг вэб хэл сурах нь вэбмастерууд тун чухал юм. Та тэдний нэг нь гэж би таамаглаж байгаагаас гадна танд vvнийг сурахад тань туслах болно. Гадуур єчнєєн тєрлийн датабэйс програм байх ба эдгээрээс MySQL датабэйс хамгийн єргєн хэрэглэгдэж байна. РНР нь MySQL-тэй хамтран хvчирхэг бєгєєд хурдан холимог вэб програм vvсгэнэ. MySQL бол STRUCTURED QUERY LANGUAGE хэрэглэж мэдээлэлтэй харьцана. MySQL-г сонгож энд хэрэглэх болсон шалтгаануудаас дор дурдвал:
  • Yнэгvй (UNIX сэрвэрvvдэд vнэгvй)
  • Платформ хамааралгvй (Cross Platform)
  • Дунд хэмжээний хурд ба ажиллагаатай
  • Сурахад хялбар (1 юмуу 2 єдєр хангалттай!)
  • OSS (Open Sourse Software)
Хэрэглэгч бvр гурван бvлэгт хуваагдана.

1. Админ буюу захирагч нар, тэд нар шинээр датабэйс нээх ба устгах, хvснэгт нээх устгах, мэдээлэлд єєрчлєлт оруулах нэмэх зэрэг бvх vйлдлvvдийг гvйцэтгэх эрхтэй байна.

2. Датабэйс эзэмшигч нар, тэд нар зєвхєн єєрсдийн датабэйс дотроо юу ч хийх эрхтэй байх ба шинээр датабэйс нээх эрхгvй зєвхєн хvснэгт нээх, мэдээлэл єєрчлєх эрхээр хязгаарлагдана.

3. Жирийн хэрэглэгч нар, тэд нар зєвхєн датабэйс дах мэдээллийг унших эрхтэй байх ба мэдээлэл нэмэх боломжтой байж болно, харин устгах боломжгvй.

Хэрвээ єєрийн компьютер дээр MySQL суулгасан бол та єєрєє админ тул хvссэнээ хийж болно. Нэг анхаарах юм бол бид нар SQL хэрэглэхгvй, дан РНР командаар MySQL-г захирах болно.
Дaтабэйстэй холбогдохын ємнє хэрэглэгчид 3 зvйл хэрэгтэй.
1.     Host - Датабэйс байрлах сэрвэрийн хаяг
2.     User - хэрэглэгчийн нэр
3.     Password - нууц vг
Дээрх 3 мэдээллийг ашиглан єєрийн датабэйс сэрвэртэй холбоо тогтооно.

$Link = mysql_connect("$Host","$User","$Password");

дээрх РНР командаар датабэйс сэрвэртэй холбогдоно.
Нэгэнт холбогдсоны дараагаар шинээр датабэйс vvсгэхийн тулд:

mysql_create_db("database_name", $Link);

Датабэйсийг хэрэглэж дууссаны дараа холбоог таслахын тулд:

mysql_close($Link);

Ёрдєє л эдгээр хэдхэн командууд хэрэгтэй.
$Link бол зайлшгvй шаардлагатай учир нь mySQL датабэйс сэрвэр хэрэглэгчийн єгсєн команд бvрт хяналт тавьдаг.

Доор жишээ болгон шинээр датабэйс vvсгэж vзье!

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>{ Датабэйс бvтээх тухай }</title>
<link rel="stylesheet" href="../../dw/dw.css" type="text/css">
</head>
<body>

<?php
$Host = "localhost";
$User = "";
$Password = "";
$Database_name = "new_database";
$Link = mysql_connect ($Host, $User, $Password);
if (mysql_create_db ($Database_name,
$Link)) {
print ("The database, $Database_name, was successfully created!<br>\n");
} else {
print ("The database, $Database_name, could not be created!<br>\n");
}
mysql_close(
$Link);
?>
</body>
</html>
Дээрх РНР команд эхлээд mySQL сэрвэртэй холбогдоно. Дараа нь new_database гэдэг датабэйс vvсгэхийг оролдоно. Хэрвээ алдаа тохилдохгvй бол

The database, new_database, was successfully created!

гэж команд биелэгдсэнийг харуулна. Эсвэл

The database, new_database, could not be created!

гэнэ. Мэдээж таны vvсгэх шинэ датабэйсийн нэр нь
new_database байх албагvй ямар ч нэр байж болно.

Нэг жижигхэн анхааруулах юм бол хэрвээ та гэрийнхээ компьютер дээрээ дээрх кодыг турших бол єєрийн вэб сэрвэр, датабэйс сэрвэр, РНР сэрвэр гурвууланг нь зэрэг ажиллуулах ёстой! Аль нэг нь байхгvй бол бvгдийг нь суулгаж хэвийн ажиллагаатай болгосны дараа дахин оролдоно уу.

Бусад РНР жишээтэй адил энэ жишээг vзvvлэх боломжгvйд харамсаж байна.

Дараагийн хэсэгт нэгэнт бvтээсэн датабэйс дотроо хvснэгт нээхийг vзье!
Нэгэнт датабэйс бvтээгдсэний дараагаар дотор нь хэдэн ч хvснэгт нээж болно. Хvснэгт бvр нь багана мєр ашиглаж мэдээллээ хадгална.

мєр =
rows, record
багана =
column, field

Хvснэгт бvтээх болон бусад mySQL командуудыг гvйцэтгэхэд зарим тохиолдолд SQL командыг хэрэглэх шаардлага гардаг.

mysql_db_query():
$Query = "SQL формат дээр бичигдсэн тэкст энд бичигдэнэ";
mysql_db_query("$Database_name", $Query, $Link);


Тэгэхээр энэ
Query гэж юу вэ? Товчхондоо бол Query бол команд эсвэл хvсэлт гэсэн vг ба датабэйс сэрвэрт юу хийхийг нь тушаадаг.

Хvснэгт бvтээхэд:

$Query = "CREATE table TABLENAME (column1, column2, etc.)";

гэж байна. Багануудыг хооронд нь таслалаар салгах ба эхлээд баганын нэр, дараа нь тєрлийг нь зааж єгнє. Хамгийн тvгээмэл тєрєл бол
TEXT буюу vг єгvvлбэрээс тогтсон дата ба INT буюу тооноос бvтсэн дата юм.

Хамгийн эхний баганыг ихэвчлэн тvлхvvр багана (
primary key) болгодог. Ингэснээр дараачийн мєрнvvдээс дата (мэдээлэл) олоход хялбар болно.

$Query = "CREATE table TABLENAME (id INT PRIMARY KEY, information TEXT)";

Ямарч хvснэгтэд цорын ганц тvлхvvр багана байна. 2 байж болохгvй. Тvлхvvр баганын мєр бvрийг нэг нэгээр нэмэгдэх байдлаар хийдэг. Тиймээс эхний мєрийн тvлхvvр баганын нэр нь 1 ба 2 дах мєрнийх 2 гэх мэтчилэн vргэлжилнэ. Хэрвээ 7 дах мєрний мэдээллийг гаргах болбол тvлхvvр баганаас 7-р мєрийг олоод тvvнээс хойших бvх баганаас мэдээллийг нь гаргаж авна. Иймээс их хэмжээний мэдээллийн дотроос хvссэн хэдхэн хуудас мэдээллээ ганц тоогоор дамжуулан хурдан олж авдаг.

Жишээ болгоод нэгэн хvснэгт бvтээе.

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>{ Датабэйс бvтээх тухай }</title>
<link rel="stylesheet" href="../../dw/dw.css" type="text/css">
</head>
<body>

<?php
$Host = "localhost";
$User = "";
$Password = "";
$Database_name = "new_database";
$Table_name = "feedback";

$Link = mysql_connect ($Host, $User, $Password);
$Query = "CREATE table $Table_name (id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT, email_address TEXT, comments TEXT)";
if (mysql_db_query($database_name, $Query, $link)) {
print ("Хvсэлтийг гvйцэтгэв<br>\n"); } else {
print ("Хvсэлтийг биелvvлэх боломжгvй!<br>\n");
}
mysql_close(
$Link);
?>
</body>
</html>

Дээрх РНР кодыг задлаж vзье.

           id INT UNSIGNED гэдэг нь эхний баганыг тvлхvvр багана бєгєєд зєвхєн нэмэх тоог утга болгон авна гэсэн vг.

NOT NULL гэдэг нь нь тухайн баганын мєр бvхэнд утга харгалзах ёстой гэсэн vг. Зарим хvмvvс NULL гэдгийг хоосон буюу утга агуулдаггvй учраас 0-тэй адил гэж ойлгодог. Yнэндээ NULL бол 0 ч биш, юу ч биш. 0 бол єєрєє утга байж болно. NULL утга байж чадахгvй. -1, 0, 3 бол 3 тоо. Тэгэхээр 0 бол -1 ба +1-н хооронд орших нэгэн бодит тоо мєн. Харин NULL бол англи хэлний NOTHING гэсэн vгтэй утга адил.

Мєр бvр нь нэгээр нэмэгдэнэ гэдгийг
AUTO_INCREMENT зааж байна. Эцэст нь улиг болоод байгаа тvлхvvр багана гэдгийг нь PRIMARY KEY нотолж байна. Дараагийх нь баганаас эхлээд бид нар баганын нэр ба тєрлийг нь first_name TEXT гэх мэтээр vргэлжлvvлээд

mysql_close($Link); командаар датабэйсийг хааж байна.
Дараачийн хэсгээс дээр бvтээсэн кодоо хэрхэн ажиллахыг туршиж vзье.

Тvрvvчийн хуудас дээр бид нар шинээр бvтээсэн датабэйс (new_database) дотроо feedback гэдэг хvснэгт нээсэн ба first_name, last_name, email_address, comments зэрэг баганууд нээсэн билээ. Эдгээрийг ашиглан бид нар вэб хуудсандаа зочилсон хvмvvсийн санал хvсэлтийг датабэйсд хадгалдаг ба гаргаж харуулдаг жижиг програм хийхийг харья.

Хамгийн тvрvvнд бид нэгэн жижиг асуултын HTML форм хийнэ. Энэ формоос хэрэглэгчийн датаг цуглуулах ба mySQL датабэйс рvv шилжvvлж тэнд хадгална.

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>{ Асуултын форм }</title>
<link rel="stylesheet" href="../../dw/dw.css" type="text/css">
</head>
<body>

<form action="handle_form.php" method=post>
Нэр <input type=text name="Array[first_name]" size=20><br>
Oвог <input type=text name="Array[last_name]" size=40><br>
И-мэйл хаяг <input type=text name="Array[email_address]" size=60><br>
Санал хvсэлт <textarea name="Array[comments]" rows=5 cols=40></textarea><br>
<input type=submit name="submit" value="Оруул!">
</form>
</body>
</html>
Top of Form
Нэр
Овог

И-мэйл хаяг

Санал хvсэлт

Bottom of Form


Дээрх формд оруулсан дата нь Handle_form.php-р дамжин mySQL руу явах ба РНР код нь дараах байдалтай байна.

<html>
<head>
<title>Inserting Data into a Database</title>
<body>

<? // trim the incoming data
$Array["first_name"] = trim ($Array["first_name"]);
$Array["last_name"] = trim ($Array["last_name"]);
$Array["email_address"] = trim ($Array["email_address"]);
$Array["comments"] = trim ($Array["comments"]);
$Host = "localhost";
$User = "";
$Password = "";
$Database_name = "new_database";
$Table_name = "feedback";
$Link = mysql_connect ($Host, $User, $Password);
$Query = "INSERT into $Table_name values ('0', '$Array[first_name]', '$Array[last_name]', '$Array[email_address]', '$Array[comments]')";
print ("<a href=display_database.php>View Entries</a><br><p>\n");
if (mysql_db_query($Database_name, $Query, $Link)) {
print ("The query was successfully executed!<br>\n");
} else {
print ("The query could not be executed!<br>\n");
}
mysql_close ($Link);
print ("</table>\n");
?>
</body>
</html>
trim командаар эхлээд датаг 2 талаас нь шахна. Энэ нь зайлшгvй vйлдэл биш, алгасаж болно гэхдээ ингэснээрээ датабэйс дээр илvvдэл зай эзлэхээс сэргийлж болно. Дараа нь

$Host = "localhost";
$User = "";
$Password = "";
$Database_name = "new_database";
$Table_name = "feedback";
зэргээр тодорхойлолтоо оруулна.

$Link = mysql_connect ($Host, $User, $Password); гэж холбоод

$Query = "INSERT into $Table_name values ('0', '$Array[first_name]', '$Array[last_name]', '$Array[email_address]', '$Array[comments]')"; гэж хvсэлтээ    mySQL-д илгээнэ.

print ("<a href=display_database.php>View Entries</a><br><p>\n");
энэ линкээр хэрэглэгч датабэйсд байгаа мэдээллийг татаж харна.

mysql_close ($Link); -р mySQL-р холбоогоо таслана.

print ("</table>\n"); -р HTML хvснэгтээ хаана.

?> -р РНР-г хаана.

Дараачийн хэсгээс хэрхэн датабэйсээс мэдээлэл гаргаж харахыг vзье!
Мэдээллийг гаргаж vзvvлэхийн тулд дахин нэг РНР хуудас хэрэгтэй. Энэ хуудасны зорилго нь mySQL-тэй холбогдож, датабэйсээс хэрэгтэй хvснэгтээс бvх мэдээллийг татаж браузэрт дэлгэж vзvvлэх юм. Код нь:

<html>
<head>
<title>Retreiving Data into a Form</title>
<body>
<?
$Host = "localhost";
$User = "";
$Password = "";

$Database_name = "new_database";
$Table_name = "feedback";

$Link = mysql_connect ($Host, $User, $Password);
$Query = "SELECT * from $Table_name";
$Result = mysql_db_query ($Database_name, $Query, $Link);

// create a table
print ("<table border=0 width=\"75%\" cellspacing=0 cellpadding=0 align=center>\n");
print ("<tr align=center valign=top>\n");
print ("<td align=center valign=top>Name<hr></td>\n");
print ("<td align=center valign=top>Email Address<hr></td>\n");
print ("<td align=center valign=top>Comments<hr></td>\n");
print ("</tr>\n");

// fetch the results from the database
// test
while ($Row = mysql_fetch_array($Result)) {
print ("<tr align=center valign=top>\n");
print ("<td align=center valign=top>$Row[first_name]$Row[last_name]<hr></td>\n");
print ("<td align=center valign=top>$Row[email_address]<hr color=#ffff00></td>\n");
print ("<td align=center valign=top>$Row[comments]<hr></td>\n");
print ("</tr>\n");
}
mysql_close ($Link);
print ("</table>\n");
?>

</body>
</html>

Дээрхийг хэсэгчилж харвал

$Query = "SELECT * from $Table_name";
$Result = mysql_db_query ($Database_name, $Query, $Link);
гэж хvсэлтээ илгээнэ. SELECT бол сонгохыг заана. $Result бол хариуг заана.

print ("<table border=0 width=\"75%\" cellspacing=0 cellpadding=0 align=center>\n");
print ("<tr align=center valign=top>\n");
print ("<td align=center valign=top>Name<hr></td>\n");
print ("<td align=center valign=top>Email Address<hr></td>\n");
print ("<td align=center valign=top>Comments<hr></td>\n");
print ("</tr>\n");
жирийн HTML код

while ($Row = mysql_fetch_array($Result)) { гэж LOOP эхлvvлж мєр мєрєєр нь датаг сугална.

Мєр бvрийг

print ("<tr align=center valign=top>\n");
print ("<td align=center valign=top>$Row[first_name]$Row[last_name]<hr></td>\n");
print ("<td align=center valign=top>$Row[email_address]<hr color=#ffff00></td>\n");
print ("<td align=center valign=top>$Row[comments]<hr></td>\n");
командаар дэлгэц рvv гаргана.

   print ("</tr>\n"); командаар бvх мєр дууссаны дараа HTML цонхыг (row) хаана.

mysql_close ($Link); mySQL-г хаана.

print ("</table>\n"); командаар HTML хvснэгтийг хаана.

?> -р РНР-г хаана.

</body>
</html>
-р хуудсаа хаана.

      Эдгээр жишээнvvдийн хамгийн гол зорилго бол mySQL-тэй холбогдоход РНР-г дангаар ашиглаж болохыг vзvvлэх юм. SQL єєрєє бол бие даасан сэдэв тул тийшээ хальтран орохыг энд хэрэггvй гэж бодно.