Top Banner
សសសសសសសសសសសសសសសសសសសសស BUILD BRIGHT UNIVERSITY សសសសសសសសសសសសសសសសសសសសសសសសសស សសសសសសសសសសស សសសសសសសសសសសសសសសសសសសសសសសសសសសសសសសសសសសសសសសស សសសសស សសសសសសសសសសសសសសសសសសសសសសសសស សសសសសសសសសសសសសសសស សសសសសសសសសសសសសសសសសសសសសសសសសសស សសសសសសសសសសស សសសសសសសសសសសសស DIM SUM EMPEROR សសសសសសសសសសសសសសសសសសសសសសសសសសសសសសសស ស-សសសសសសស សស សសសសស ស-សសសសសសស សសស សសសសសស ស-សសសសសសស សសស សសសសសស ស-សសសសសសស សសស សសសសសសសសសសស ស-សសសសសសស សស សសសសសសស សសសសសសសសសសសសសសសសសសស សសស សសសស សសសសសស សសសសសសសសសសស សសសស-សសសស សសសសសសសសសសសសសសសសសសសសស BUILD BRIGHT UNIVERSITY សសសសសសសសសសសសសសសសសសសសសសសសសស សសសសសសសសសសស
155

khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

Mar 29, 2019

Download

Documents

hatram
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

សាកលវទិ្យាល័យបៀ��លប្រា�យ BUILD BRIGHT UNIVERSITY

សារណា�ញ្ច�់ការសិក្សាថ្នា� ក់�រញិ្ញា� �ប្រា�មហាវទិ្យាល័យវទិ្យាសាប្រាស�និង�បៀ"្ចកវទិ្យា

ជំនាញ ការអនុវ��ក�ុងកំុព្យូទ័រប្រា�ធាន�ទស្ដីអំពី

ប្រា�ព័ន្ធប្រា1�់ប្រា1ងការលក់រ�ស់បៀ2ជនីយដ្ឋា4 ន ឌីមសាអំែអមបៀ7ីបៀរ 8DIM SUM EMPEROR

បៀរ��បៀរ�ងបៀដ្ឋាយប្រាកមុនិស្ិស�ជំនាន់ទី១៦៖១-និស្សិ� �ន "នា>២-និស្សិ� ងិន កក្កដ្ឋា៣-និស្សិ� បៀសង សុខហួ�៤-និស្សិ� សុខ "័ន្ទ�ុ៊នណា៥-និស្សិ� ខន ពិសិដ4

សាប្រាសា� ចារ្យអែKនា៖ំ បៀLក ហង្ស សុវK្ណ

ឆ្នា� សិំក្សា ២០១៥-២០១៩

សាកលវទិ្យាល័យបៀ��លប្រា�យBUILD BRIGHT UNIVERSITY

សារណា�ញ្ច�់ការសិក្សាថ្នា� ក់�រញិ្ញា� �ប្រា�មហាវទិ្យាល័យវទិ្យាសាប្រាស�និង�បៀ"្ចកវទិ្យា

ជំនាញ ការអនុវ��ក�ុងកំុព្យូទ័រ

ប្រា�ធាន�ទស្ដីអំពីប្រា�ព័ន្ធប្រា1�់ប្រា1ងការលក់រ�ស់

Page 2: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

បៀ2ជនីយដ្ឋា4 ន ឌីមសាអំែអមបៀ7ីបៀរ 8DIM SUM EMPEROR

បៀរ��បៀរ�ងបៀដ្ឋាយប្រាកមុនិស្ិស�ជំនាន់ទី១៦៖១-និស្សិ� �ន "នា>២-និស្សិ� ងិន កក្កដ្ឋា៣-និស្សិ� បៀសង សុខហួ�៤-និស្សិ� សុខ "័ន្ទ�ុ៊នណា៥-និស្សិ� ខន ពិសិដ4

សាប្រាសា� ចារ្យអែKនា៖ំ បៀLក ហង្ស សុវK្ណ..................................អនុ1Kៈកម្មការវាយ�ម្លៃមUការការពារសារណា១-........................................ហ�>បៀលខា............................................ឋានៈប្រា�ធាន

២-........................................ហ�>បៀលខា............................................ឋានៈសមាជិក

៣-........................................ហ�>បៀលខា............................................ឋានៈសមាជិក

បៀស"ក្ដីធានាអះអាងបៀយីងខ្ញុំទាងំអស់គ្នា� សូមបៀ_ី̀ការធានាអះអាងសារណាអែដលបៀយីងខ្ញុំ�ន បៀរ��បៀរ�ងបៀaងីបៀនះ

ពិ�ជាមាន2ពបៀដីមប្រា�កដអែមន។ រាល់កិ"្ចការអែដលបៀយីងខ្ញុំ�នបៀ_ី̀ការប្រាសាវប្រាជាវបៀaងីបៀនះ មិនធាU �់�នប្រា�1ល់ជូនសា> �័នឧ��មសិក្សា ឬសា> �័នប្រាសាវប្រាជាវ ណាមួយបៀដីម្ីបនឹងទទួល�ននូវសញ្ញា� �ប្រា�បៀនាះបៀaយី។ ប្រាកមុបៀយីងខ្ញុំសូមបៀ_ី̀ការសន្យាថ្នានឹងទទួលខុសប្រា�វូនូវរាល់ការអែកUង�ន Uំ ឬ លួ""មUងពីនិស្សិ�ដ៏ម្លៃទនិងអ�កនិពន្ធណាមួយបៀaយី។ ប្រា�សិនបៀ�ីមហាវទិ្យាល័យពិនិ�្យបៀkីញថ្នា ពិ�ជាមានការអែកUង�នUំ ឬ លួ""មUងខុសពីការធានាអះអាងខាងបៀលីបៀកី�បៀaងីអែមនបៀនាះ បៀយីងខ្ញុំសូមទទួលសាl ល់ថ្នាសារណារ�ស់បៀយីងខ្ញុំនិងមិនទាន់មានលក្ខKៈប្រា1�់ប្រាគ្នាន់បៀដីម្បីទទួល�នសញ្ញា� �ប្រា�បៀនាះបៀaយី ។

រាជធានី7�ំបៀពញ ម្លៃnoទី..........អែខ..............ឆ្នា� ២ំ០....ហ�>បៀលខា និងបៀp្ម ះនិស្ិស�

.....................................

......�ន "នា>

.....................................

......ងិន កក្កដ្ឋា

.....................................

......បៀសង សុខហួ�

Page 3: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

មា�ិកា"ំKងបៀជីង ទំព័របៀស"ក្ដីអែnUងអំKរ1ុK...............................................................................iivមូលន័យសបៀង្ខ�........................................................................................vតារាង................................................................................................vviរ�ូ2ព................................................................................................viiអក្សរកា�់..............................................................................................ix១. បៀស"ក្ដីបៀr្ដីម.........................................................................................1១.១ លំនាបំៀដីម........................................................................................1១.២ "ំបៀណាទ�ញ្ញាs ...................................................................................1១.៣ បៀគ្នាល�ំKងម្លៃនការប្រាសាវប្រាជាវ..................................................................2១.៤ ទំហំនិងអែដនកំK�់ម្លៃនការប្រាសាវប្រាជាវ............................................................2១.៥ ពន្យល់ពាក្យ1នUឹះ................................................................................2២. រលឹំកប្រាទឹស្ដី..........................................................................................4២.១ សញ្ញា� Kទូបៀuម្លៃនប្រា�ព័ន្ធព�៌មាន...............................................................4២.១.១ ប្រា�ព័ន្ធ (System)..........................................................................4២.១.២ ព�៌មាន.......................................................................................4២.១.៣ ប្រា�ព័ន្ធព�៌មាន................................................................................5២.១.៤ ទិន�ន័យ........................................................................................5២.១.៥ ប្រា�ព័ន្ធប្រា1�់ប្រា1ងទិន�ន័យ (Database Management System)..................6២.១.៦ Transaction..............................................................................8២.១.៧ �បៀ"្ចកវទិ្យាព�៌មាន (Information Technology)...................................9២.២ ការបៀប្រា�ីប្រា�ស់2សាក�ុងការ�បៀង្កី�ប្រា�ព័ន្ធ.......................................................9២.២.១ អី̀បៀuជា HTML?............................................................................9២.២.២ អី̀បៀuជា CSS?............................................................................10២.២.៣ អី̀បៀuជា JavaScript?..................................................................12២.២.៤ អី̀បៀuជា JQuery?........................................................................13២.២.៥ អី̀បៀuជា AJAX?...........................................................................14២.២.៦ អី̀បៀuជា Bootstrap?...................................................................16២.២.៧ អី̀បៀuជា PHP?............................................................................17២.៣ ប្រា�ព័ន្ធប្រា1�់ប្រា1ងទិន�ន័យ......................................................................19

i

ហ�>បៀលខា និងបៀp្ម ះនិស្ិស�

.....................................

......�ន "នា>

.....................................

......ងិន កក្កដ្ឋា

.....................................

......បៀសង សុខហួ�

Page 4: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

២.៣.១ អី̀បៀuជា My SQL?.......................................................................19២.៣.២ ប្រា�វ��ិរ�ស់ MySQL?....................................................................20២.៣.៣. ប្រា�បៀ7ទម្លៃន SQL Statements អែដលបៀប្រា�ីក�ុង MySQL.............................21២.៣.៤. 1ុKសម្ប��ិ ឬ លក្ខKៈសំខាន់រ�ស់ MySQL........................................22២.៣.៥. ការបៀប្រា�ីប្រា�ស់ MYSQL Command-Line Tools................................24២.៣.៦. អែKនាបំៀអាយសាl ល់ពី PHP MyAdmin..............................................24២.៣.៧. ទំនាក់ទំនងរវាង Client,PHP និង MySQL.........................................25២.៣.៨. ទំនាក់ទំនងរវាង Client និង Web Server បៀដ្ឋាយពំុបៀប្រា�ី PHP....................25២.៣.៩. ទំនាក់ទំនងរវាង Client និង Web Server បៀដ្ឋាយពំុបៀប្រា�ី PHP....................26៣. វ_ីិសាប្រាស�ម្លៃនការប្រាសាវប្រាជាវ.......................................................................28៣.១ ជំហានម្លៃនការសិក្សាប្រាសាវប្រាជាវ.................................................................28៣.១.១ ការពិ2ក្សាបៀដីម្ីបបៀប្រាជីសបៀរ 8សប្រា�ធាន�ទ....................................................29៣.១.២ ទំនាក់ទំនងសំុការអនុញ្ញា� �"ុះកម្មសិក្សា..................................................29៣.១.៣ ប្រា�មូលទិន�ន័យ.............................................................................29៣.១.៤ វ2ិ1និងអែក�ប្រាមវូបៀលី"ំKុ"ខ̀ះខា�រ�ស់ប្រា�ព័ន្ធ...........................................29៣.១.៥ បៀ_ី̀ការបៀរ��"ំរ"នាសម្ព័ន្ធម្លៃនប្រា�ព័ន្ធn្មី........................................................30៣.១.៦ សរបៀសរកូដ..................................................................................30៣.១.៧ បៀ_ី̀ការពិបៀសា_ន៍សាកល្បងនិងអែnរក្សាប្រា�ព័ន្ធ..............................................31៣.២ វ_ីិសាប្រាស�ប្រា�មូលទិន�ន័យ.....................................................................31៣.២.១. ប្រា�បៀ7ទទិន�ន័យ............................................................................31៣.៣ វ_ីិសាប្រាស�វ2ិ1ទិន�ន័យ......................................................................32៣.៤ តារាងបៀពលបៀវL1បៀប្រាមាងសារណា............................................................32៣.៥ រ"នាសម្ព័ន្ធម្លៃនការប្រាសាវប្រាជាវ...................................................................33៤.លទ្ធrលម្លៃនការប្រាសាវប្រាជាវ..........................................................................35៤.១ លទ្ធrលម្លៃនការវ2ិ1 (Result of Analysis)...........................................35៤.២ លទ្ធrលម្លៃនការរ"នាប្រា�ព័ន្ធព�៌មាន...........................................................35៤.២.១ ដ្យាប្រាកាម�រ�ិទ (Context Diagram)................................................36៤.២.២ លំហូរទិន�ន័យ(Data Flow Diagram)..............................................36៤.២.៣ ការបៀប្រាគ្នាងម្លៃន Physical Database ម្លៃនប្រា�ព័ន្ធn្មី......................................37៤.២.៤ Data Dictionary For Table......................................................37៤.២.៥ ការរ"នាប្រា�ព័ន្ធ (Interface Design).................................................40

ii

Page 5: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

៤.៣ លទ្ធrលម្លៃនការសាកល្បង.....................................................................46៥.ការពិ2ក្សា........................................................................................47៥.១ 1ុKសម្ប��ិ....................................................................................47៥.២ 1ុKវ�ិ��ិ.......................................................................................48៦.បៀស"ក្ដីសន�ិដ្ឋា4 ន និងអនុសាសន៍.................................................................49៦.១ បៀស"ក្ដីសនិដ្ឋា4 ន................................................................................49៦.២ អនុសាសន៍.....................................................................................50ឯកសារបៀ|ង........................................................................................63ឧ�សម្ព័ន្ធ.............................................................................................63

បៀស"ក្ដីអែnUងអំKរ1ុKក�ុងនាមបៀយីងខ្ញុំជានិស្ិស�ជំនាន់ទី១៦ ឆ្នា� ទីំ៤ ឆមាសទី២ ម្លៃនសាកលវទិ្យាល័យបៀ��លប្រា�យ

សូមសំអែដងនូវការដឹង1ុK|~ ងប្រាជាលបៀប្រា�និងក��ញ�ូ តា_ម៌|~ ងខ្ពង់ខ្ពស់�ំrុ�"ំបៀពាះបៀLកអ�កមាន1ុKទាងំពីរ អែដល�នខិ�ខំ"ិញ្ចឹម�ី�" ់ បៀមីលអែnរក្សាអស់ពីកមាU ងំកាយ"ិ��និងr្ដល់នូវទំនុក�ំរងុបៀr្សងៗសំរា�់ឧ��>ម្ភដល់ការសិក្សារ�ស់បៀយីងខ្ញុំទាងំអស់គ្នា� ។ សូមបៀគ្នារពនិងដឹង1ុK|~ ងប្រាជាលបៀប្រា�"ំបៀពាះសាកលវទិ្យាល័យបៀ��លប្រា�យ ជាពិបៀសសបៀLកសាកលវទិ្យា_ិការរង ម្លៃនសាកលវទិ្យាល័យបៀ��លប្រា�យ សាប្រាសា� ចារ្យ និង�ុ1lលិកអែដល�ំបៀរ 8ការងារទាងំអស់អែដល�នបៀរ��"ំនិងសប្រាមិ�សប្រាមាងំនូវកម្មវ_ីិល្ៗអ សំរា�់បៀអាយនិស្សិ�សិក្សាបៀរ�នសូប្រា�អែដលប្រាស�តាម�ប្រាមវូការទីr្សារការងារនាបៀពល�"្ចុ�្បន�។ ជាពិបៀសស សូមអែnUងអំKរ1ុK"ំបៀពាះបៀLកសាប្រាសា្ដ ចារ្យដឹកនា ំបៀLក ហង្ស សុវK្ណ អែដល�នខិ�ខំប្រា�ឹងអែប្រា�ងដឹកនានិំង"ំណាយបៀពលបៀវLដ៏មាន�ម្លៃមU បៀដីម្បីពន្យល់អែKនានិំងr្ដល់ជា1នUឹះ និងវ_ីិសាប្រាស�ល្ៗអ សំរា�់ជាrUូវសបៀប្រាម"បៀជា1ជ័យក�ុងការសរបៀសរសារណាបៀនះ។ បៀលីសពីបៀនះបៀuបៀទ�� ប្រាកមុរ�ស់បៀយីងខ ្ញុំ សូមអែnUងអំKរ1ុK|~ ងប្រាជាលបៀប្រា�អែដលមិនអា"�ំបៀ7U"�ន បៀ2ជនីយដ្ឋា4 ន ឌីមសាអំែអមបៀ7ីបៀរ 8 អែដលអនុញ្ញា� �ិ�បៀអាយប្រាកមុរ�ស់បៀយីងខ្ញុំ "ុះបៀ_ី̀ការប្រាសាវប្រាជាវនិងប្រា�មូលទិន�ន័យបៀr្សងៗ អែដលទាក់ទងនិងប្រា�ធាន�ទម្លៃនការប្រាសាវប្រាជាវ។បៀយីងខ្ញុំទាងំអស់គ្នា� សូមជូនពរបៀអាយបៀLកនាយកនិង�ុ1lលិកទាងំអស់ជួ�អែ�បៀស"ក្ដីសុខ រ 8ក"បៀប្រាមីន បៀហីយប្រា�ថ្នា� អី̀សូមទទួល�នបៀជា1ជ័យប្រា1�់2រកិ"្ចទាងំអស់។ ជាទី�ញ្ច�់ ប្រាកមុរ�ស់បៀយីងខ្ញុំមានបៀស"ក្ដីបៀសាមនស្សរ 8ករាយ និងសូមអែnUងអំKរ1ុKដល់�ណា្ដ និស្សិ� និង មិ��អ�កអានទាងំអស់អែដលr្ដល់នូវការគ្នាបំ្រាទដល់សា� ម្លៃដរ�ស់ប្រាកមុបៀយីងខ្ញុំ។សូមជូនពរបៀអាយអ�កទាងំអស់គ្នា� ជួ�ប្រា�ទះនូវពុទ្ធិពរទាងំ�ួនប្រា�ការ1 ឺ អាយ ុ វK្ណៈ សុខៈ និងពលៈកំុ�ីបៀkU�ងឃ្លាU �បៀaយី។

iii

Page 6: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

មូលន័យសបៀង្ខ� នាបៀពល�"្ចុ�្បន�បៀនះ បៀយីងសបៀង្ក�បៀkីញថ្នា ព�៌មានវទិ្យាមានការរ 8ក"បៀប្រាមីន1ួរបៀអាយក�់សមាl ល ់ បៀដ្ឋាយបៀkីញពីអ�>ប្រា�បៀ|ជន៍និង1ុKសម្ប��ិបៀr្សងៗរ�ស់ប្រា�ព័ន្ធព�៌មានវទិ្យា បៀទី�បៀ_ី̀បៀអាយ�ណា្ដ បៀ2ជនីយដ្ឋា4 ន អងlការនិងសា> �័នបៀr្សងៗចា�់អារម្មK៍|~ ងខាU ងំ បៀដ្ឋាយសារវាr្ដល់នូវ2ពរហ័សទាន់"ិ� � សុប្រាកឹ�2ពនិងប្រា�សិទ្ធិ2ពខ្ពស់សំរា�់�ំបៀរ 8តាម�ប្រាមវូការអែដលពួកបៀ1"ង់�ន ។ ជាងបៀនះបៀuបៀទ�� ការសិក្សាប្រាសាវប្រាជាវបៀលីប្រា�ព័ន្ធប្រា1�់ប្រា1ងបៀនះជួយបៀ_ី̀បៀអាយប្រាកមុបៀយីងខ្ញុំទទួល�ននូវ"ំបៀKះដឹងn្មីៗ សំរា�់ពប្រាងីក"ំបៀKះដឹងអែដល�នសិក្សាកនUងមក បៀដីម្ីប"ងប្រាកងជាបៀស�វបៀ�សំរា�់បៀអាយនិស្សិ�ជំនាន់បៀប្រាកាយអា"មានលទ្ធ2ពបៀ_ី̀ការសិក្សា�ន្ដបៀទ�� ។ បៀទាះ�ីជាការសិក្សាប្រាសាវប្រាជាវបៀនះទទួល�នបៀជា1ជ័យក៏បៀដ្ឋាយ ក៏បៀ�អែ�មាន"ំនុ"ខ`ះខា�ជាពំុខាន ដូ"បៀនះប្រាកមុបៀយីងខ្ញុំរង់ចាទំទួលនូវការរះិ1ន ់ អែកលំអពីសំណាក់បៀLកសាប្រាស្ដចារ្យ និងមិ��និស្សិ�ទាងំអស់ បៀដីម្ីបសា> �នាបៀអាយការសិក្សាប្រាសាវប្រាជាវបៀនះកាន់អែ�ល ្អ សំរា�់ទុកជាសា� ម្លៃដបៀអាយនិស្ិស�ជំនាន់បៀប្រាកាយសិក្សា�ន�បៀទ��។

iv

Page 7: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

តារាង"ំKងបៀជីង ទំព័រតារាងទី១: �ងាs ញពី customers _tbl.........................................................35តារាងទី២: �ងាs ញពី categories_tbl..........................................................36តារាងទី៣: �ងាs ញពី expenses_tbl...........................................................36តារាងទី៤: �ងាs ញពី groups_tbl................................................................36តារាងទី៥: �ងាs ញពី permissions_tbl.......................................................36តារាងទី៦: �ងាs ញពី products_tbl.............................................................37តារាងទី៧: �ងាs ញពី sale_tbl....................................................................37តារាងទី៨: �ងាs ញពី sales_item_tbl..........................................................38តារាងទី៩: �ងាs ញពី units_tbl...................................................................38តារាងទី១០: �ងាs ញពី users_tbl................................................................38

vi

Page 8: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

រ�ូ2ព"ំKងបៀជីង ទំព័ររ�ូ2ពទី១: �ងាs ញពីប្រា�ព័ន្ធព�៌មាន..................................................................5រ�ូ2ពទី២: �ងាs ញពីប្រា�7ពទិន�ន័យ..................................................................6រ�ូ2ពទី៣: Syntax ក�ុងការសរបៀសរ2សា HTML.............................................9រ�ូ2ពទី៤: �ងាs ញពី Sytax រ�ស់ CSS........................................................12រ�ូ2ពទី៥ : ការ�ងាs ញពី Syntax រ�ស់ Javascript........................................13រ�ូ2ពទី៦: ការ�ងាs ញពី Syntax រ�ស់ Jquery...............................................14រ�ូ2ពទី៧: ការ�ងាs ញពី Syntax រ�ស់ Ajax AJAX បៀប្រា�ីប្រា�ស់............................15រ�ូ2ពទី៨: ការ�ងាs ញពី Syntax រ�ស់ Bootstrap.........................................17រ�ូ2ពទី៩ :�ងាs ញពី Sytax រ�ស់ PHP.........................................................19រ�ូ2ពទី១០: �ងាs ញពីផ្ទា្ទ ងំ PHPMyadmin....................................................20រ�ូ2ពទី១១: ទំនាក់ទំនងរវាង Client និង Web Sever បៀដ្ឋាយបៀប្រា�ី PHP...................26រ�ូ2ពទី១២៖ តារាងបៀពលបៀវL1បៀប្រាមាងសារណា..................................................33រ�ូ2ពទី១៣៖ រ"នាសម្ព័ន្ធម្លៃនការប្រាសាវប្រាជាវ.........................................................33រ�ូ2ពទី១៤: �ងាs ញពីContext Diagram of Dim Sum Emperor System....36រ�ូ2ពទី១៥ :�ងាs ញពី Diagram Level 0..........................................................36រ�ូ2ពទី១៦ :�ងាs ញពី Physical Database ម្លៃនប្រា�ព័ន្ធn្មី...................................37រ�ូ2ពទី១៧៖ �ងាs ញពី Form Login...........................................................40រ�ូ2ពទី១៨៖ �ងាs ញពី Form Dashboard...................................................41រ�ូ2ពទី១៩៖ �ងាs ញពី Form Product........................................................41រ�ូ2ពទី២០៖ �ងាs ញពី Form ListProduct..................................................42រ�ូ2ពទី២១៖ �ងាs ញពី Form ProductDetail..............................................42រ�ូ2ពទី២២៖ �ងាs ញពី Form Categories..................................................43រ�ូ2ពទី២៣៖ �ងាs ញពី Form Customers..................................................43រ�ូ2ពទី២៤៖ �ងាs ញពី Form Users...........................................................44រ�ូ2ពទី២៥៖ �ងាs ញពី Form ListUser.......................................................44រ�ូ2ពទី២៦៖ �ងាs ញពី Form POS Sale.....................................................45រ�ូ2ពទី២៧៖ �ងាs ញពី Form Expenses Reports.......................................45រ�ូ2ពទី២៨៖ �ងាs ញពី Form Sales Reports..............................................46

vii

Page 9: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

អក្សរកា�់DBMS = Database Management SystemDFD = Data Flow DiagramDML = Data Manipulation LanguageGUI = Graphic User InterfaceIS = Information SystemIT = Information TechnologySDLC = System Development Life CycleSQL = Structure Query LanguageOOP = Object Oriented Programming API = Application Programming LanguageY = YesPK = Primary KeyFK = Foreign Key

viii

Page 10: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

បៀស"ក�ីបៀr្ដីម

Page 11: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

១. បៀស"ក្ដីបៀr្ដីម១.១ លំនាបំៀដីម

ព�៌មានវទិ្យាកាន់អែ�មានការរ 8ក"ំបៀរ 8នពីមួយម្លៃnoបៀuមួយម្លៃno 1ួរបៀអាយក�់សំគ្នាល់ អែដល�ណា្ដប្រា�បៀទសបៀr្សងៗ បៀ�បៀលីសកលបៀLកប្រា�វូការជាចា�ំ"់សំរា�់�ំបៀពញ �ប្រាមវូការបៀr្សងៗ អែដលខUួន"ង់�ន។ វាមាន�ួនាទី|~ ងសំខាន់ក�ុងការ អ7ិវឌ្ឍន៍ប្រា�បៀទសជា�ិបៀអាយមានការរ 8ក"បៀប្រាមីន និងវវិ��ន៍បៀuមុខជានិ"្ចនិរន�ន៍។ ជាពិបៀសសបៀ�ីបៀយីងងាកមកបៀមីលប្រា�បៀទស កម្ពុជាវញិបៀយីងសបៀង្ក�បៀkីញថ្នា ការបៀប្រា�ីប្រា�ស់ប្រា�ព័ន្ធព�៌មានវទិ្យាមានបៀស្ទីរប្រា1�់វស័ិយទាងំអស់ទាងំក�ុង អងlការ សា> �័ន សហប្រាគ្នាស _នាគ្នារ រាជរដ្ឋា4 7ិ�លនិង ប្រាកមុហុ៊នបៀr្សងៗ ពីបៀប្រាពាះវាជួយសប្រាមលួបៀអាយការប្រា��ិ���ិការងារមានដំបៀKីរការបៀល�ន "ំបៀKញបៀពលបៀវL និងមានប្រា�សិទ្ធ2ពខ្ពស់ជាងការសរបៀសរ របឺៀប្រា�ីប្រា�ស់បៀដ្ឋាយម្លៃដ។ បៀ�បៀ2ជនីយដ្ឋា4 ន ឌីមសាអំែអមបៀ7ីបៀរ 8 (DIM SUM EMPEROR) មានr្ដល់បៀសវាកម្មដល់អ�ិnិជនដូ"ជាលក់ បៀ7សជ្ជៈ ប្រាសា និងមsូមអាហារបៀr្សងៗ ជាបៀប្រា"ីន។ ជាក់អែស្ដងរាល់រ�យការK៍ម្លៃនការប្រា1�់ប្រា1ងទំនិញបៀr្សងៗ ប្រា�វូ�នបៀរ��"ំបៀaងីបៀដ្ឋាយម្លៃដបៀដ្ឋាយបៀប្រា�ីប្រា�ស់កម្មវ_ីិ Ms.Word និង Ms.Excel សំរា�់ការបៀរ��"ំអែ��~ុបៀណា្ណ ះជាបៀហ�ុបៀ_ី̀បៀអាយការបៀរ��"ំរ�យការK៍មិនទាន់មានប្រា�សិទ្ធ2ពបៀ�បៀaយី។

បៀដ្ឋាយពិនិ�្យបៀkីញនូវ�ញ្ញាs ទាងំបៀនះបៀទី�ប្រាកមុបៀយីងខ្ញុំ�ន �បៀង្កី�នូវប្រា�ព័ន្ធn្មីមួយអែដលមានបៀp្ម ះថ្នា ប្រ�ព័ន្ធប្រ��់ប្រ�ងការលក់រ�ស់ភោ�ជនីយដ្ឋា� ន (DIM SUM EMPEROR Management System) អែដលr្ដល់នូវ2ពងាយប្រាសលួ និងជួយសប្រាមលួដល់ការ ប្រា1�់ប្រា1ងបៀលីទិន�ន័យ និងរ�យការK៍៍បៀr្សងៗ បៀ�បៀ2ជនីយដ្ឋា4 នបៀនះជំនួសបៀអាយការបៀប្រា�ីប្រា�ស់អែដលបៀ_ី̀បៀaងីបៀដ្ឋាយម្លៃដពីមុន។១.២ "ំបៀណាទ�ញ្ញាs

បៀដ្ឋាយសបៀង្ក�បៀkីញថ្នាបៀ�បៀ2ជនីយដ្ឋា4 ន ឌំីសាអំែអមបៀ7ីបៀរ 8 មាន�ញ្ញាs បៀr្សងៗអែដលជួ�ប្រា�ទះប្រា�ចាមំ្លៃnoដូ"ជា៖

ពិ�កប្រា1�់ប្រា1ង"ំនួនទំនិញអែដលរក្សាទុកក�ុងឃ្លាU ងំ "ំនាយបៀពលបៀប្រា"ីនក�ុងការអែសង̀រកទំនិញ ពិ�កបៀ_ី̀រ�យការK៍លក់ ពិ�កបៀ_ី̀រ�យការK៍ប្រា�ចាអំែខនិងប្រា�ចាឆំ្នា� ំ ពិ�កប្រា1�់ប្រា1ង"ំនួនអ�ិnិជន(អ�កn្មីរអឹ�កចាស់) ពិ�កប្រា1�់ប្រា1ងការកម្ម~ង់ទំនិញពីអ�ិnិជន ពិ�កបៀ"ញវក័ិយ�័ប្រា�ដល់អ�ិnិជន(សរបៀសរបៀដ្ឋាយម្លៃដ)

១.៣ បៀគ្នាល�ំKងម្លៃនការប្រាសាវប្រាជាវបៀដ្ឋាយបៀkីញពី�ញ្ញាs ស្ម1ុសា្ម ញទាងំឡាយអែដលមាន បៀ�ក�ុងបៀ2ជនីយដ្ឋា4 ន បៀទី�ប្រាកមុសារ

ណាបៀយីងខ ្ញុំ មាន�ំKង�បៀង្កី�ជាប្រា�ព័ន ្ធ Database n្មីមួយអែដលមានបៀp្ម ះថ្នា DIM SUM EMPEROR Management System (DSMS) អែដលជួយសប្រាមលួ និងកា�់�ន>យ�ញ្ញាsស្ម1ុសា្ម ញបៀr្សងៗអែដលមានបៀ�ក�ុងបៀ2ជនីយដ្ឋា4 នដូ"ជា៖

�បៀង្កី�ប្រា�ព័ន្ធសុវ�>ិ2ពបៀដ្ឋាយកំន�់ការបៀប្រា�ីប្រា�ស់រ�ស់អ�កបៀប្រា�ីប្រា�ស់ ងាយប្រាសលួអែសង̀រកទំនិញ�នឆ្នា�់រហ័ស ប្រា1�់ប្រា1ងការបៀ_ី̀រ�យការK៍លក់ ប្រា1�់ប្រា1ងរ�យការK៍ប្រា�ចាអំែខនិងប្រា�ចាឆំ្នា� ំ ប្រា1�់ប្រា1ងបៀលីអ�ិnិជន ប្រា1�់ប្រា1ងការបៀ"ញវក័ិយ�័ប្រា�បៀ�បៀពលអ�ិnិជនទិញទំនិញ

1

Page 12: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

១.៤ ទំហំនិងអែដនកំK�់ម្លៃនការប្រាសាវប្រាជាវបៀ�ក�ុងបៀគ្នាល�ំKងអែដល�នបៀលីកបៀaងីខាងបៀលី1 ឺ �នកំK�់ការប្រា1�់ប្រា1ងបៀuបៀលីប្រា�ព័ន្ធ

សុវ�>ិ2ពរ�ស់អ�កបៀប្រា�ីប្រា�ស់ប្រា1�់ប្រា1ង ទំនិញក�ុងឃ្លាU ងំប្រា1�់ប្រា1ងអ�ិnិជនទិញ ទំនិញប្រា1�់ប្រា1ងវក័ិយ�័ប្រា� និងការប្រា1�់ប្រា1ងបៀr្សងៗបៀទ��បៀដ្ឋាយបៀប្រា�ីប្រា�ស ់ កម្មវ_ីិ MySql (Back End) បៀដីម្ីបរក្សាទុកទិន�ន័យម្លៃនការក�់ប្រាតា និង SubLime Text 3 សំរា�់សរបៀសរកូដ ។

បៀដ្ឋាយពិនិ�្យបៀkីញថ្នាបៀ�បៀ2ជនីយដ្ឋា4 ន ឌីមសាអំែអម7ឺបៀរ 8 ទាងំមូល�នជួ�ប្រា�ទះនូវ�ញ្ញាsជាបៀប្រា"ីន អែ�ប្រាកមុនិស្សិ�បៀយីងខ្ញុំបៀលីកយក"ំKុ"ខាងបៀលីមកបៀដ្ឋាះប្រាសាយ អែ��~ុបៀណា្ណ ះបៀប្រាពាះបៀដ្ឋាយសារអែ��ញ្ញាs �បៀ"្ចកបៀទស និង"ំបៀKះដឹងរ�ស់ប្រាកមុបៀយីងខ្ញុំបៀ�មានកប្រាមិ�បៀ�បៀaយី ។១.៥ ពន្យល់ពាក្យ1នUឹះ

Back End: ជាកម្មវ_ីិមួយអែដលបៀប្រា�ីសប្រាមា�់រក្សាទុក (Store) ទិន�ន័យ ។ Front End: ជាកម្មវ_ីិមួយអែដលអ�កបៀប្រា�ីប្រា�ស ់ បៀប្រា�ីសប្រាមា�់�ញ្ចូលទិន�ន័យ និង

�ងាs ញទិន�ន័យ ។ Data: 1ឺជាទិន�ន័យអែដលទទួល�នពីប្រា�7ពបៀr្សងៗ Interface: ជាផ្ទា្ទ ងំសប្រាមា�់បៀអាយ User និង Program មានទំនាក់ទំនងគ្នា� Input: ជាអី̀ៗអែដលប្រា�វូ�ញ្ចូលបៀuក�ុងប្រា�ព័ន្ធ Output: ជាទិន�ន័យអែដល�នមកពីប្រា�ព័ន្ធដូ"ជា Report ជាបៀដីម ។ SQL Server : SQL (Structure Query Language) Server 1ឺជា

Client/Server Relational Database Management System (RDBMS) អែដលជាrលិ�rលរ�ស់ប្រាកមុហុ៊ន Microsoft Cooperation។

2

Page 13: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

រលឹំកប្រាទឹស្ដី

Page 14: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

២. រលឹំកប្រាទឹស្ដីតាមរយះការសិក្សាកនUងមក ការរលឹំកប្រាទឹស្ដីជាអែr�កមួយដ៏សំខាន់�ំrុ�អែដលមិនអា"ខ̀ះ

�ន។ បៀដ្ឋាយអែr្អកបៀuបៀលីប្រាទឹស្ដីបៀr្សងៗ r្ដល់នូវ2ពងាយប្រាសលួដល់អ�កអាន ងាយយល់អំពីអ�>ន័យរ�ស់សារណាអែដលពាក់ព័ន្ធនឹងការកសាងប្រា�ព័ន ្ធ និងpនដល់ការបៀជា1ជ័យម្លៃនការអនុវ��ប្រា�ព័ន្ធទាងំមូល។ ម្យា�ងវញិបៀទ�� ការប្រាសង់ទិន�ន័យទាងំឡាយអែដលពាក់ព័ន្ធនឹងការវ2ិ1ទិន�ន័យ និងការ�បៀង្កី�1បៀប្រាមាង (Analysis And Design System) អា"�បៀង្កី��នជា System Application អែដលមានលក្ខKៈជា Database ។ ទន្ទឹមនិងបៀនះវាអា"បៀ_ី̀ឲ្យការអនុវ��ន៍បៀuបៀលីប្រា�ព័ន្ធប្រា�ក�បៀដ្ឋាយប្រា�សិទ្ធិ2ពនិងr្ដល់នូវ2ពងាយប្រាសលួតាម�ប្រាមវូការរ�ស់អ�កបៀប្រា�ីប្រា�ស់។

កតា� "ម្បង�ំrុ� 1ឺការប្រា�មូលទិន�ន័យទាងំអស់អែដលទាក់ទងនឹងប្រា�ធាន�ទ រ�ស់និបៀក្ខ��ទ អែដលជា1នUឺះសំខាន់ម្លៃនការប្រាសាវប្រាជាវ បៀហីយr្សារ2្ជ �់បៀuនឹងការអនុវ��ជាក់អែស្ដងក�ុងការដកប្រាសង់មកសរបៀសរ។ ដូ"បៀនះ1ំរបូៀr្សងៗ អែដល�នដកប្រាសង់ទិន�ន័យមានដូ"ខាងបៀប្រាកាម៖២.១ សញ្ញា� Kទូបៀuម្លៃនប្រា�ព័ន្ធព�៌មាន២.១.១ ប្រា�ព័ន្ធ (System)

ប្រា�ព័ន ្ធ (System) ជារ"នាសម្ព័ន្ធអែដលបៀកី�បៀaងីពីធា�ុr្ំសបៀr្សងៗ អែដលរមួ�ញ្ចូលបៀដ្ឋាយ Software, Mechanical, Electrical and Electronic Hardware និងការប្រា��ិ���ិបៀដ្ឋាយមនុស្សបៀដីម្ីបសបៀប្រាម"នូវបៀគ្នាល�ំKងជាក់Lក់មួយ ។២.១.២ ព�៌មាន

ព�៌មាន (Information) ជាទិន�ន័យអែដលប្រា�វូ�នបៀរ��"ំ r្ដល់នូវ2ពប្រា�បៀសីរជាងមុន និង�ងាs ញក�ុងទប្រាមង់មួយ អែដលr្ដល់នូវ2ពងាយប្រាសលួក�ុងដំបៀKីរការ ម្លៃនសបៀប្រាម""ិ��ឬក�ុងសកម្ម2ពមួយ"ំនួនបៀទ�� ។

ព�៌មាន (Information) មាន1ុK2ពកាលណាវាបៀr្ទ�ងផ្ទា្ទ �់លក្ខខK្ឌដូ"ខាងបៀប្រាកាម៖ 2ពប្រា�ឹមប្រា�វូ (Accuracy) មាន7ស្ដុតាង�ញ្ញា្ជ ក់ថ្នាប្រា�ឹមប្រា�វូ (Verifiability) ទាន់បៀពលបៀវL (Timeliness) បៀពញបៀលញ (Completelyness) r្ដល់ទំនាក់ទំនងបៀuនឹងrលប្រា�បៀ|ជន៍ណាមួយ (Relevance)

២.១.៣ ប្រា�ព័ន្ធព�៌មាន

រ�ូ2ពទី១: �ងាs ញពីប្រា�ព័ន្ធព�៌មាន

4

Page 15: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

ប្រា�ព័ន្ធព�៌មាន (Information Technology) ជាការរមួ�ញ្ចូលគ្នា� រវាងអែr�ករងឹ (Hardware) អែr�កទន់ (Software) និងឧ�ករទូរ1មនា1មន ៍ (Telecommunication equipments) បៀដីម្ីបរក្សាទុក (Store) ទាញយក (Retrieve) �ញ្ជូន (Transmit) និងបៀរ��"ំទិន�ន័យ (Manipulate Data) ។២.១.៤ ទិន�ន័យ

ទិន�ន័យ (Data) ជា Raw Material អែដលមិនទាន់មានអ�>ន័យប្រា1�់ប្រាគ្នាន់ សប្រាមា�់បៀប្រា�ីប្រា�ស់ក�ុងការ�ំបៀពញការងារ។ វានឹង�អែមUងបៀuជាព័�៌មាន (Information) អែដលអា"បៀប្រា�ីប្រា�ស់បៀ�ក�ុង Information System។

ប្រា�7ពម្លៃនទិន�ន័យ (Data) មានដូ"ជា៖ Documents: 1ិ�បៀuបៀលីរ�យការK៍ (Report), សំKំុម្លៃនទប្រាមង់អែ���ទ

(Application Form), តារាងអែដលពាក់ព័ន្ធនឹងការងារ (Table) បៀស�វបៀ�ក�់ប្រាតាបៀr្សងៗ (Notes) និង ឯកសារបៀr្សងៗអែដលពាក់ព័ន្ធនឹងការងារ(Input Document) ជាបៀដីម។

Computer Media: 1៍ឺជាទិន�ន័យបៀr្សងៗអែដលទទួល�នតាមរយៈ�ណា្ដ ញr្សព̀r្សាយ (Media) បៀr្សងៗដូ"ជា៖ Disc Files, Tape Files…បៀដ្ឋាយបៀប្រា�ីប្រា�ស់ Computer System។

People: ជាអ�កអែដល"ូលរមួក�ុងការបៀប្រា�ីប្រា�ស់ប្រា�ព័ន ្ធ អែដលទាក់ទង នឹង ការ�ំបៀពញការងារប្រា�ចាមំ្លៃno។

រ�ូ2ពទី២: �ងាs ញពីប្រា�7ពទិន�ន័យ

២.១.៥ ប្រា�ព័ន្ធប្រា1�់ប្រា1ងទិន�ន័យ (Database Management System)ប្រា�ព័ន្ធប្រា1�់ប្រា1ងទិន�ន័យ (Database Management System) 1ឺជាកម្មវ_ីិមួយ

អែដលអនុញ្ញា� �ិបៀអាយអ�កបៀប្រា�ីប្រា�ស ់ Define, Manipulate និង Process ទិន�ន័យបៀ�ក�ុង Database បៀដីម្ីបបៀអាយបៀយីងអា"�បៀង្កី��នជាព័�៌មានដ៏មានន័យ (Meaning Full Information) ។ វាជា Interface រវាងអ�កបៀប្រា�ីប្រា�ស់ ឬអ�កសរបៀសរកម្មវ_ិ ី (Application Programmer) និង Database (ទិន�ន័យ) ។មុខងារមួយ"ំនួនក�ុងការបៀប្រា�ីប្រា�ស់ប្រា�ព័ន្ធប្រា1�់ប្រា1ងទិន�ន័យមានដូ"ជា ៖

r�ល់ជាជំនួយក�ុងការសបៀប្រាម""ិ��

5

Page 16: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

អ�កប្រា1�់ប្រា1ងនិងអ�កវ2ិ1ទាញយកព�៌មានអែដលប្រា�វូ�ន�បៀង្កី�(Generated) បៀដ្ឋាយ DBMS សប្រាមា�់ការបៀសីុ�អបៀង្ក� វ2ិ1 និងបៀ_ី̀ការសបៀប្រាម""ិ��

អ�កបៀប្រា�ីប្រា�ស់�ញ្ចូល (Input) អែកអែប្រា� (Update) និងប្រា��ិ�� �ិ (Process) ទិន�ន័យអែដល�បៀង្កី�ជាព័�៌មានចា�ំ"់សប្រាមា�់អ�កប្រា1�់ប្រា1ង ឬអ�កបៀប្រា�ីប្រា�ស់បៀr្សងបៀទ�� ឬអែr�កបៀr្សងបៀទ�� ។

សមាសធា�ុប្រា�ព័ន្ធប្រា1�់ប្រា1ងទិន�ន័យមានដូ"ខាងបៀប្រាកាម ៖– Software: 1ឺជាសំKំុម្លៃនកម្មវ_ីិអែដលបៀប្រា�ីសប្រាមា�់ប្រា1�់ប្រា1ង និងប្រា��ួពិនិ�្យ

Database ទាងំមូលអែដលរមួមាន DBMS Software, Operating System, Network Software សប្រាមា�់ Share ទិន�ន័យបៀអាយ Users បៀប្រា�ីប្រា�ស់ និង Application Program សប្រាមា�់ដំបៀKីរការទិន�ន័យបៀuកាន់ DBMS ។

– Hardware: រមួ�ញ្ចូលនូវសំKំុរ�ស់ Physical Electronic Devices ដូ"ជា Computers, I/O Devices, Storage Devices, etc., អែដលr្ដល់នូវ Interface រវាង Computers និង Real world Systems។

– Data: បៀ�ក�ុងប្រា�ព័ន្ធប្រា1�់ប្រា1ងទិន�ន័យ (DBMS) ប្រា�វូ�នប្រា�មូលr្ដុំ (Collect), រក្សាទុក (Store) និងដំបៀKីការ (Process) ទិន�ន័យ បៀហីយបៀ�ក�ុង Database មាន Data "ំនួនពីរ1 ឺ Actual or Operational Data និង Metadata

– Procedures: ទាងំបៀនះ1ឺជាការអែKនាបំៀr្សងៗ បៀដីម្ីបប្រា��់ពីរបៀ���បៀប្រា�ី DBMS និងការបៀរ��"ំដំបៀKីរការមូលដ្ឋា4 នទិន�ន័យបៀដ្ឋាយបៀប្រា�ីរវាង User-submitted Application Program និង Queries អែដលដំបៀKីរការបៀដ្ឋាយផ្ទា្ទ ល់បៀuកាន ់ Database ។ វាមានមុខងារ�អែមUងដំបៀKីរការរ�ស់ (Documented Procedures) សប្រាមា�់អែKនាអំ�កបៀប្រា�ីប្រា�ស ់ អំពីដំបៀKីរការ និងការប្រា1�់ប្រា1ងប្រា�ព័ន្ធ។

– Database Access Language: វាប្រា�វូ�នបៀប្រា�ីបៀដីម្បីដំបៀKីរការទិន�ន័យបៀuកាន ់ Database បៀដីម្ីប�ញ្ចូលនូវទិន�ន័យn្មីៗ អែកអែប្រា�បៀuបៀលីទិន�ន័យអែដលមានប្រាសា�់ ឫក៏ទាញយកទិន�ន័យអែដលប្រា�វូការព ី Database ។ អ�កបៀប្រា�ីប្រា�ស់អា"សរបៀសរពាក្យ�ញ្ញា្ជ អែដលសមប្រាស�(Appropriate Commands) បៀដីម្ីប�បៀង្កី� និង�ងាs ញលទ្ធrលតាម�ប្រាមវូការអែដលខUួន"ង់�ន ។

– Query Processor: វាផ្ទាU ស់��ូរសំKួរអ�កបៀប្រា�ីបៀuជាបៀស"ក�ីអែKនាកំប្រាមិ�ទា� (Low Level Instruction) បៀនះជាការអានសំKួររ�ស់អ�កបៀប្រា�ីបៀហីយ�កអែប្រា�វាបៀuជាប្រា��ិ���ិការ អែដលមានប្រា�សិទ្ធ2ពក�ុងទប្រាមង់មួយអែដលមានសម�>2ព

បៀដីម្ីប�ញ្ជូនបៀuកម្មវ_ីិប្រា1�់ប្រា1ងទិន�ន័យតាមបៀពលបៀវLអែដលប្រា�វូដំបៀKីរការ។

– Run Time Database Manager: បៀពលខUះវាសំបៀ�បៀuបៀលី Database Control System អែដលជា Central Software Component ម្លៃន DBMS អែដលជា Interface រវាង User-submitted Application Program និង Queries អែដលដំបៀKីរការបៀដ្ឋាយផ្ទា្ទ ល់បៀuកាន់ Database ។ វាមានមុខងារ�អែមUងដំបៀKីរការរ�ស់ User Queries អែដលr្ដល់នូវការប្រា��ួពិនិ�្យ និងអែnទាបំៀuបៀលី Data បៀអាយមានលក្ខKៈជា Consistency, Integrity និង Security ក�ុងប្រា�ព័ន្ធ ។

6

Page 17: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

– Data Manager: ជា Cache Manager អែដលទទួលខុសប្រា�វូបៀuបៀលីការបៀប្រា�ី Data បៀ�ក�ុង Database អែដលr្ដល់នូវការ Recovery បៀuកាន់ System នូវបៀពលអែដលដំបៀKីរការមិនទទួល�នបៀជា1ជ័យ ។

– Database Engine: ជា Core Service សប្រាមា�់ រក្សាទុក ដំបៀKីរការនិងបៀ_ី̀បៀអាយទិន�ន័យមានសុវ�>ិ2ព អែដលr្ដល់នូវការប្រា��ួពិនិ�្យ|~ ងឆ្នា�់រហ័សបៀuបៀលី ការប្រា��ិ���ិបៀuបៀលីដំបៀKីរការម្លៃនអាស័យដ្ឋា4 ន (Address) បៀuតាម�ប្រាមវូការម្លៃនការបៀប្រា�ីប្រា�ស ់ Application បៀហីយវាក៏បៀប្រា�ីសប្រាមា�់�បៀង្កី� Relational Database សប្រាមា�់ Online Transaction Processing រក៏ឺ Online Analytical Processing Data។

– វាជា�K្ដុំ ម្លៃន Read-Only Table និង Views អែដលr្ទុកនូវព�៌មានបៀr្សងៗគ្នា� ម្លៃនទិន�ន័យ (Data) បៀ�ក�ុង Enterprise បៀដីម្ីបធានាបៀអាយទិន�ន័យបៀ�ក�ុង Database មានលក្ខKៈស្ដង់ដ្ឋារបៀuតាមការកំK�់រ�ស ់ Data Dictionary។

– Report Writer: សំបៀ�បៀuបៀលី Report Generator អែដលជាកម្មវ_ីិមួយសប្រាមា�់ដកប្រាសង់ព�៌មានពីឯកសារមួយ របឺៀប្រា"ីនបៀដីម្បី�ងាs ញព�៌មានបៀuតាម Specified Format ។ បៀហីយ Report Writer 21បៀប្រា"ីនអនុញ្ញា� �បៀអាយអ�កបៀប្រា�ីប្រា�ស់បៀប្រាជីសបៀរ 8ស Fields ម្លៃន Record បៀuតាមលក្ខខK្ខ អែដលពួកបៀ1"ង់�ន ។

២.១.៦ TransactionTransaction ជាលំដ្ឋា�់ម្លៃនប្រា��ិ���ិការអែដល�នអនុវ��ជា Single Logical Unit

of Work បៀហីយ Properties ម្លៃន Single Logical Unit of Work មានដូ"ជា៖ Atomicity: 1ឺជាប្រា��ិ���ិការ�ូ"មួយម្លៃនការងារ បៀ�ក�ុងប្រា��ិ���ិការបៀនះរាល់ទិន�ន័យ

ទាងំអស់អា"អែកអែប្រា� រមិឺនអែកអែប្រា�អាប្រាស័យបៀលីដំបៀKីរការអែដលវា�នប្រា��ិ���ិ ។ Consistency: បៀ�បៀពល�ញ្ច�់ប្រា��ិ���ិការ ទិន�ន័យទាងំអស់ប្រា�វូទុកបៀអាយមាន

បៀស>រ2ព ។ បៀ�ក�ុង Relational Database រាល់"្បា�់ (Rule) ទាងំអស់ បៀ�បៀពលប្រា��ិ���ិការបៀ_ី̀ការអែកអែប្រា� វារក្សាទុកទិន�ន័យបៀអាយមាន2ពប្រា�ឹមប្រា�វូរហូ��ញ្ច�់ដំបៀKីរការម្លៃនការប្រា��ិ���ិបៀនះ ។

Isolation: ការបៀរ��"ំទិន�ន័យសប្រាមា�់ដំបៀKីរការ មុននឹងប្រា��ិ���ិការប្រា�វូ�នអែកអែប្រា� រក៏ឺបៀរ��"ំទិន�ន័យ�នា្ទ �់ពីដំបៀKីរការជាបៀលីកទីពីរប្រា�វូ�ន�ញ្ច�់�~ុអែន្ដ វាមិន�នបៀរ��"ំប្រាស�បៀពលកំពុងប្រា��ិ���ិការបៀនាះបៀទ ។ ប្រា��ិ���ិការអែដលបៀ_ី̀ការប្រាស�បៀពលអែ�មួយ ទិន�ន័យអែដល�ន�ងាs ញប្រា�វូអែ�ដូ"បៀuនឹងប្រា��ិ���ិការដំ�ូងមុននឹងវា�ញ្ច�់ដំបៀKីរការ ។

Durability: �នា្ទ �់ពីប្រា��ិ���ិការ�ន�ញ្ច� ់ rល�~ះពាល់រ�ស់វាមានជា�់ជានិ"្ចបៀ�ក�ុងប្រា�ព័ន ្ធ បៀហីយការអែកអែប្រា�បៀ�អែ��ន�បៀកី�មានបៀaងីបៀ�បៀពលអែដលប្រា�ព័ន្ធជួ�នូវ�ញ្ញាs រក៏ឺមានកំហុសឆlងបៀកី�បៀaងី។

២.១.៧ �បៀ"្ចកវទិ្យាព�៌មាន (Information Technology) �បៀ"្ចកវទិ្យាព�៌មាន (Information Technology) ជាការប្រា"�"់�ញ្ចូលគ្នា� រវាង

អែr�កទន់ (Software) និងប្រា�ព័ន្ធទូរ1មនា1មន ៍ (Telecommunication System) ប្រា��ិ���ិការមុខជំនួញ (Business Operation) បៀដីម្ីបបៀអាយrលិ�2ពកាន់អែ�ប្រា�បៀសីរ និងជួយដល់អ�កប្រា1�់ប្រា1ងក�ុងការសបៀប្រាម""ិ��rងអែដរ ។

7

Page 18: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

២.២ ការបៀប្រា�ីប្រា�ស់2សាក�ុងការ�បៀង្កី�ប្រា�ព័ន្ធ២.២.១ អី̀បៀuជា HTML?

HTML 1ឺជា2សាមួយសំរា�់បៀ_ី̀ការ�បៀង្កី� Web Page ។ ពាក្យបៀពញរ�ស់ HTML 1ឺ HyperText MarkUp Language។ HTML មិនអែមនជា Program Language បៀនាះបៀទ វា1ឺជា MarkUp Language។ MarkUp Language 1ឺជាសំKំុម្លៃន MarkUp tags ឬ tags (ឧទាហរK៍ ៖ <p> </p>, <b> </b>) ។ HTML បៀប្រា�ីប្រា�ស់ MarkUp tags បៀដីម្ីប�បៀង្កី� Wep Page។

រ�ូ2ពទី៣: Syntax ក�ុងការសរបៀសរ2សា HTML

HTML (HyperText MarkUp Language) 1ឺជា2សាសប្រាមា�់�បៀង្កី� ទំព័រឯកសារបៀr្សងៗបៀស�វបៀ�បៀអa"ិប្រា�និូ" (Ebook) និងសប្រាមា�់�បៀង្កី�បៀ1ហទំព័របៀ�ក�ុងអិុនបៀ_ីបៀK�។ វាពន្យល់�កប្រាសាយអំពីព័�៌មាននានាបៀ�ក�ុងឯកសារ។ HTML ជា2សា1ំរ ូនិងជា2សាមានប្រា�សិទិ្ធ2ពខ្ពស់អែដលប្រា�វូ�នបៀ1បៀប្រា�ីប្រា�ស់|~ ងទូលំទូLយ បៀដីម្ីបពK៌នាអំពីបៀ1ហទំព័រ និងបៀ�អែ�ប្រា�វូ�នបៀ1បៀប្រា�ីប្រា�ស់សប្រាមា�់អន�រ2សាបៀ�ក�ុងបៀ1ទំព័រ។

រាល់ HTML Document ទាងំអស់ប្រា�វូអែ�ចា�់បៀr�ីមបៀដ្ឋាយ <html> tag និង�ញ្ច�់បៀដ្ឋាយ </html> tag។ បៀ�ក�ុង </html> tag មាន tag ឬ Element _ំៗពីឬសំខាន់បៀទ��1ឺ:

<head> tag ប្រា�វូ�នបៀប្រា�ីបៀដីម្បីr្ទុកព័�៌មានទូបៀuអំព ី Document អែដលប្រា�វូ�នបៀ1បៀ�ថ្នា meta-information។

<body> tag ជាកអែនUងអែដលប្រា�វូ�នបៀប្រា�ីបៀដីម្ីបបៀវ"ខ្ច�់និង�ងាs ញនូវ Content រ�ស់ HTML Document។

Tag ទាងំអស់ 1ឺមានបៀp្ម ះរ�ស់វាបៀហីយបៀ�បៀពលខUះមាន2្ជ �់ជាមួយ និង Attribute មួយ"ំនួន�អែន>មបៀទ��អែដល Attribute ទាងំបៀនាះស>ិ�បៀ�"បៀនាU ះសញ្ញា� <> Tag បៀ�ីក។ សាមញ��ំrុ�ប្រា1� ់ Tag ទាងំអស ់ 1ឺវាមាន�ួនាទីដូ"បៀuនឹងបៀp្ម ះរ�ស់វា ឧទាហរK៍ ដូ"ជា Tag <head> ឬ <i> ជាបៀដីម បៀហីយក៏មាន Tag អែដលមានការពិ�ក ស្ម1ុសា្ម ញមានr្ទុកបៀ� Attribute មួយឬបៀប្រា"ីនអែដលបៀ1បៀដ្ឋាយបៀ|ងបៀuតាមស�ង់ដ្ឋារ�ស ់ HTML Tag និង បៀដ្ឋាយបៀ|ងបៀuតាមស�ង់ដ្ឋារ�ស់ HTML Tag និង Attribute មិនប្រា�កាន់អក្សរ�ូ" ឬអក្សរ_ំបៀទដូ"ជា<Head>,<head>,<HEAD> ឬ <HeaD> 1ឺវាទាងំអស់ដូ"គ្នា� និងមិនមាន

8

Page 19: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

ការអែប្រា�ប្រា�លួក�ុងការ�ងាs ញបៀ�បៀលី Web Browser។ អែ�"ំបៀពាះ XHTML ខុសពី HTML រាល់ស�ង់ដ្ឋា�"្ចុ�្បន�រ�ស ់ Tag និង Attribute 1ឺបៀប្រា�ីអក្សរ�ូ"ទាងំអស់។ សប្រាមា� ់ HTML និង XHTML �ម្លៃមU (Value) អែដល�នកំK�់បៀuឲ្យ Attribute ណាមួយអា"និងមានការប្រា�កាន់ �ួរអក្សរ_ំ ឬ�ូ" អាប្រាស័យបៀuបៀលី Web Browser និង Web Server។ បៀដ្ឋាយអែaក"ំបៀពាះ Uniform Resource Locator (URL) មានការប្រា�កាន់�ួអក្សរ_ ំ ឬ�ូ"។ Attribute អែដលស>ិ�បៀ�ជា�់បៀp្ម ះរ�ស ់ Tag នីមួយៗ បៀហីយឃ្លាU �បៀដ្ឋាយដកឃ្លាU ឬក ៏ Tag 1ឺវាមិនមាន�ញ្ញាs បៀហីយក៏ពំុចា�ំ"់1ិ�ពីលំដ្ឋា�់លំបៀដ្ឋាយរ�ស់ Attribute នីមួយៗrងអែដរ។ "ំបៀពាះ Value រ�ស ់ Attribute អែដលស>ិ�បៀ��នា្ទ �់ពីសញ្ញា� (=) អែដលបៀ��នា្ទ �់ពីបៀp្ម ះរ�ស់Attribute បៀនាះ។២.២.២ អី̀បៀuជា CSS?

CSS 1ឺជាពាក្យកា�់មកព ី Cascading Style Sheet អែដលវា1ឺជា2សាមួយប្រា�វូបៀប្រា�ីប្រា�ស់បៀដីម្បីបៀ_ី̀ការកំK�់លក្ខKៈម្លៃនការ�ងាs ញរ�ស ់ HTML Element ។ បៀដីម្ីបសិក្សាពី CSS បៀនាះអ�កសិក្សាប្រា�វូមានមូលដ្ឋា4 នប្រា1ិះរ�ស់ HTML ជាមុនសិន។ Style ជា_ម្មតា1ឺប្រា�វូ�នរក្សាទុកបៀ�ក�ុង StyleSheet (*CSS) បៀដ្ឋាយវាប្រា�វូ�ន�ញ្ចូល�អែន>មបៀ�ក�ុង HTML បៀដីម្ីបបៀ_ី̀ការបៀដ្ឋាះប្រាសាយនូវ�ញ្ញាs មួយ"ំនួយ_ំអែដល HTML មិនអា"បៀ_ី̀�ន។ "ំបៀពាះ External Style Sheet 1ឺ�នជួយសប្រាមលួ និងកា�់�ន>យការងារជាបៀប្រា"ីនបៀ�ក�ុងការ�បៀង្កី� Web Page បៀហីយវាប្រា�វូ�នរក្សាទុកបៀ�ក�ុង CSS File ។

តាមរយៈបៀស�វបៀ�បៀp្ម ះ Cascading Style Sheet, Designing For Web រ�ស់បៀLក Hakon Wium Lie និងបៀLក Bert Bos និពន្ធក�ុងឆ្នា� ំ១៩៩៩ និងបៀ1ហទំព័រ Wikipedia, The free Encyclopedia �ន�កប្រាសាយថ្នា CSS (Cascading Style Sheet) 1ឺជា2សាអែដលប្រា�វូ�នបៀ1សរបៀសរបៀaងីបៀដីម្បីបៀ_ី̀ការរ"នា និងកំK�់ទំរង់ Web Page អែដលប្រា�វូ�នបៀ1សរបៀសរបៀ�ក�ុង MarkUp Language ជាពិបៀសស1ឺបៀ�ក�ុង2សា HTML ។ CSS ប្រា�វូ�ន�បៀង្កី�បៀaងីក�ុងបៀគ្នាល�ំKងបៀ_ី̀ការអែ�ងអែ"កនូវមា�ិការម្លៃនព័�៌មាន បៀដីម្ីប�ង្កលក្ខKៈងាយប្រាសលួដល់អ�កអានបៀ�ក�ុងការអានអែដលប្រា�វូ�នបៀ1បៀ_ី̀ការកំK�់នូវធា�ុមួយ"ំនួនដូ"ជា ពK៌, ទំរង់អក្សរ, Background, និង Layout ម្លៃន Web Page ជាបៀដីម។ ការអែ�ងអែ"កបៀនះមិនប្រា�ឹមអែ�បៀ_ី̀បៀអាយងាយប្រាសលួក�ុងការអាន�~ុបៀណា្ណ ះបៀទអែnមទាងំងាយប្រាសលួដល់ការប្រា1�់ប្រា1ង ម្លៃនការ��់អែ�នបៀuបៀលីទំព័រប្រាពមទាងំអា"ទាញយកធា�ុទាងំបៀនះមកបៀប្រា�ីបៀ�បៀលី Multiple Page �នអែnមបៀទ��rង។

CSS បៀប្រា�ីសប្រាមា�់កំK�់ពីរបៀ���ម្លៃនការ�ងាs ញធា� ុ (Form) បៀ�ក�ុង Wep Page។ ប្រា�សិនណាបៀ�ីអ�កបៀប្រា�ីប្រា�ស់ម~ូដបៀ�ក�ុងកម្មវ_ីិមួយ"ំនួនដូ"ជា Microsoft Word ឬកម្មវ_ីិ Adobe In Design បៀនាះ CSS អែដលបៀប្រា�ីសប្រាមា�់រ"នាបៀ1ហទំព័រ ក៏មិនខុសគ្នា� ពីការបៀប្រា�ីម~ូដក�ុងកម្មវ_ីិទាងំបៀនាះអែដរ។ ក�ុងបៀពលបៀនាះម~ូដ (Style) 1ឺជាក្ួបន"្បា�់មួយសប្រាមា�់បៀ_ី̀ការ�ុ�អែ�ងប្រា�ង់"ំKុ"ណាមួយម្លៃនបៀ1ហទំព័រ ដូបៀ"�ះបៀហីយ Style Sheet 1ឺជា�K�ុំ ម្លៃនម~ូ�ទាងំអស់បៀនាះ។ CSS បៀ_ី̀កាជាមួយ HTML �~ុអែន� CSS មិនអែមនជា HTML បៀទវា1ឺ2សាពីរខុសប្រាសលះពីគ្នា� ។ HTML r�ល់នូវឯកសារ បៀដ្ឋាយបៀរ��"ំនូវព័�៌មានបៀuតាមអែr�កបៀr្សងៗដូ"ជា បៀស"ក�ីបៀr�ីម (Head) កថ្នាខK្ឌ (Paragraph) �ញ្ជី (List) ជាបៀដីម �~ុអែន� CSS វញិ1ឺវាបៀ_ី̀ការបៀដ្ឋាយផ្ទា្ទ ល់ (Hand in Hand) ជាមួយកម្មវ_ីិបៀ�ីកបៀ1ហទំព័របៀដីម្ីបឲ្យ HTML មានលក្ខKៈប្រាសស់សា្អ �។ បៀយីងក៏អា"�បៀង្កី�ម~ូដណាមួយបៀដីម្ីបបៀប្រា�ីជាមួយរ�ូ2ពជាឧទាហរK៍�បៀង្កី�ម~ូដមួយអែដលមាន�ប្រាមឹមរ�ូ2ពបៀuអែr�កខាងសា� មំ្លៃនបៀ1ហទំព័រព័ទ្ធជំុវញិរ�ូ2ព បៀដ្ឋាយសុ៊មមានពK៌ប្រាសស់សា្អ � បៀហីយអ�>�ទអែដលព័ទ្ធ

9

Page 20: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

រ�ូ2ពមាន1មាU �ពីរ�ូ2ព"ំនួន៥០ 7ិ"អែសល។ បៀ�បៀពលណាបៀយីង�បៀង្កី�ម~ូដមួយបៀហីយ បៀយីងអា"បៀ�វាដ្ឋាក់បៀលីអ�>�ទ "ំKងបៀជីង ឬធា�ុបៀr្សងៗបៀទ��បៀ�ក�ុងបៀ1ហទំព័រ។ឧទាហរK៍ បៀប្រាជីសបៀរ 8សយកអែr�កណាមួយម្លៃនអ�>�ទរ�ស់អ�ក បៀហីយបៀ_ី̀ការយកម~ូដមកដ្ឋាក់ឲ្យអែr�កបៀនាះ បៀអាយផ្ទាU ស់��ូរ"ំបៀពាះទំហំអក្សរ ពK៌ ប្រា�បៀ7ទ�ួអក្សរជាបៀដីម។

រ�ូ2ពទី៤: �ងាs ញពី Sytax រ�ស់ CSS

២.២.៣ អី̀បៀuជា JavaScript?JavaScript 1ឺជា Client Side Scripting Language អែដលបៀ1បៀប្រា�ីក�ុង Web

Development ជាមួយនឹង2សា HTML, CSS បៀដីម្ីប�បៀង្កី� Web Page បៀអាយមានលក្ខKៈរស់របៀវ 8ក។ វាជា2សាសំរា�់សរបៀសរកម្មវ_ីិមួយដ៏បៀពញនិយម។ មនុស្សមួយ"ំនួនមានការយល់ប្រា"លំរវាង2សា JavaScript និង Java ជា2សាអែ�មួយ �~ុអែន�ការពិ�វា1ឺជា2សាពីរបៀr្សងគ្នា� |~ ងដ្ឋា"់ប្រាសaះ 1ឺវាខុសគ្នា� ទាងំ Concept និងការ Design។ JavaScript ប្រា�វូ�ន�បៀង្កី�បៀaងីបៀដ្ឋាយបៀLក Brendan Eich បៀ�ក�ុងឆ្នា� ំ ១៩៩៥ បៀហីយវា�នកាU យជា ECMA Standard ក�ុងឆ្នា� ំ១៩៩៧។JavaScript មាន�ួនាទីដូ"ជា៖

�បៀង្កី�នូវ Message Box, Input Box, Confirm Box Validate នូវ From Field ដូ"ជាការពិនិ�្យ Blank Field បៀប្រា�ីប្រា�ស់ Status Bar បៀ_ី̀ការ1Kនា �បៀង្កី�រ�ូ2ពមាន"លនា �បៀង្កី� Drop Down Menu.........។

រ�ូ2ពទី៥ : ការ�ងាs ញពី Syntax រ�ស់ Javascript

10

Page 21: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

២.២.៤ អី̀បៀuជា JQuery?JQuery 1ឺជា Library ម្លៃន2សា JavaScript អែដលវាមានការសរបៀសរ�ិ" អែ�

បៀ_ី̀ការងារ�ន បៀប្រា"ីន (write less, do more) វាមាន2ពងាយប្រាសលួក�ុងការសរបៀសរ។ បៀ1�បៀង្កី�វាបៀaងីក�ុងបៀគ្នាល �ំKងបៀ_ី̀ឲ្យមាន2ពកាន់អែ�ងាយប្រាសលួក�ុងការបៀប្រា�ីប្រា�ស់2សា JavaScript បៀ�បៀលីបៀ1ហទំព័រ។ JQuery �បៀង្កី� Common Task ជាបៀប្រា"ីនអែដល�ប្រាមវូឲ្យមានការសរបៀសរ2សា JavaScript ជាបៀប្រា"ីន�នា្ទ �់បៀដីម្ីបដំបៀKីរការ�ន បៀហីយបៀ_ី̀ការ�ញ្ចូលកូដទាងំបៀនាះបៀ�ក�ុង Method មួយអែដលបៀយីងអា"បៀ_ី̀ការបៀ�វាយកបៀប្រា�ីប្រា�ស់�ន|~ ងងាយប្រាសលួ និងរហ័ស។ JQuery អា"បៀដ្ឋាះប្រាសាយការលំ�ករ�ស់ JavaScript �ន|~ ងងាយ អែដលវាមានសម�>2ពប្រា�អែហលនឹង Ajax អែដលបៀ1បៀអាយបៀp្ម ះថ្នា Dom Manipulation។ JQuery Library អា"មានសម�>2ពមួយ"ំនួនដូ"ជា ៖

HTML/DOM manipulation CSS manipulation HTML event methods Effects and animations AJAX Utilitiesបៀ�បៀពល�"្ចុ�្បន�បៀនះ JavaScript Framework ប្រា�វូ�នបៀ1�បៀង្កី�បៀaងីជាបៀប្រា"ីន �~ុអែន�

បៀ1សបៀង្ក�បៀkីញថ្នា JQuery បៀ�អែ�ជា Framework មួយអែដលមានការបៀពញនិយមរហូ�ដល់សព̀ម្លៃno។ មានប្រាកមុ ហុ៊ន_ំៗជាបៀប្រា"ីនកំពុងអែ�បៀប្រា�ីប្រា�ស ់ JQuery ដូ"ជា ៖ Google, Microsoft, IBM, Netflex ....ជាបៀដីម។

រ�ូ2ពទី៦: ការ�ងាs ញពី Syntax រ�ស់ Jquery

11

Page 22: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

២.២.៥ អី̀បៀuជា AJAX?AJAX មកពីពាក្យ Asynchronous JavaScript and XML បៀហីយវាមិនអែមនជា

Programming Language n្មីមួយបៀនាះបៀទ�~ុអែន�វា1ឺជា Technique សំរា�់�បៀង្កី� Web applications បៀអាយមាន2ព �ូ"ជាងមុន ល្អជាងមុន បៀល�នជាងមុន មាន2ព Interactive និងមាន2ព User Friendly ។ JavaScript និង HTTP request ជាបៀ�ះដូងរ�ស់ AJAX ។ AJAX application មានលក្ខKៈ Browser និង Platform independent ។ AJAX ពឹងអែr្អកបៀuបៀលី Web Standard មួយ"ំនួនដូ"បៀប្រាកាម ៖

JavaScript XML HTML CSSជាមួយ AJAX, JavaScript ទំនាក់ទំនងបៀដ្ឋាយផ្ទា្ទ ល់ជាមួយ Web Server

បៀដ្ឋាយបៀប្រា�ីប្រា�ស ់ JavaScript XMLHtppRequest object ។ ជាមួយ object បៀនះ JavaScript អា"បៀ_ី̀ការផ្ទាU ស់��ូរទិន�ន័យជាមួយ Web Server បៀដ្ឋាយគ្នា្ម នការ Reloading ឬ Refreshing នូវ Pages បៀaយី ។

រ�ូ2ពទី៧: ការ�ងាs ញពី Syntax រ�ស់ Ajax AJAX បៀប្រា�ីប្រា�ស់ Asynchronous

Data Transfer រវាង Web Browser ជំនួសបៀអាយ Web page ទាងំមូល។

12

Page 23: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

AJAX �នបៀ_ី̀បៀអាយមាន2ពល្ីបល្បាញបៀ�ក�ុងឆ្នា� ២ំ០០៥ បៀដ្ឋាយ Google អែដល�នយក បៀuបៀប្រា�ីប្រា�ស់បៀ�ក�ុង Google Suggestion ។

បៀ�ក�ុង JavaScript កូដពីមុនបៀ�ីសិនបៀយីង"ង់ទទួល�ននូវទិន�ន័យពី Database ឬ File បៀ�បៀលី Web Server ឬ�ញ្ជូនព័�៌មានរ�ស់ User បៀuកាន់ Web Server បៀយីងប្រា�វូ�បៀង្កី� HTML Form បៀហីយនិង Get ឬ Post ទិន�ន័យទាងំបៀនាះបៀuកាន់ Web Server ។ User ប្រា�វូអែ�"ុ" "Submit" Button បៀដីម្បី Send/Get ទិន�ន័យនិងរងចា ំWeb Server បៀដីម្បី Response បៀហីយ�នា្ទ �់មក Web page និង Load ជាមួយយនឹងលទ្ធrលអែដល�នមកពីការបៀឆUីយ��រ�ស់ Web Server ។

បៀដ្ឋាយសារអែ� Web Server �ញ្ជូនប្រា�a�់មកវញិនូវ Page n្មីបៀរ�ងរាល់បៀពលអែដល User បៀ_ី̀ការ Submit បៀហ�ុបៀនះបៀហីយបៀ_ី̀បៀអាយ Traditional Web Applications ដំបៀKីរការយឺ�និងបៀទារទន់បៀuរក2ពទាក់ទាញសំរា�់អ�កបៀប្រា�ីប្រា�ស់ (User-Friendly)។

ជាមួយនឹង HTTP request, Web page អា"បៀ_ី̀ការ Request និងទទួល�ននូវការបៀឆUីយ��ព ី Web Server បៀដ្ឋាយគ្នា្ម ន Reloading page បៀaយី។ User នឹងឈរបៀ�បៀលី Page ដអែដលនិងមិនអា"បៀ_ី̀ការក�់សំគ្នាល់បៀkីញថ្នាមាន Script បៀ_ី̀ការ Request pages ឬមានទិន�ន័យ�ញ្ជូនបៀuកាន់ Web Server បៀនាះបៀaយី។

មុននឹងបៀ_ី̀ការ�ញ្ចូនទិន�ន័យបៀuកាន ់ Web Server បៀយីងនឹងបៀ_ី̀ការពន្យល់ពី Properties សំខាន់មាន�ីរ�ស ់ XML HTPP Request object អែដលមានដូ"ខាងបៀប្រាកាម ៖

Onreadystatechange Property �នា្ទ �់ពីបៀយីងបៀ_ី̀ការ Request បៀuកាន់ Web Server បៀយីងប្រា�វូការ Function មួយបៀដីម្ីបទទួលទិន�ន័យអែដល Returns បៀដ្ឋាយ Web Server ។ Function បៀនះនឹងដំបៀKីរការបៀដ្ឋាយស`័យប្រា�វ��ិបៀ�បៀពល អែដលមានការបៀឆUីយ��ពី Web Server វញិ ។

Readystate Property Property បៀនះវាr្ទុក Status ម្លៃនការ Response រ�ស ់ Web Server រាល់បៀពលអែដល readystate ផ្ទាU ស់��ូរ onreadystatechange Function និងប្រា�វូ�នបៀ_ី̀ការ Execute។ ខាងបៀប្រាកាមបៀនះជា�ំម្លៃលអែដលអា"បៀកី�មានបៀaងីសំរា�់ readystate Property៖

State Description

0 The Request is not initialized

1 The Request has been set up

2 The Request has been sent

3 The Request is process

13

Page 24: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

4 The Request is complete

ResponseText Property បៀយីងអា"ទទួល�នទិន�័យ អែដលប្រា�វូ�ន�ញ្ជូនពី ResponseText Property វញិតាមរយៈ ResponseText Property ។

២.២.៦ អី̀បៀuជា Bootstrap?Bootstrap 1ឺជាការ�ូក�ញ្ចូលគ្នា� រវាង HTML, CSS, និង JavaScript

framework អែដលមានការបៀពញនិយមសំរា�់�បៀង្កី� Responsive, Mobile-first web sites ។ Bootstrap r�ល់ឲ្យបៀយីង Download និង បៀប្រា�ីប្រា�ស់បៀដ្ឋាយបៀសរ 8 ។ បៀ1បៀប្រា�ីប្រា�ស់វាសំរា�់បៀ_ី̀ការ Design Template មួយ"ំនួនដូ" ជា ៖ Typography, Forms, Buttons, Tables, Navigation, Modals, Image Carousels និងមានជាបៀប្រា"ីនបៀr្សងបៀទ��។ Bootstrap ប្រា�វូ�ន�បៀង្កី�បៀaងី បៀដ្ឋាយបៀLក Mark Otto, និង បៀLក Jacob Thornton បៀ�ប្រាកមុហ៊ុន Twitter បៀហីយ�នដ្ឋាក់ឲ្យបៀប្រា�ីប្រា�ស់ជាrUូវការបៀ�អែខ សីហា ឆ្នា� ំ២០១១ ។

រ�ូ2ពទី៨: ការ�ងាs ញពី Syntax រ�ស់ Bootstrap

បៀ�ីអី̀បៀuជាការ�បៀង្កី�បៀ1ហទំព័រជាលក្ខKៈ Responsive?Responsive 1ឺបៀ1សំបៀ�បៀuបៀលីបៀ1ហទំព័រណាអែដល វាអា"កំK�់ទំហំរ�ស់វា�ន

បៀដ្ឋាយស`័យប្រា�វ�ិ� បៀuតាមទំហំបៀអប្រាកង់រ�ស់ឧ�ករK៍ទាងំអស់ (Phone, Tablet, Desktop) បៀដីម្ីបបៀអាយ Visitor មាន2ពងាយប្រាសលួក�ុងការ"ូលទស្សនា។២.២.៧ អី̀បៀuជា PHP?

PHP ប្រា�វូ�នr�ល់បៀp្ម ះជាrUូវការថ្នា HyperText Preprocessor វាជា2សាអែដលដំបៀKីរការបៀលី Sever អែដលជាទូបៀuប្រា�វូ�នបៀ1សរបៀសរក�ុង�រ�ិទ HTML �~ុអែន�មិនដូ"ជា HTML Page _ម្មតាបៀនាះបៀទ PHP Script មិនប្រា�វូ�ន�ញ្ចូនបៀuបៀអាយ Client បៀដ្ឋាយ Sever ផ្ទា្ទ ល់បៀទ វាបៀ_ី̀ការ�ញ្ចូនបៀដ្ឋាយ PHP Engine ។ PHP Code អែដលស>ិ�បៀ�ក�ុង Script អា"បៀប្រា�ីបៀដីម្ីបបៀ_ី̀ការជាមួយ Database �បៀង្កី�ជារ�ូ2ពអាន និង�ញ្ចូនទិន�ន័យ ឬអែកអែប្រា�អ�>�ទអែដលមានបៀ�ខាងក�ុង File ឬបៀ_ី̀ការទំនាក់ទំនងបៀuកាន់ Remote Server ប្រាពមជាមួយនិងលទ្ធrលជាបៀប្រា"ីនបៀr្សងបៀទ��។

បៀLក Rasmus Lerdorf 1ឹជាមនុស្សដំ�ូងអែដលអ7ិវឌ្ឍន៍នូវ PHP/FI បៀហីយប្រា�វូ�នមនុស្សរា�់Lននាក់បៀប្រា�ីប្រា�ស់វា។ ជំនាន់ដំ�ូងម្លៃន PHP/FI បៀp្ម ះថ្នា Personal Homepage

14

Page 25: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

Tool/Form Interpreter អែដលលក្ខKៈជាមូលដ្ឋា4 ន1ឺប្រាសបៀដ�ងបៀuនឹង2សា Perl បៀប្រាពាះ�នប្រា�មូលr�ុំនូវ Perl Script មកអ7ិវឌ្ឍន៍។

ខាងបៀប្រាកាមបៀនះជា1ុKសម្ប��ិមួយ"ំនួនម្លៃនការបៀប្រា�ីប្រា�ស់ PH ៖ បៀល�ន : ពីបៀប្រាពាះវា�ង្ក�់បៀ�ក�ុង HTML Code ដូ"បៀនះរយៈបៀពលម្លៃនការ

បៀឆUីយ�� (Response Time) 1ឺមានរយៈបៀពលខUី (បៀល�ន) ។ ឥ��ង់ម្លៃnU : PHP 1ឺជា Software អែដលបៀប្រា�ីបៀដ្ឋាយមិនចា�ំ"់�ង់ម្លៃnUបៀaយី

(Free) ។ ងាយប្រាសលួបៀប្រា�ីប្រា�ស ់ : PHP មានលក្ខKៈពិបៀសស (Features) និងអនុ1មន៍

(Functions) ពិបៀសសជាបៀប្រា"ីន អែដលប្រា�វូការបៀដីម្បី�បៀង្កី� Dynamic Web Pages ។ PHP Language 1ឺប្រា�វូ�ន�បៀង្កី�បៀaងី (Designed) បៀដីម្ីបរមួ�ញ្ចូលបៀuក�ុង HTML File បៀអាយ មាន2ពងាយប្រាសលួ ។

អា"ដំបៀKីរការ�នបៀប្រា"ីនប្រា�ព័ន្ធដំបៀKីរការ PHP អា"ដំបៀKីរការ PHP �នបៀ�បៀលីប្រា�ព័ន ្ធ ដំបៀKីរការ (Operating System) ជាបៀប្រា"ីនដូ"ជា Windows, Linux, Mac OS, Unix..... ។ល។

មាន Technical support ទូលំទូLយ PHP ក៏មានការ Support |~ ងទូលំទូLយបៀដ្ឋាយពំុមាន�ង់ប្រា�ក ់ (Free) តាមរយៈការពិ2ក្សាបៀដ្ឋាយបៀប្រា�ីប្រា�ស ់ E-mail (E-mail discussion ។

មានសុវ��ិ2ព : "ំបៀពាះអ�កបៀប្រា�ីប្រា�ស់មិនអា"បៀមីលបៀkីញកូដរ�ស ់ PHP បៀaយីពីបៀប្រាពាះវា �កអែប្រា�បៀ�បៀលី Web Server រ"ួ�ញ្ជូនជាកូដ HTML មក Web Browser វញិ ។

អា"អែកអែប្រា�តាម�ំរវូ"ិ���ន "ំបៀពាះ PHP Open Source License អា"អនុញ្ញា� �ិបៀអាយ Programmers បៀដីម្ីបបៀ_ី̀ការអែកអែប្រា� (Modify) PHP Software �អែន>ម (Adding) ឬអែកអែប្រា�លក្ខKៈពិបៀសស (Modifying Features) តាម�ំរវូការបៀដីម្ីបបៀអាយប្រា�វូតាមបៀគ្នាល�ំKង រ�ស់ពួកបៀ1 ។

លទ្ធ2ពការងារម្លៃន2សា PHP ៖– �បៀង្កី� Interface សំរា�់បៀ_ី̀ការទំនាក់ទំនងរវាង User និង Database – អា"ទាញទិន�ន័យពី Database មក�ងាs ញបៀលី Interface – អា"�ញ្ចូលទិន�ន័យមកទុកក�ុង Database – អា"បៀ_ី̀ការ Update ទិន�ន័យក�ុង Database – អា"បៀ_ី̀ការលុ�ទិន�ន័យបៀ"ញពី Database

រ�ូ2ពទី៩ :�ងាs ញពី Sytax រ�ស់ PHP

15

Page 26: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

២.៣ ប្រា�ព័ន្ធប្រា1�់ប្រា1ងទិន�ន័យដ្ឋាតាបៀ�ស (Database) 1ឺជាការប្រា�មូលr�ុំនូវរាល់ទិន�ន័យអែដលប្រា�វូ�នបៀ1បៀ_ី̀ការបៀរ��"ំ

រ"នា សម្ព័ន្ធតាមប្រា�ព័ន្ធប្រា�ឹមប្រា�វូក�ុងបៀគ្នាល�ំKងម្លៃនការ�ំបៀរ 8បៀសវាកម ្ម និងការអនុវ��ន៍ការងារជាបៀប្រា"ីន|~ ង ក�ុងបៀពលអែ�មួយបៀដ្ឋាយr្ទុក និងប្រា1�់ប្រា1ងទិន�ន័យ ដូ"បៀនះវារមួ�ញ្ចូលគ្នា� និងការ�ងាs ញបៀ�ក�ុងកអែនUង អែ�មួយ (One Location) អែដលជាទូបៀuមានទំរង់បៀអa"ិប្រា�និូ" បៀហីយ�នរក្សាទុកបៀ�ក�ុងឧ�ករK៍ r្ទុកទិន�ន័យ (Hard Disk) រ�ស់កំុព្យូទ័រ។ វាមាន2ពប្រា�បៀសីរ និងងាយប្រាសលួក�ុងការបៀ_ី̀ការងារបៀr្សងៗ បៀuបៀលីទិន�ន័យទាងំអស់។២.៣.១ អី̀បៀuជា My SQL?

MySQL អានថ្នា (My Ess Q EI) 1ឺជា Open Relational Database Management System (RDBMS) បៀហីយវាជាប្រា�បៀ7ទកម្មវ_ិ ី Open Source Database ដ៏បៀពញនិយមមួយបៀ�បៀលីពិ7ពបៀLកអែដលបៀយីងអា"យកវាមកបៀប្រា�ីប្រា�ស់បៀដ្ឋាយមិនចា�ំ"់�ង់ម្លៃnUសំរា�់ការបៀប្រា�ីប្រា�ស់បៀនាះបៀទ។ វាប្រា�វូ�នបៀ1 និយមយកបៀuបៀប្រា�ីប្រា�ស់ជាមួយ Web Application។ MySQL អា"បៀប្រា�ីបៀ_ី̀ជា Back-end សំរា� ់ Programming Languages មួយ"ំនួនដូ"ជា : PHP, Java, Perl, Python ជាបៀដីម ។ MySQL 1ឺជា កម្មវ_ីិមួយអែដលគ្នា្ម ន GUI (Graphic User Interface) បៀនាះបៀទ �~ុអែន�អ�កបៀប្រា�ីប្រា�ស់អា"បៀប្រា�ី Command Line Tool ឬកម្មវ_ីិជំនួយដម្លៃទបៀទ���ន អែដលបៀ_ី̀ឲ្យអ�កបៀប្រា�ីប្រា�ស់មាន2ពងាយប្រាសលួក�ុងការ ប្រា1�់ប្រា1ងទិន�ន័យក�ុង Database។ បៀ�បៀពល�"្ចុ�្បន�បៀនះមានប្រា�ព័ន្ធប្រា1�់ប្រា1ងមា�ិការ (CMS) ជាបៀប្រា"ីន កំពុងអែ�រក្សាទុកទិន�ន័យជាមួយ MySQL Database ដូ"ជា ៖

WordPress Joomla Drupal ...។

រ�ូ2ពទី១០: �ងាs ញពីផ្ទា្ទ ងំ PHPMyadmin

16

Page 27: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

២.៣.២ ប្រា�វ��ិរ�ស់ MySQL?តាមរយៈបៀ1ហទំព័ររ�ស ់ Wikipedia, The free encyclopedia និង

ww.defv.mysql.com �នបៀអាយដឹងថ្នា MySQL ប្រា�វូ�ន�បៀង្កី�បៀaងីដំ�ូង�ំrុ�បៀ�ក�ុងឆ្នា� ំ១៩៩៤ បៀដ្ឋាយបៀLក Michael Widenius និងបៀLក David។ បៀ1ហទំព័រ Wikipedia ដអែដលក៏�នបៀអាយនិយមន័យ MySQL ថ្នាជា Relational Database Management System (RDBMS) អែដលបៀដីរ�ួរនាទីជា Database Server បៀដីម្ប ី r�ល់បៀអាយអ�កបៀប្រា�ីប្រា�ស់ជាបៀប្រា"ីន

អា" Access បៀuកាន ់ Database Server បៀដីម្ីបទាញយកនូវទិន�ន័យ ក�ុងបៀពលអែ�មួយជាមួយគ្នា� �នបៀដ្ឋាយមិនមាន2ពរអាក់រអួល ។

MySQL 1ឺជា Open Source Software អែដលប្រា�វូ�ន�បៀង្កី�បៀaងីបៀដ្ឋាយបៀប្រា�ីប្រា�ស់2សា C និង C++ និងមានសម�>2ពក�ុងការជាមួយ System Platforms ដ៏ម្លៃទបៀr្សងៗ ពីគ្នា� ជាបៀប្រា"ីនអែដលរមួ មានដូជា : URAIX, BSDI, FreeBSD, HP-UX, i5/OS, Linux, Mac OS X, Net BSD, Novell Netware, Open BSD, Open Solaris, eComStation, OS/2 Warp, QNX, IRIX, Solaris, Symbian, SunOS, SCO OpenServer, SCO Unix Ware, San OS, Tru64 និង Microsoft Windows។

Programmer ជាបៀប្រា"ីនបៀ�ទូទាងំសកលបៀLកក�ុងការ�បៀង្កី� Database សំរា�់Web Application អែដលវា�នr�ល់នូវ2ពងាយប្រាសលួ និងលក្ខKៈពិបៀសសមួយ"ំនួនដូ"ជា ៖

r្ទុកទិន�ន័យ�នបៀប្រា"ីនរហូ�ដល់ ៥០Lនជួររបឺៀប្រា"ីនជាងបៀនះ ប្រា1�់ប្រា1ង Database Authorization និង Permission ប្រា1�់ប្រា1ងបៀuបៀលីប្រា�បៀ7ទ User ទាងំឡាយអែដលបៀប្រា�ីប្រា�ស់ Database r្ទុកទិន�ន័យ�នរយៈបៀពលយូរ r្ទុកទិន�ន័យ�នបៀប្រា"ីនក�ុង Database អា"ទាញទិន�ន័យមកបៀប្រា�ីប្រា�ស់�នតាម�ំរវូការបៀប្រា�ីប្រា�ស់ មាន�ំម្លៃលបៀថ្នាកសមរម្យ អា"ទាក់ទងជាមួយនឹង Query Language ងាយប្រាសលួដំបៀKីរការនិងមានសុវ�>ិ2ពខ្ពស់"ំបៀពាះ Database

17

Page 28: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

អា"បៀប្រា�ីប្រា�ស់ជាមួយប្រា1�់ប្រា�បៀ7ទម្លៃន OS ដូ"ជា Windows, Linux, ។ MySQL 1ឺជា RDBMS អែដលមានបៀល្ប�នបៀល�នងាយប្រាសលួបៀប្រា�ី បៀហីយប្រា�វូ�ន

បៀប្រា�ីប្រា�ស់បៀ� បៀលី Web Site ជាបៀប្រា"ីន ។ MySQL 1ឺប្រា�វូ�ន�បៀង្កី�អែ"កចាយបៀលីទីr្សារនិង Support បៀដ្ឋាយប្រាកមុហ៊ុន MySQL AB អែដលជាប្រាកមុហុ៊នរ�ស់ប្រា�បៀទសសុ៊យអែអ៊� ។ "ំបៀពាះ License ប្រា�វូ�នអែ�ងអែ"កជាពីរ ៖

Open Source Software 1ឺជា Software អែដលអា" Download និងបៀប្រា�ីប្រា�ស់បៀដ្ឋាយបៀសរ 8 (Free) ។

Commercial License 1ឺបៀប្រា�ីសំរា�់ប្រាកមុហ៊ុនបៀ_ី̀ពាKិជ្ជកម្ម_ំៗ (Commercial Business)។ បៀហីយ"ំបៀពាះ Commercial License មានកំរ�ិបៀr្សងៗ

Technical Supports សំរា� ់ អ�កបៀប្រា�ីប្រា�ស់ជាមួយនឹង Commercial Support Packages ។

២.៣.៣. ប្រា�បៀ7ទម្លៃន SQL Statements អែដលបៀប្រា�ីក�ុង MySQLSQL Statement ប្រា�វូ�នអែ"កជា�ីប្រា�បៀ7ទ1ឺ ៖ Data Definition Language (DDL) DLL មាន Statement អែដល

កំK�់ទំរង ់ (Structure) និងទំនាក់ទំនង (Relationship) ម្លៃន Database និង Tables រ�ស់វា ។ជាទូបៀu Statement ទាងំបៀនះប្រា�វូ�នបៀប្រា�ីបៀដីម្ីប�បៀង្កី�លុ� និងអែកអែប្រា�Database បៀហីយនឹង�ញ្ញាs ក់បៀp្ម ះនិងប្រា�បៀ7ទទិន�ន័យបៀអាយ Field ម្លៃន Tables ។ DLL ក៏បៀ_ី̀ការកំK� ់ index និង�បៀង្កី� Relationships រវាង Tables rងអែដរ ។

Data Manipulation Language (DML) DML Statements 1ឺមានការទាក់ទងបៀuនឹងការ (Altering) និងការទាញយក (Extracting) ទិន�ន័យ Database ។ Statements ទាងំបៀនះ�នបៀប្រា�ីបៀដីម្បី�អែន>ម Records ព ី Table ម្លៃន Database។ DML បៀ_ី̀ការ Queries ទាញយកនូវ Records រ�ស ់ Table អែដលប្រា�វូនឹងល័ក្ខខ័K្ឌ មួយឬបៀប្រា"ីនអែដល User �ន ដ្ឋាក ់ Join Tables �ញ្ចូលគ្នា� បៀដ្ឋាយបៀប្រា�ីប្រា�ស់ Fields ម្លៃន Tables ។

Data Control Language (DCL) DCL Statement ប្រា�វូ�នបៀប្រា�ីបៀដីម្បីកំK�់កំរ�ិម្លៃនការ Access និង Security Privileges សំរា�់ Database ។ បៀយីងអា"បៀប្រា�ី Statement ទាងំបៀនះ បៀដីម្ីបr�ល ់ (Grant) ឬដក (Deny) Privileges, កំK�់ Roles, ផ្ទាU ស់��ូរ Passwords, View Permissions និង�បៀង្កី� Rulesets បៀដីម្ីបការពារ Access បៀuទិន�ន័យណាមួយ ។

២.៣.៤. 1ុKសម្ប��ិ ឬ លក្ខKៈសំខាន់រ�ស់ MySQLលក្ខKៈសំខាន់ (Feature) រ�ស់ MySQL មានដូ"ជា ៖ បៀល�ន (Speed) : 1ឺសំបៀ�បៀuបៀលីការបៀប្រា�ីប្រា�ស់បៀពលបៀវLបៀដីម្ប ី Execute នូវ

Query និង �ញ្ញាs នលទ្ធrលប្រា�a�់បៀu Caller វញិ ។ MySQL 1ឺមាន2ពបៀល�នជា1ូប្រា�1ូ�រ�ស់ខUួន ដម្លៃទបៀទ��ដូ"ជា : Microsoft SQL Server និង IBM DB2 ជាបៀដីម ។ អែដលទាងំអស់បៀនះ 1ឺ�នមកបៀដ្ឋាយសារលទ្ធrលម្លៃនការ Design ដ៏វយ័ឆ្នាU �បៀដ្ឋាយបៀប្រា�ីប្រា�ស់នូវ Fully Multithreaded Architecture ។�ំម្លៃលសមរម្យ : MySQL 1ឺប្រា�វូ�នអនុញ្ញា� �ិបៀអាយបៀប្រា�ីប្រា�ស់បៀដ្ឋាយឥ�1ិ�ម្លៃnU អែដលបៀយីង

18

Page 29: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

ប្រា1�់គ្នា� អា" Download និង install បៀប្រា�ីប្រា�ស់បៀដ្ឋាយបៀសរ 8�ន ។ បៀដ្ឋាយអែaក"ំបៀពាះ Commercial License វញិបៀនាះ1ឺមាន�ំម្លៃលសមរម្យ ។

2ពអា"បៀជ�ទុក"ិ���ន : MySQL 1ឺជា RDBMS អែដលប្រា�វូ�នបៀ_ី̀ការសាកល្បង និង ធានាអះអាងសំរា�់បៀប្រា�ីបៀ�ក�ុង High-Volume, Mission-Critical Application បៀដ្ឋាយអងlការ_ំ�ំrុ�រ�ស់ពិ7ពបៀLកអែដលរមួមានដូ"ជា NASA, HP និង Yahoo ជាបៀដីម។ បៀនះ1ឺបៀប្រាពាះអែ� MySQL មានឫស1ល់បៀ"ញពីសមា1មន៍ Open-Source បៀហីយបៀរ�ងរាល ់ ការបៀ"ញនូវបៀសរ 8n្មីៗ 1ឺប្រា�វូ�នបៀ_ី̀ការសាកល្បងបៀដ្ឋាយអ�កបៀប្រា�ីប្រា�ស់បៀ�ទូទាងំពិ7ពបៀLក បៀដីម្បីបៀ_ី̀បៀអាយប្រា�កដថ្នាវាគ្នា្ម នកំហុស (Bug-free) មុនបៀពលប្រា�វូ�នទទួលសាl ល់និង ដ្ឋាក់បៀអាយបៀប្រា�ីប្រា�ស់ជាrUូវការ។

សុវ�>ិ2ព : សុវ�>ិ2ព1ឺជាកង`ល់ដ៏ចា�ំ"់�ំrុ�បៀ�បៀពលអែដលបៀយីងបៀ_ី̀ការទាក់ទង ជាមួយ Database អែដលមាន Multi-user។ បៀហ�ុដូបៀ"�ះបៀហីយ�នអ�កអ7ិវឌ្ឍន៍ MySQL យក"ិ��ទុកដ្ឋាក់បៀដីម្ីបបៀ_ី̀បៀអាយមានសុវ�>ិ2ពតាម អែដលអា"បៀ_ី̀បៀu�ន។ MySQL យក "ិ��ទុកដ្ឋាក់ បៀដីម្ីបបៀ_ី̀បៀអាយមានសុវ�>ិ2ពតាមអែដលអា"បៀ_ី̀បៀu�ន។ អ�កបៀប្រា�ីប្រា�ស់ប្រា�វូ �នកំK�់"្បា�់|~ ង�ឹងរងឹបៀuបៀលីការបៀ_ី̀ប្រា��ិ���ិការប្រា1�់ប្រា1ង�នអែ�"ំបៀពាះ Database ឬ Tables ទាងំឡាយណាអែដល�នអនុញ្ញា� �ិបៀហីយ MySQL អា"បៀ_ី̀ការប្រា1�់ប្រា1ងបៀuបៀលីប្រា�បៀ7ទម្លៃន Query អែដល User អា"ដំបៀKីរការ�នបៀ�បៀលី Database Tables ឬ Field Levels។

Scalability MySQL អា"បៀ_ី̀ប្រា��ិ���ិការជា Database _ំៗ និងស្មកុសា្ម ញបៀដ្ឋាយពំុមាន2ពយឺ�បៀពកបៀនាះបៀaយី។Table អែដលមានទំហំបៀប្រា"ីន Gigabytes និងមាន"ំនួនរា�់រយពាន់ Records 1ឺមិនអែមនជាបៀរ�ង_ម្មតាបៀនាះបៀaយីអែដល Web Site រ�ស ់ MySQL ខUួនឯង1ឺអា"និ|យ�នថ្នានឹងr្ទុក�នរហូ�ដល ់ ៥០ Million Records។

Portability : MySQL អា"ដំបៀKីរការ�នបៀប្រា"ីនប្រា�ព័ន្ធដំបៀKីរការ (Operating System) អែដលបៀយីងអា"និ|យ�នថ្នាវាមានលក្ខKៈ Portability ។ បៀហ�ុដូ"បៀនះបៀហីយបៀយីង អា" Move នូវ Tables អែដលr្ទុកបៀuបៀដ្ឋាយ Data ព ី Platform មួយបៀuមួយបៀទ��បៀដ្ឋាយ គ្នា្ម ន2ពពិ�កបៀaយី ។ MySQL អា"បៀប្រា�ី�នបៀ�បៀលីប្រា�ព័ន្ធដំបៀKីរការដូ"ជា UNIX, LINUX, SOLARISE, MAC OS និង WINDOWS ជាបៀដីម ។

ងាយប្រាសលួក�ុងការបៀប្រា�ីប្រា�ស ់ : MySQL ងាយប្រាសលួក�ុងការបៀប្រា�ីប្រា�ស់ប្រា1�់ប្រា1ង និង Optimize ។ បៀដីម្ីបជា Interface សំរា�់ទំនាក់ទំនងជាមួយ MySQL Server បៀយីងអា"បៀប្រា�ីប្រា�ស់ Command-Line Interface ឬបៀប្រា�ីប្រា�ស់ GUI Clients អែដល Develop បៀដ្ឋាយ MySQL AB 1 ឺ MySQL Control Center ឬ MySQL Administrator និង PHP MyAdmin ជាបៀដីមអែដលសំរា�់ការបៀប្រា�ីប្រា�ស់ និងការប្រា1�់ប្រា1ង MySQL ។

បៀប្រា�ីសំរា� ់ Database _ំៗ : MySQL អា" Support រហូ�បៀuដល ់ ៥០ Million row ឬ បៀប្រា"ីនជាងបៀនះ ។ ក�ុងបៀនាះអែដរ�ំម្លៃលបៀដីម (Default) ប្រា�វូ�នកំK�់សំរា�់ Tables នីមួយៗ ពី ៤ GB �~ុអែន�បៀយីងក៏អា"�បៀង្កីនវា�នអែដរប្រា�សិនបៀ�ី Operating System រ�ស់បៀយីងអា" ដំបៀKីរការវា�ន។

19

Page 30: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

អា"�ំរវូតាម"ិ���ន : "ំបៀពាះ Commercial License អា"អនុញ្ញា� �ិបៀអាយ Programmers បៀដីម្ីបអែកអែប្រា� (Modify) MySQL Software បៀដីម្ីបបៀអាយសមបៀu នឹង�ំរវូការរ�ស់ពួកបៀ1�ន។

២.៣.៥. ការបៀប្រា�ីប្រា�ស់ MYSQL Command-Line Toolsបៀយីងអា"បៀ_ី̀ការទាក់ទងជាមួយ MySQL ទាងំមូលពី Command-Line ។ បៀដីម្ីបអា"

"ូលបៀប្រា�ី Command-Line �នតាមរយៈ Command Prompt បៀដ្ឋាយអនុវ��តាមជំហានដូ"ខាងបៀប្រាកាម ៖

Start => Run => cmd �នា្ទ �់មកវានឹងបៀ"ញផ្ទា្ទ ងំ Command Prompt Window មួយ ។

�នា្ទ �់មកបៀទ��ប្រា�វូវាយ Command: mysql => username => password បៀដីម្ីប Login "ូលបៀប្រា�ី MySQL Server ។

បៀប្រាកាយពី�ន Login "ូល MySQL Server រ"ួមកបៀយីងអា"បៀប្រា�ីប្រា�ស់ Command ដម្លៃទ បៀទ��ដូ"ជា ៖

Show database : បៀប្រា�ីសំរា�់�ងាs ញរាល់ database ទាងំឡាយអែដលមាន ។ User databasename : បៀប្រា�ីសំរា�់បៀប្រាជីសបៀរ 8ស database ណាមួយបៀដីម្ីបមក

បៀប្រា�ីប្រា�ស់ ។ Show tables : បៀប្រា�ីបៀដីម្ីប�ងាs ញរាល ់ Table អែដលមានក�ុង Database

ណាមួយ។ Create database databaseName បៀប្រា�ីសំរា�់�បៀង្កី� Database ។ Create table tblName (field1 datatype, field2 datatype....)

បៀប្រា�ីបៀដីម្ីប�បៀង្កី� Table ។២.៣.៦. អែKនាបំៀអាយសាl ល់ពី PHP MyAdmin

បៀប្រាកាយពីបៀយីង�នសាl ល់និងបៀប្រា�ីប្រា�ស ់ MySQL Command-Line រ"ួមក21បៀប្រា"ីនអ�កបៀប្រា�ី ប្រា�ស់មានការ_ុញប្រាទាន់ និង"ង់បៀប្រា�ីប្រា�ស់ Tool អែដលមានលក្ខKៈ GUI វញិ។ បៀពលបៀនះបៀយីងខ្ញុំសូមអែKនាពំ ី GUI Interface សំរា�់2្ជ � ់ (Connect) បៀu MySQL Server 1ឺ PHP MyAdmin។ PHP MyAdmin r�ល់នូវ GUI Interface សំរា�់បៀប្រា�ីប្រា�ស់ និងប្រា1�់ប្រា1ង MySQL Database �ន|~ ងល្អអែដលក�ុងបៀនាះមានមុខងារជាបៀប្រា"ីន និងសំ�ូរអែ��អែដលអនុញ្ញា� �ិបៀអាយបៀយីងអា"បៀ_ី̀ការលុ� (Drop) អែកអែប្រា� (Alter) និង�បៀង្កី� Object បៀr្សងៗដូ"ជា : Databases, Tables, Fields ជាបៀដីម ។ បៀលីសពីបៀនះ បៀuបៀទ��វាr�ល់នូវមុខងារជាបៀប្រា"ីនបៀទ��ដូ"ជា: Priviledge, Backup (Export), Restore (Import) និងអា"បៀអាយបៀយីងបៀប្រា�ីប្រា�ស់នូវ SQL Command ក�ុងបៀនាះ�នrងអែដរ ។២.៣.៧. ទំនាក់ទំនងរវាង Client,PHP និង MySQL

PHP 1ឺជា Programming Language មួយអែដលបៀ1បៀប្រា�ី21បៀប្រា"ីនបៀដីម្ីប�បៀង្កី� Web Site ។ ជំនួសបៀអាយការដំបៀKីរការបៀ�បៀលីកំុព្យូទ័រអែ�មួយបៀនាះ PHP ជាទូបៀu1ឺដំបៀKីរការបៀ�បៀលី Web Server បៀហីយប្រា�វូ�ន Access បៀដ្ឋាយមនុស្សជាបៀប្រា"ីនទូទាងំពិ7ពបៀLកបៀដ្ឋាយបៀប្រា�ីប្រា�ស ់ Web Browser បៀ�បៀលីមា~ សីុនកំុព្យូទ័ររ�ស់ពួកបៀ1តាមរយៈ�ណា� ញអិុនបៀ_ីបៀK� ។

20

Page 31: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

បៀ�បៀពលអែដលបៀយីងបៀប្រា�ីប្រា�ស់ Web Browser រ�ស់បៀយីងបៀដីម្ីបបៀស�ីរស ុំ Web Page តាមរយៈប្រា�ព័ន្ធអិុនបៀ_ីបៀK�បៀនាះបៀយីងបៀ_ី̀បៀអាយមានការសន្ទនាបៀកី�បៀaងីរវាងកំុព្យូទ័ររ�ស់បៀយីងនិងកំុព្យូទ័រដម្លៃទបៀទ�� ។២.៣.៨. ទំនាក់ទំនងរវាង Client និង Web Server បៀដ្ឋាយពំុបៀប្រា�ី PHP

ខាងបៀប្រាកាមបៀនះ1ឺជារ�ូ2ព�ញ្ញា្ជ ក់ពីការទំនាក់ទំនងរវាង Client និង Server បៀដ្ឋាយពំុមានបៀប្រា�ី ប្រា�ស់ PHPខាងបៀប្រាកាមបៀនះ1ឺការ�កប្រាសាយនូវអី̀អែដលបៀកី�មានបៀaងីក�ុងដំណាក់កាលនីមួយៗខាងបៀលី ៖

បៀយីងវាយ�ញ្ចូល www.example.com/catalog_html បៀuក�ុង Location Bar រ�ស់ Web browser

Web Browser �ញ្ចូនសារតាមរយៈអីុនបៀ_ីបៀK�បៀuកំព្ូយទ័រ អែដលមានបៀp្ម ះថ្នា www.example.com បៀដ្ឋាយសួររកទំព័រ /catalog.html។

Apache Program អែដលដំបៀKីរការបៀ�បៀលីកំុព្យូទ័រ www.example.com ទទួលយកសារនិងអាន Catalog.html File ពី Disk Drive។

Web Browser �ងាs ញទំព័របៀ�បៀលី Screen រ�ស់កំុព្យូទ័រអែដលបៀគ្នារពបៀuតាមការ�ញ្ញា្ជ ររ�ស់ HTML Tag។

២.៣.៩. ទំនាក់ទំនងរវាង Client និង Web Server បៀដ្ឋាយពំុបៀប្រា�ី PHPឥaូវបៀនះបៀយីងខ្ញុំនឹងបៀ_ី̀ការ�ងាs ញពីការទំនាក់ទំនងរវាង Client និង Server

បៀដ្ឋាយបៀប្រា�ីប្រា�ស់ PHP វញិម�ង ៖រ�ូ2ពទី១១: ទំនាក់ទំនងរវាង Client និង Web Sever បៀដ្ឋាយបៀប្រា�ី PHP

ខាងបៀប្រាកាមបៀនះ1ឺការ�កប្រាសាយនូវអី̀អែដលបៀកី�មានបៀaងីក�ុងដំណាក់កាលនីមួយៗខាងបៀលី ៖ បៀយីងវាយ�ញ្ចូល www.example.com/catalog.html បៀuក�ុង Location

Bar រ�ស់ Web Browser Web Browser �ញ្ចូនសារតាមរយៈអីុនបៀ_ីបៀK�បៀuកំុព្ូយទ័រ អែដលមានបៀp្ម ះថ្នា

www.example.com បៀដ្ឋាយសួររកទំព័រ /catalog.php។ Apache Program អែដលដំបៀKីរការបៀ�បៀលីកំុព្យូទ័រ www.example.com

ទទួលយកសារបៀហីយសួរ PHP Interpreter “What does/catalog.php look like”។

21

Page 32: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

PHP Interpreter បៀ_ី̀ការអាន File/user/local/www/catalog.php ពី Disk Drive។

PHP Interpreter ដំបៀKីរការឃ្លាU �ញ្ញា្ជ (Command) បៀ�ក�ុង Catalog.php បៀហីយអា"នឹងបៀ_ី̀ការផ្ទាU ស់��ូរទិន�ន័យជាមួយកម្មវ_ិ ី Database ដូ" MySQL ជាបៀដីម។

PHP Interpreter បៀ_ី̀ការ�កអែប្រា� catalog.php និង�ញ្ចូនវាប្រា�a�់បៀu Apache វញិប្រាស�បៀuនិង សំនួរ “What does/catalog.php look like?”។

Apache �ញ្ចូន Contents រ�ស់ទំព័រអែដលទទួល�នព ី PHP Interpreter ប្រា�a�់បៀuបៀអាយកំុព្យូទ័ររ�ស់បៀយីងវញិតាមរយៈប្រា�ព័ន្ធអីុនបៀ_ីបៀK� អែដលបៀឆUីយ��បៀu Web Browser អែដល�នបៀស�ីសំុ។

Web Browser �ងាs ញទំព័របៀ�បៀលី Screen រ�ស់កំុព្យូទ័រអែដលបៀគ្នារពបៀuតាមការ�ញ្ញា្ជ ររ�ស់ HTML tag។

22

Page 33: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

វ_ីិសាប្រាស�ម្លៃនការប្រាសាវប្រាជាវ

Page 34: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

៣. វ_ីិសាប្រាស�ម្លៃនការប្រាសាវប្រាជាវ៣.១ ជំហានម្លៃនការសិក្សាប្រាសាវប្រាជាវ

តាមរយៈការសិក្សាប្រាសាវប្រាជាវ និង"ំបៀKះដឹងអែដលប្រាកមុបៀយីងខ្ញុំទទួល�នព ី ឯកសារបៀr្សងៗនិងទទួល�នពីសាLតាមរយៈ បៀLកប្រា1 ូអ�កប្រា1 ូនិងសាប្រាសា� ចារ្យមួយ"ំនួនបៀនាះប្រាកមុបៀយីងខ្ញុំ�នបៀ_ី̀ការបៀរ��"ំ1ំបៀរាងសំរា�់បៀ_ី̀ការសិក្សាប្រាសាវប្រាជាវ បៀដីម្ីប�បៀង្កី�ប្រា�ព័ន្ធបៀនះបៀaងី ។ |~ ងណាមិញការសិក្សាប្រាសាវប្រាជាវនាបៀពលបៀនះ�នបៀ_ី̀ការបៀស�ីរ នូវប្រា�ព័ន្ធមួយមានសម�>2ពក�ុងការប្រា1�់ប្រា1ង ព័�៌មាន និងការសិក្សារ"នាសម្ព័ន្ធ ។ មុននឹងចា�់បៀr�ីម អនុវ��ន៍សាងសង់ប្រា�ព័ន្ធបៀនះប្រាកមុរ�ស់ពួកបៀយីង�នបៀ_ី̀ការបៀរ��"ំនូវអែrនការ និងរ"នាសម្ព័ន្ធ|~ ងម~�់"�់�ំrុ� បៀដីម្ីបបៀ_ី̀|~ ងណាឲ្យការប្រាសាវប្រាជាវបៀនះទទួល�នបៀជា1ជ័យសមប្រាស�តាម�ំKងរ�ស់ប្រាកមុប្រាសាវប្រាជាវ ។

បៀដីម្ីបបៀអាយការងារបៀនះpន�នបៀuដល់2ពបៀជា1ជ័យបៀនាះបៀយីងប្រា�វូបៀ_ី̀ការសបៀប្រាម""ិ��និងរកវ_ីិសាប្រាស�ណាមួយជាក់Lក់មកបៀ_ី̀ជា1ំរបូៀដីម្ីបអនុវ��ន៍តាម ។ "ំបៀពាះវ_ីិសាប្រាស�អែដលប្រាកមុនិស្សិ�បៀយីងខ្ញុំ�នបៀ_ី̀ការបៀប្រាជីសបៀរ 8សយកវ_ីិសាប្រាស�អែដលសមប្រាស�បៀuតាមបៀគ្នាលការK៍ System Development Life Cycle (SDLC) Life Cycle (SDLC) បៀដីម្ីបឲ្យបៀរ��"ំប្រា�ព័ន្ធបៀនះបៀជា1ជ័យ ។

ខាងបៀប្រាកាមបៀនះ បៀយីងខ្ញុំនឹងបៀ_ី̀ការ�ងាs ញពីវ_ីិសាប្រាស�ម្លៃនការប្រាសាវប្រាជាវ បៀដីម្ីបបៀ_ី̀ការ�បៀង្កី�ប្រា�ព័ន្ធn្មីបៀនះបៀaងី អែដលប្រា�វូអនុវ��ន៍ដូ"ជំហានខាងបៀប្រាកាមបៀនះ ៖

៣.១.១ ការពិ2ក្សាបៀដីម្ីបបៀប្រាជីសបៀរ 8សប្រា�ធាន�ទប្រាកមុប្រាសាវប្រាជាវរ�ស់ពួកបៀយីង �នបៀ_ី̀ការពិ2ក្សាគ្នា� ជាមួយសមាជិកប្រាកមុទាងំអស់ បៀដីម្ីប

បៀ_ី̀ការបៀប្រាជីសបៀរ 8សប្រា�ធាន�ទ និងទីកអែនUង បៀដីម្បីបៀ_ី̀ការប្រាសាវប្រាជាវ និង"ុះកម្មសិក្សាសំរា�់សរបៀសរនិបៀក្ខ�ទ។បៀនះ1ឺជាជំហានមួយអែដលមានសារៈសំខាន់�ំrុ�ក�ុងការចា�់បៀr�ីមកសាង1ំបៀរាងមួយបៀនះបៀaងី ក�ុងបៀគ្នាលបៀ�"្បាស់Lស់ និងមាន2ពប្រា�ឹមប្រា�វូ។៣.១.២ ទំនាក់ទំនងសំុការអនុញ្ញា� �"ុះកម្មសិក្សា

�នា្ទ �់ពី�នបៀ_ី̀ការបៀប្រាជីសបៀរ 8សប្រា�ធាន�ទ និងទីកអែនUងសំរា�់"ុះកម្មសិក្សារ"ួរាល់បៀហីយបៀនាះប្រាកមុប្រាសាវប្រាជាវវបៀយីងខ្ញុំ�នបៀ_ី̀ការបៀស�ីរសំុការអនុញ្ញា� �ិពីសាកលវទិ្យាល័យ បៀ��លប្រា�យ បៀដីម្ីបបៀ_ី̀ការ"ុះកម្មសិក្សាបៀ�បៀ2ជនីយដ្ឋា4 ន Dim Sum Emperor ។៣.១.៣ ប្រា�មូលទិន�ន័យ

បៀ�ក�ុងការប្រា�មូលទិន�ន័យ បៀដីម្ីបសាងសង់ប្រា�ព័ន្ធបៀនះបៀaងីប្រាកមុបៀយីងខ្ញុំ�ន"ុះបៀ_ី̀ការសាកសួរបៀដីម្បីប្រា�មូលទិន�ន័យ អែដលពាក់ព័ន្ធបៀuនឹងការសាងសង់ប្រា�ព័ន្ធបៀនះ ។ "ំបៀពាះការប្រា�មូលយកទិន�ន័យប្រាកមុបៀយីងខ្ញុំ �ន"ុះបៀ_ី̀ការសមា្ភ សន៍ជាមួយ�ុ1lលិកមួយ"ំនួនសំុយកឯកសារបៀr្សងៗ

28

ជំហានទី១ ៖ បៀប្រាជីសបៀរ 8សប្រា�ធាន�ទ

ជំហានទី២ ៖ ទំនាក់ទំនងសំុការ"ុះអនុញ្ញា� �ិ"ុះកម្មសិក្សា

ជំហានទី៣ ៖ ប្រា�មូលទិន�ន័យ

ជំហានទី៤ ៖ វ2ិ1និងអែក�ប្រាមវូបៀលី"ំKុ"ខ̀ះខា�រ�ស់ប្រា�ព័ន្ធ

ជំហានទី៥ ៖ បៀ_ី̀ការបៀរ��"ំរ"នាសម្ព័ន្ធម្លៃនប្រា�ព័ន្ធn្មី

ជំហានទី៦ ៖ សរបៀសរកូដ

ជំហានទី៧ ៖ បៀ_ី̀ការពិបៀសា_ន៍សាកល្បងនិងអែnរក្សាប្រា�ព័ន្ធ

Page 35: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

អែដលពាក់ព័ន្ធ និងពិនិ�្យបៀមីលបៀ1ហទំព័រលក់ទំនិញបៀr្សងៗ អែដលមានលក្ខKៈ និងព័�៌មានប្រាសបៀដ�ងគ្នា� ។បៀដីម្ីបឲ្យកាន់អែ�"្បាស់នូវព័�៌មានអែnមបៀទ��បៀនាះ ប្រាកមុបៀយីងខ្ញុំ�នសំុការអនុញ្ញា� �ិ បៀដីម្ីបបៀ_ី̀ការសមា្ភ សន៍បៀដ្ឋាយផ្ទា្ទ ល់ជាមួយប្រា�ធាននាយក គ្នា "ន និង�ុ1lលិកបៀ�ទីបៀនាះ ។ បៀលីសពីបៀនះបៀuបៀទ��ប្រាកមុបៀយីងខ្ញុំ�នបៀ_ី̀ការអែ"កបៀពលបៀវLគ្នា� សំរា�់បៀ_ី̀ការងារ អែដលទាក់ទងនឹងការសមា្ភ សន៍ បៀដីម្ីបទទួល�នព័�៌មានអែដលប្រា�ឹមប្រា�វូ និង"ំបៀគ្នាលបៀ�អែដល"ង់�ន។៣.១.៤ វ2ិ1និងអែក�ប្រាមវូបៀលី"ំKុ"ខ̀ះខា�រ�ស់ប្រា�ព័ន្ធ

បៀប្រាកាយពី�នបៀ_ី̀ការប្រា�មូលឯកសារ និងព័�៌មាន�នបៀហីយប្រាកមុបៀយីងខ្ញុំ�នយកបៀuបៀ_ី̀ការវ2ិ1 បៀដីម្ីបបៀ_ី̀ការកំK�់នូវទិន�ន័យ បៀដីម្ីបសាងសង់ប្រា�ព័ន្ធn្មីបៀនះបៀaងី និងរក"ំKុ"ខ̀ះខា� បៀដីម្ីបកំK�់�ញ្ញាs n ្មី បៀហីយអែសង̀រកដំបៀណាះប្រាសាយបៀអាយ�នល្អប្រា�បៀសីរបៀដ្ឋាយបៀ_ី̀ការប្រា��ួពិនិ�្យបៀaងីវញិនិងបៀ_ី̀ការសាកសួរព័�៌មាន�អែន>ម អែដលមិន"្បាស់Lស់ទាក់ទងនឹងប្រា�ព័ន្ធn្មីបៀនះ ។ បៀដីម្ីបបៀ_ី̀ការវ2ិ1ឲ្យល្អិ�ល្អន ់ និងសីុជបៀប្រា�ក�ុងបៀគ្នាល�ំKងបៀរ��"ំប្រា�ព័ន្ធn្មីមួយបៀនះ ឲ្យមានលក្ខKៈសមប្រាស�បៀuនឹង�ប្រាមវូការម្លៃនការប្រា1�់ប្រា1ងព័�៌មានទំនិញរ�ស់បៀ2ជនីយដ្ឋា4 ន Dim Sum Emperor ។ ក�ុងជំហានបៀនះប្រាកមុនិស្ិស�បៀយីងខ្ញុំ�នបៀ_ី̀ការវ2ិ1បៀដ្ឋាយបៀប្រា�ី�បៀ"្ចកបៀទសដូ"ជា Context Diagram, Data Flow Diagram និង Database Normalization ជាបៀដីមសប្រាមា�់ការងារសាងសង់រ�ស់ប្រា�ពន្ធ័បៀនះ ។ ប្រា�សិនបៀ�ីការវ2ិ1បៀលីប្រា�ធាន�ទបៀនះពិនិ�្យបៀkីញថ្នាមានការលំ�ក�ុងការប្រាសាវប្រាជាវ និងបៀ_ី̀ការបៀដ្ឋាះ ប្រាសាយមិន�នបៀនាះប្រាកមុនិស្ិស�បៀយីងខ្ញុំប្រា�វូបៀ_ី̀ការពិ2ក្សាគ្នា� ម�ងបៀទ�� បៀដីម្ីបរកប្រា�ធាន�ទn្មីបៀពាល1ឺប្រា�វូប្រា�a�់បៀuបៀ_ី̀ការសិក្សានូវជំហានទី១ម�ងបៀទ�� ។ អែ�បៀ�ីសិនជាប្រា�ធាន�ទដអែដល �~ុអែន�ទិន�ន័យមិនប្រា1�់ប្រាគ្នាន់ ប្រាកមុបៀយីងខ្ញុំប្រា�វូពិ2ក្សាគ្នា� និងប្រា�មូលទិន�ន័យ�អែន>មបៀទ��។៣.១.៥ បៀ_ី̀ការបៀរ��"ំរ"នាសម្ព័ន្ធម្លៃនប្រា�ព័ន្ធn្មី

បៀនះជាជំហានអែដលប្រាកមុនិស្សិ�បៀយីងខ្ញុំប្រា�វូយកទិន�ន័យ អែដល�នពីការវ2ិ1មកបៀ_ី̀ការ�អែមUងជាប្រា�ព័ន្ធn ្មី អែដលប្រា�វូប្រា1�់ប្រា1ងបៀដ្ឋាយដ្ឋាតាបៀ�សបៀដ្ឋាយ�បៀង្កី�ឲ្យមាន User Interface, Table Relationship, Input/output, Process System និង Form ជាបៀដីម បៀហីយនិងរ"នាទប្រាមង់ម្លៃនការងារ អែដលចា�ំ"់សប្រាមា�់បៀ_ី̀ការប្រា1�់ប្រា1ងបៀuបៀលី ទំនិញ និងប្រា��ិ���ិការនានា រ�ស់បៀ2ជនីយដ្ឋា4 ន។ បៀ�ីសិនជាការប្រា1�់ប្រា1ងព័�៌មានមាន"ំKុ"ខ̀ះខា� ប្រាកមុបៀយីងខ្ញុំប្រា�វូប្រា�a�់បៀuបៀ_ី̀ការវ2ិ1 និងអែក�ប្រាមវូប្រា�ព័ន្ធបៀនះ�អែន>ម បៀពាល1ឺប្រា�a�់បៀuជំហានទី៤វញិ។

"ំបៀពាះ User Interface (Front End) បៀយីងខ្ញុំ�នបៀប្រាជីសបៀរ 8ស2សា និង�បៀ"្ចកវទិ្យាមួយ"ំនួនអែដលបៀ_ី̀ឲ្យមាន2ព Dynamic និង�បៀង្កីន2ពប្រាសស់សា្អ � បៀហីយ�បៀង្កីនឲ្យមាន2ពទាក់ទាញrងអែដរដូ"ជា CSS, JavaScript, jQuery ជាបៀដីម។

បៀដីម្ីបបៀ_ី̀ការ View នូវ Interface (Web Page) បៀយីងបៀប្រា�ីប្រា�ស់នូវ Web Browser មួយ"ំនួន ដូ"ជា ៖ Internet Explorer, Google Chrome, Mozilla Firefox និង Safari ជាបៀដីម ។

"ំបៀពាះការរក្សាទុកទិន�ន័យវញិប្រាកមុបៀយីងខ្ញុំ�នបៀប្រាជីសបៀរ 8សយក MySQL មកបៀ_ី̀ជា Datastore បៀដីម្ីបបៀ_ី̀ការរក្សាr្ទុកទិន�ន័យ អែដលមានលក្ខKៈជា Relational Database System ។ ព័�៌មាន21បៀប្រា"ីនបៀ�បៀលីអែវ�សាយ ប្រា�វូ�នបៀ1ទាញបៀ"ញព ី Database បៀដ្ឋាយ�ងាs ញព័�៌មានទាងំអស់ តាមរយៈបៀ1ហទំព័រអែវ�សាយ (Web Page) ។៣.១.៦ សរបៀសរកូដ

ជំហានបៀនះជា ជំហាន�នា្ទ �់ពី ការបៀរ��"ំរ"នាសម្ព័ន្ធអែដលបៀយីងប្រា�វូបៀ_ី̀ការ Implement Code បៀប្រាកាយពីបៀយីង�នបៀប្រាជីសបៀរ 8ស Programming Languages មកបៀ_ី̀ការសរបៀសរ បៀដីម្ីប�បៀង្កី�ប្រា�ព័ន្ធបៀនះបៀaងី ។ បៀ�ក�ុងដំណាក់កាលបៀនះអែដរប្រាកមុបៀយីងខ្ញុំ�នចា�់

29

Page 36: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

បៀr�ីមបៀ_ី̀ការសរបៀសរកូដ អែដលសមប្រាស�បៀuតាមការបៀរ��"ំរ"នាសម្ព័ន ្ធ (ជំហានទី៥) បៀដ្ឋាយបៀ_ី̀ការអនុវ��បៀ�បៀលី មា~ សីុនកំុព្យូទ័រជាក់អែស�ងអែ�ម�ង ។

៣.១.៧ បៀ_ី̀ការពិបៀសា_ន៍សាកល្បងនិងអែnរក្សាប្រា�ព័ន្ធបៀនះជាដំណាក់កាល អែដលបៀ_ី̀ការសាកល្បងបៀលីការបៀប្រា�ីប្រា�ស់ប្រា�ព័ន ្ធ បៀដីម្បីបៀ_ី̀ការអែសង̀រកនូវ

កំហុស និង�ញ្ញាs បៀr្សងៗ អែដលអា"នឹងបៀកី�មានបៀaងីបៀដ្ឋាយម្លៃ"ដន្យ ឬនឹកសា្ម នមិនដល ់ បៀហីយបៀ�ីករKីរកបៀkីញមាន"ំKុ"ខ̀ះខា� និង�ញ្ញាs បៀr្សងៗ បៀយីងប្រា�វូ�កបៀuបៀ_ី̀ការបៀរ��"ំរ"នាសម្ព័ន្ធ�អែន>មបៀទ��បៀពាល1ឺវលិបៀuជំហានទី៥វញិ ។

បៀ�ក�ុងការសាកល្បងបៀនះអែដរ បៀយីងបៀ_ី̀បៀaងីបៀដ្ឋាយអែ�ងអែ"កជាពីរប្រា�បៀ7ទ ៖ Internal test 1ឺជាការសាកល្បងបៀប្រា�ីប្រា�ស់ អែដលបៀ_ី̀បៀaងីបៀដ្ឋាយអ�កសរបៀសរបៀរ��

រាង បៀដីម្ីប�បៀង្កី�ប្រា�ព័ន្ធបៀនះបៀaងីបៀពាល1ឺនិស្ិស�ក�ុងប្រាកមុទាងំអស់គ្នា� ។ External test 1ឺជាការសាកល្បង អែដលបៀ_ី̀បៀaងីបៀដ្ឋាយដ្ឋាក់បៀអាយអ�កបៀប្រា�ីប្រា�ស់បៀ_ី̀

ការសាកល្បងបៀដ្ឋាយខUួនឯងផ្ទា្ទ ល់។៣.២ វ_ីិសាប្រាស�ប្រា�មូលទិន�ន័យ

បៀដីម្ីបយកមកកសាងប្រា�ព័ន្ធមួយបៀនះបៀaងី1ឺប្រា�វូបៀប្រា�ីយុទ្ធសាប្រាស�មួយ"ំនួនអែដលអា"បៀអាយបៀយីងទទួល�នព័�៌មាន អែដលបៀយីង"ង់�ន �~ុអែន�ការប្រា�មូលទិន�ន័យបៀនាះមិនអា"ធានាពិ�មួយរយ21រយបៀនាះបៀទ បៀប្រាពាះមិន�ន័យមួយ"ំនួនបៀទ��បៀយីងមិនអា"បៀ_ី̀ការប្រា�មូលបៀដ្ឋាយផ្ទា្ទ ល់បៀនាះបៀទ បៀហីយពិន�ន័យខUះបៀទ��អា"មានអាn៌កំ�ងំ ឬជាការសមាo �់រ�ស់រអងl2ពក៏បៀយីងមិនអា"សំុយកមក�នអែដរ ។

បៀ�ក�ុងការប្រា�មូលទិន�ន័យប្រាកមុបៀយីងខ្ញុំ�នបៀប្រា�ីប្រា�ស់វ_ីិពីរ1ឺ ការសមា្ភ សន៍ និងការអបៀង្ក�។ តាមការសមា្ភ សន ៍ (Interview) ប្រាកមុបៀយីងខ្ញុំ�ន"ុះជួ�ផ្ទា្ទ ល់ជាមួយ�ុ1lលិកអែដល

កំពុង�ំបៀរ 8ការងារអែដលពាក់ព័ន ្ធ បៀដីម្ីបសួរនាពីំប្រា�ព័ន្ធដំបៀKីរការក៏ដូ"ជាrលវ�ិកមួយ"ំនួន។

តាមការអបៀង្ក� (Observation) បៀ_ី̀ការអបៀង្ក� និងតាមដ្ឋានបៀដ្ឋាយពិនិ�្យបៀមីលបៀuបៀលីសា> ន2ពជាក់អែស�ងម្លៃនការងារ អែដលកំពុងដំបៀKីរការ បៀដីម្ីបរក2ពរអាក់រអួល និង2ពងាយប្រាសលួអែដល�~ះពាល់ដល់rលប្រា�បៀ|ជន៍រ�ស់ហាង ។

៣.២.១. ប្រា�បៀ7ទទិន�ន័យ"ំបៀពាះទិន�ន័យអែដលបៀយីងប្រា�មូលមក�នពីប្រា�បៀ7ទមួយ"ំនួនដូ"ជា ៖ ឯកសារ Document Picture ឯកសារទាងំអស់បៀនះអា"ជាទិន�ន័យអី̀ក៏បៀដ្ឋាយ

បៀអាយអែ�ប្រា�វូ�នបៀ1ក�់ប្រាតា"្បាស់Lស់ដូ"ជារ�យការK ៍ ទំរង់អែ���ទម្លៃនការងារសំ�ុប្រា�វក័ិយ�័ប្រា�។ល។

ព័�៌មានកំុព្ូយទ័រ(Computer Media) ជាទិន�ន័យអែដលបៀយីងអា"យកបៀ"ញពីកំុព្យូទ័រតាមរយៈ File បៀr្សងៗដូ"ជា Word Excel PDF ជាបៀដីម ។

មនុស្ស (People) ទិន�ន័យអែដលអា"យកពីអ�កបៀប្រា�ីប្រា�ស់បៀដ្ឋាយបៀ_ី̀ការសមា្ភ សន៍ និងរ�យការK៍បៀr្សងៗ ។ប្រា�បៀ7ទទិន�ន័យ អែដលអា"ទទួល�នពីការប្រា�មូលទិន�ន័យមាន ២ ប្រា�បៀ7ទ1ឺ ៖ ប្រា�បៀ7ទទិន�ន័យ"ម្បង (Primary Data)

តាមការ"ុះសាកសួរព័�៌មានបៀដ្ឋាយផ្ទា្ទ ល់ "ុះប្រា�មូលទិន�ន័យបៀដ្ឋាយបៀលីកជាសំKួរ

ប្រា�បៀ7ទទិន�ន័យ�នា្ទ �់�ន្ំស (Secondary Data) ឯកសារបៀr្សងៗអែដលr�ល់បៀដ្ឋាយ�ុ1lលិក ឯកសារប្រាសាវប្រាជាវពី�ណា្ណ ល័យ ឬអិុនបៀ_ីបៀK�

30

Page 37: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

៣.៣ វ_ីិសាប្រាស�វ2ិ1ទិន�ន័យ�នា្ទ �់ពីការប្រា�មូលទិន�ន័យប្រាកមុបៀយីងខ ្ញុំ �នយកទិន�ន័យអែដលប្រា�មូល�នបៀuបៀរ��

"ំនិងវ2ិ1ទិន�ន័យទាងំបៀនាះបៀអាយកាU យជាទិន�ន័យមានប្រា�បៀ|ជន៍ឬជាទិន�ន័យ1ំរ ូ បៀដីម្បីសាងសង់ប្រា�ព័ន្ធបៀនះបៀaងី ។ ការវ2ិ1ទិន�ន័យ 1ឺជាការវ2ិ1បៀuបៀលីទិន�ន័យដំ�ូង�នមកពីការប្រា�មូលទិន�ន័យ អែដលបៀយីងបៀរ��"ំទិន�ន័យទាងំឡាយបៀនាះកាU យជាទិន�ន័យ អែដលអា"យកបៀuបៀប្រា�ីប្រា�ស់�ន ។ ដំបៀKីរការម្លៃនការបៀរ��"ំ និងពិ�អំពីទិន�ន័យអែដលជា1នUឹះ បៀដីម្ីបយល់ដឹង ថ្នាបៀ�ីទិន�ន័យបៀប្រា�ីប្រា�ស់បៀដីម្ីបអ `ី ។ បៀយីងមានមបៀ_្យា�យជាបៀប្រា"ីនសប្រាមា�់បៀ_ី̀ការវ2ិ1ទិន�ន័យ បៀដីម្ីបr�ល់នូវ2ពងាយប្រាសលួក�ុងការប្រា1�់ប្រា1ងនិងតាមដ្ឋានអែដលpនបៀuដល់ការសន�ិដ្ឋា4 ន ។ បៀ|ងតាមបៀហ�ុrលទាងំបៀនះ បៀហីយបៀយីង1ិ�ថ្នាវាមានសារៈសំខាន់ណាស់"ំបៀពាះការយក"ិ��ទុកដ្ឋាក់បៀ�បៀពលបៀយីងបៀ_ី̀ការវ2ិ1ទិន�ន័យ និង1ិ�បៀអាយ�នដិ�ដល់អំពីទិន�ន័យបៀហីយសន�ិដ្ឋា4 នបៀលីទិន�ន័យអែដលបៀយីង�នប្រា�មូលរ"ូ ។

ការកំK�់បៀប្រាគ្នាងម្លៃនប្រា�ពន ្ធ័ 1ឺពិនិ�្យបៀមីលបៀលីសា> ន2ពជាក់អែស�ងទំហំម្លៃនទិន�ន័យ និងព័�៌មានអែដល"ង់�ងាs ញ ។ បៀ�ប្រាក�ខK្ឌ ម្លៃន2ពជាក់អែស�ងបៀយីងនឹងប្រា�វូយកវាមកបៀ_ី̀ការវ2ិ1 និងបៀ_ី̀ជា1ំរបូៀហីយប្រា�វូការ ការ�ញ្ញា្ជ ក់ពីការយល់ប្រាពមជាមួយអែr�ក អែដលពាក់ពន្ធ័ ។៣.៤ តារាងបៀពលបៀវL1បៀប្រាមាងសារណា

បៀ�ក�ុងអែr�កបៀនះ 1ឺជាអែr�កអែដលទាក់ទងបៀuនឹងបៀពលបៀវL អែដលបៀប្រា�ីសំរា�់កសាង1ំបៀរាងបៀនះបៀaងី ។ 1ំបៀរាងបៀពលបៀវLមានសារៈសំខាន់ណាស់សំរា�់កសាងប្រា�ព័ន ្ធ បៀប្រាពាះ1ំបៀរាងបៀពលបៀវLបៀនះបៀហីយអែដលបៀ_ី̀បៀអាយការអនុវ��ការងារប្រា�ប្រាពឹ��បៀu|~ ងល្អប្រា�បៀសីរ បៀហីយវាបៀ_ី̀បៀអាយការងាររ�ស់បៀយីង៦មាន2ព"្បាស់Lស ់ និងបៀទ�ងទា�់បៀuតាមបៀពលបៀវL អែដល�នកំK� ់ ។ ខាងបៀប្រាកាមបៀនះជាតារាងអែដលតាងឲ្យ1ំបៀរាងបៀពលបៀវL អែដលបៀប្រា�ីសំរា�់បៀ_ី̀ការសាងសង់ប្រា�ព័ន្ធបៀនះបៀaងី ៖

រ�ូ2ពទី១២៖ តារាងបៀពលបៀវL1បៀប្រាមាងសារណា

៣.៥ រ"នាសម្ព័ន្ធម្លៃនការប្រាសាវប្រាជាវប្រា�ព័ន្ធម្លៃនការប្រា1�់ប្រា1ងព័�៌មានតាមរយៈ Dynamic Website បៀ�បៀ2ជនីយដ្ឋា4 ន Dim

Sum Emperor អែដលប្រាកមុនិស្សិ�បៀយីងខ ្ញុំ "ុះបៀ_ី̀ការប្រាសាវប្រាជាវនឹង�បៀង្កី�បៀaងី បៀហីយបៀ_ី̀ការ"ងប្រាកងតាមលំដ្ឋា�់ ម្លៃនការ អែ�ងអែ"កជាជំពូក�ូ"ៗ បៀដីម្ីបងាយប្រាសលួក�ុងការសិក្សាអែសង̀យល់ និង

31

Page 38: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

បៀដីម្ីបងាយប្រាសលួអែសង̀យល់នូវ ប្រា�ព័ន្ធn្មីបៀនះ។ "ំKុ"ទាងំបៀនាះ រមួមានដូ"រ�ូ2ពអែដល�ងាs ញខាងបៀប្រាកាមបៀនះ៖

រ�ូ2ពទី១៣៖ រ"នាសម្ព័ន្ធម្លៃនការប្រាសាវប្រាជាវ

32

Page 39: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

លទ្ធrលម្លៃនការប្រាសាវប្រាជាវ

Page 40: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

៤.លទ្ធrលម្លៃនការប្រាសាវប្រាជាវ៤.១ លទ្ធrលម្លៃនការវ2ិ1 (Result of Analysis)

ការបៀប្រា�ីប្រា�ស់ប្រា�ព័ន្ធចាស ់ មានលក្ខKៈពំុទាន់ប្រា1�់ប្រាគ្នាន់អែដល�ណា្ដ លបៀអាយការងារមានលក្ខKៈកង̀ះខា�ខUះអែ�ងបៀកី�មានបៀaងីក�ុងការប្រា1�់ប្រា1ងដូ"ជា៖

ការប្រា1�់ប្រា1ង"ំនួនទំនិញពំុទាន់�នល្អ "ំនាយបៀពលបៀប្រា"ីនក�ុងការអែសង̀រកទំនិញ ពិ�កប្រា1�់ប្រា1ងការកម្ម~ង់ទំនិញពីអ�ិnិជន ពិ�កបៀ"ញវក័ិយ�័ប្រា�ដល់អ�ិnិជន(សរបៀសរបៀដ្ឋាយម្លៃដ) បៀប្រាពាះប្រា�វូ"ំណាយបៀពលបៀវL

បៀប្រា"ីនបៀដីម្ីប1Kនា"ំនួនទឹកប្រា�ក់ម្លៃនទំនិញនីមួយៗប្រា�សិនបៀ�ីមានការ�ញ្ចុះ�ម្លៃមU អែដលជាបៀហ�ុr្ដល់នូវ2ព2ន់ប្រា"aនិំង�ញ្ញាs លំ�កបៀr្សងៗបៀកី�មានបៀaងី។

ពិ�កបៀ_ី̀រ�យការK៍ប្រា�ចាអំែខ និងប្រា�ចាឆំ្នា� បំៀប្រាពាះថ្នាបៀ�បៀពលអែដលទិន�ន័យកាន់អែ�បៀប្រា"ីនបៀ_ី̀បៀអាយការអែសង̀រកមាន2ពយឺ�|~ វ និងr្ដល់នូវការលំ�កដល់មា្ច ស់ហាងក�ុងការ1Kនាអំពី"ំនូល និង"ំនាយអែដលមានបៀ�ក�ុងបៀ2ជនីយដ្ឋា4 នឌីមសាមំអែអមបៀ7ីបៀរ 8 ។

៤.២ លទ្ធrលម្លៃនការរ"នាប្រា�ព័ន្ធព�៌មានបៀដ្ឋាយ�នបៀមីលបៀkីញពី2ពលំ�កខាងបៀលីបៀនះ បៀទី�ជាបៀហ�ុនាបំៀអាយប្រាកមុប្រាសាវប្រាជាវរ�ស់

បៀយីងខ្ញុំសបៀប្រាម""ិ��បៀស�ីសំុបៀអាយមានការកសាងប្រា�ព័ន្ធn្មីអែដល បៀប្រា�ីប្រា�ស់បៀដ្ឋាយ�បៀ"្ចកវទិ្យាកំុព្យូទ័រអែដលr្ដល់នូវ2ពងាយប្រាសលួ និង�ំបៀពញ�ំរវូការមួយ"ំនួន_ំដូ"ជា៖

អែសង̀រកព�៌មានម្លៃនទំនិញមួយៗមាន2ពរហ័សទាន់"ិ�� ងាយប្រាសលួក�ងការ�ញ្ចូល លុ� និងអែកអែប្រា�បៀuបៀលីទិន�ន័យ ប្រា1�់ប្រា1ងបៀuបៀលីសិទ្ធរ�ស់អ�កបៀប្រា�ីប្រា�ស់ប្រា�ព័ន្ធ កា�់�ន>យទិន�ន័យអែដលស្ទួន r្ដល់នូវ2ពងាយប្រាសលួដល់អ�កបៀប្រា�ីប្រា�ស់ក�ុងការលក់ទំនិញនិងការបៀ"ញ

វក័ិយ�ប្រា� r្ដល់នូវ2ពងាយប្រាសលួដល់អ�កបៀប្រា�ីប្រា�ស់ក�ុងការ�បៀង្កី�រ�យការK៍ �បៀង្កីនលទ្ធ2ពការងារ និង"ំបៀKញបៀពលបៀវLការបៀប្រា�ីប្រា�ស់កម្មវ_ីិប្រា1�់ប្រា1ងប្រា�ព័ន្ធn្មីបៀនះ ពិ�ជាមានប្រា�សិទ្ធិ2ពក�ុងការជួយសប្រាមលួដល់

ការងារបៀr្សងៗអែដលមានបៀ�បៀ2ជនីយដ្ឋា4 ន ឌីមសាអំែអមបៀ7ីបៀរ 8 បៀហីយអែnមទាងំ�បៀង្កីននូវលទ្ធ2ពងាយប្រាសលួក�ុងការ�ញ្ចូល លុ� អែកអែប្រា� និងការអែសង̀រកទិន�ន័យ�ន|~ ងឆ្នា�់រហ័ស ។ បៀលីសពីបៀនះបៀuបៀទ�� ទិន�ន័យរក្សាទុកមានសុវ�>ិ2ពខ្ពស ់ និងមិនងាយ��់�ង់។ បៀ�ក�ុងអែr�កបៀនះអែដរប្រាកមុប្រាសាវប្រាជាវរ�ស់បៀយីងខ្ញុំ ក៏�នសាងសង់នូវដ្យាប្រាកាមមួយ"ំនួន បៀដីម្ីប�ងាs ញពីដំបៀKីរការរ�ស់ប្រា�ព័ន្ធនិងអែ�ងអែ"កមុខងារបៀuតាមអែr�កនីមួយៗ ។៤.២.១ ដ្យាប្រាកាម�រ�ិទ (Context Diagram)

រ�ូ2ពទី១៤: �ងាs ញពីContext Diagram of Dim Sum Emperor System

35

Page 41: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

៤.២.២ លំហូរទិន�ន័យ(Data Flow Diagram)រ�ូ2ពទី១៥ :�ងាs ញពី Diagram Level 0

៤.២.៣ ការបៀប្រាគ្នាងម្លៃន Physical Database ម្លៃនប្រា�ព័ន្ធn្មីជាការ�ងាs ញម្លៃនការអនុវ��ន៍ជាក់អែស្ដង ម្លៃនប្រា�ព័ន្ធទិន�ន័យបៀuបៀលីដំបៀKីរការ1បៀប្រាមាងរ�ស់

Logical Design ។ ប្រា�ព័ន្ធប្រា1�់ប្រា1ងការលក់ ជាក់អែស្ដងដូ"ជាកម្មវ_ីិអែដលអា"�ញ្ចូលទិន�ន័យ រក្សាទុកទិន�ន័យ �ងាs ញព ី Relationship រវាង Table and Table និង�ងាs ញពីរ�យការK៍។

36

Page 42: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

រ�ូ2ពទី១៦ :�ងាs ញពី Physical Database ម្លៃនប្រា�ព័ន្ធn្មី

៤.២.៤ Data Dictionary For Tableបៀ�ប្រា�ង់"ំនុ"បៀនះ បៀយីងសំបៀ�បៀលី Table ទាងំអស ់ អែដលមានបៀ�ក�ុង Database

បៀហីយប្រា�ព័ន្ធn្មីបៀនះមាន Table ដូ"ជា៖ Table Customer : បៀប្រា�ីសប្រាមា�់r្ទុកទិន�ន័យរ�ស់អ�ិnិជន

តារាងទី១:�ងាs ញពី Customer_Tbl

Table NameAttribute Name Type

Required PK or FK FK Referenced Table

Customer_Tbl

id int   PK  name varchar(100)      sex varchar(10)      phone varchar(50) Y    address varchaar(100) Y    status varchar(50) Y    

Table Category : បៀប្រា�ីសប្រាមា�់r្ទុកទិន�ន័យប្រា�បៀ7ទទំនិញតារាងទី២:�ងាs ញពី Category_Tbl

Table Name Attribute Name Type Required PK or FK FK Referenced TableCategory_tbl id int   PK  

name varchar(70) Y     code varchar(100) Y    image varchar(100) N    type varchar(100) Y

Table Expenses: បៀប្រា�ីសប្រាមា�់r្ទុកទិន�ន័យម្លៃនការ"ំណាយតារាងទី៣:�ងាs ញពី Expenses_Tbl

Table Name Attribute Name TypeRequire

d PK or FK FK Referenced TableExpenses_Tbl

id int   PK  

namevarchar(100) Y     

category_id int Y    Category_tbl

amountdecimal(18, 0) Y    

date date      

notevarchar(100) Y    

37

Page 43: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

Table Groups: បៀប្រា�ីសប្រាមា�់r្ទុកទិន�ន័យប្រាកមុអ�កបៀប្រា�ីប្រា�ស់តារាងទី៤:�ងាs ញពី Group_Tbl

Table Name Attribute Name TypeRequire

d PK or FK FK Referenced TableGroup_Tbl id int   PK  

namevarchar(100) Y     

descvarchar(100) Y  

Table Permission: បៀប្រា�ីសប្រាមា�់r្ទុកទិន�ន័យសិទ្ធអ�កបៀប្រា�ីប្រា�ស់តារាងទ៥:�ងាs ញពី Permission_Tbl

Table Name Attribute Name TypeRequire

d PK or FKFK Referenced

TablePermission_Tbl

id int   PK  group_id int Y   FK  Group_Tbl

product-index tinyint(1)   Table Products: បៀប្រា�ីសប្រាមា�់r្ទុកទិន�ន័យrលិ�rល

តារាងទ៦:�ងាs ញពី Product_TblTable Name Attribute Name Type

Required PK or FK FK Referenced Table

Product_Tbl id int   PK  name varchar(100) Y     

code varchar(100)  category_id int Y FK Category_Tbltype varchar(25) Yalert_qty intimage varchar(100)desc varchar(100)unit_id int Y FK Unit_Tblprice decimal(18,2) Y

Table Sale: បៀប្រា�ីសប្រាមា�់r្ទុកទិន�ន័យការលក់តារាងទ៧:�ងាs ញពី Sale_Tbl

Table Name Attribute Name TypeRequire

d PK or FK FK Referenced TableSale_Tbl id int   PK  

date date() Y     customer_id int Y  FK Customer_Tblcustomer_name varchar(100) Ybiller_id int Y FK User_Tbl

38

Page 44: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

biller_name varchar(100) Ynote varchar(100)

totaldecimal(18,2) Y

discountdecimal(18,2) Y

grand_totaldecimal(18,2) Y

payment_status varchar(50) Y

paiddecimal(18,2) Y

Table Sale_Items: បៀប្រា�ីសប្រាមា�់r្ទុកទិន�ន័យការលក់លំអិ�តារាងទី៨:�ងាs ញពី Sale_Items_Tbl

Table Name Attribute Name TypeRequire

d PK or FK FK Referenced TableSaleItem_Tbl

id int   PK  sale_id int Y   FK  Sale_Tblproduct_id int Y  FK Product_Tblproduct_code varchar(100) Yproduct_name varchar(100) Yproduct_type varchar(100) Y

unit_pricedecimal(18,2)

quantity int Y

discountdecimal(18,2) Y

product_unit_id int Y FK Unit_Tblproduct_unit_code varchar(100) Y

Table Unit: បៀប្រា�ីសប្រាមា�់r្ទុកទិន�ន័យខា� �ទំនិញតារាងទី៩:�ងាs ញពី Unit_Tbl

Table Name Attribute Name TypeRequire

d PK or FK FK Referenced TableUnit_Tbl id int   PK  

code varchar(100) Y   

name varchar(100) Y  

base_unit int FK Unit_Tbl

opterator varchar(1)

operation_valuedecimal(18,2) Y

39

Page 45: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

Table Users: បៀប្រា�ីសប្រាមា�់r្ទុកទិន�ន័យអ�កបៀប្រា�ីប្រា�ស់តារាងទី១០:�ងាs ញពី User_Tbl

Table Name Attribute Name Type Required PK or FK FK Referenced TableUser_Tbl id int   PK  

first_name varchar(100) Y   

last_name varchar(100) Y  group_id int FK Group_Tblphoto varchar(100)sex varchar(5) Yuser_name varchar(100) Yemail varchar(100) Ypassword varchar(100) Ystatus varchar(50) Y

៤.២.៥ ការរ"នាប្រា�ព័ន្ធ (Interface Design)៤.២.៥.១ Form Login

Form Login 1ឺបៀប្រា�ីប្រា�ស់សប្រាមា�់ការពារ ឫ r�ល់អទ្ធី2ពដល់អ�កអែដលជាមា្ច ស់អាជីវកម្ម �ន�បៀង្កី�បៀaងីបៀដីម្ីបបៀអាយបៀប្រា�ីប្រា�ស់ប្រា�ព័ន្ធបៀនះ។

រ�ូ2ពទី១៧៖ �ងាs ញពី Form Login

៤.២.៥.២ Form DashboardForm Dashboard បៀនះជា Form មួយអែដលនឺង�ងាs ញបៀaងី បៀ�បៀពលអែដលអ�ក

បៀប្រា�ីប្រា�ស់�នបៀ_ី̀ការ Login "ូលបៀuក�ុងប្រា�ព័ន្ធ�នបៀជា1ជ័យ។ វានឹង�ងាs ញនូវ"ំនួនសរ�ុម្លៃនrលិ�rល និងសកម្ម2ពបៀr្សងៗ។

រ�ូ2ពទី១៨៖ �ងាs ញពី Form Dashboard

40

Page 46: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

៤.២.៥.២ Form ProductForm Product 1ឺជា Form អែដលបៀប្រា�ីប្រា�ស់សប្រាមា�់�បៀង្កី�នូវrលិ�rលn្មី។

រ�ូ2ពទី១៩៖ �ងាs ញពី Form Product

Form ListProduct 1ឺជា Form អែដល�ងាs ញពី�ញ្ចីProduct។រ�ូ2ពទី២០៖ �ងាs ញពី Form ListProduct

41

Page 47: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

Form ProductDetail អែដល�ងាs ញពី�ញ្ចីលំអិ�រ�ស់Productរ�ូ2ពទី២១៖ �ងាs ញពី Form ProductDetail

៤.២.៥.៣ Form CategoriesForm Categories 1ឺបៀប្រា�ីប្រា�ស់សប្រាមា�់�បៀង្កី�នូវ Categories n្មីបៀហីយ

Categories បៀនះ1ឺបៀប្រា�ីប្រា�ស់សប្រាមា�់�ង្ករ2ពងាយប្រាសលួក�ុងការប្រា1�់ប្រា1ងrលិ�rល។រ�ូ2ពទី២២៖ �ងាs ញពី Form Categories

42

Page 48: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

៤.២.៥.៤ Form CustomersForm Customers បៀប្រា�ីប្រា�ស់សប្រាមា�់ប្រា1�់ប្រា1ងនិង�បៀង្កី�នូវអ�ិnិជនn្មី។

រ�ូ2ពទី២៣៖ �ងាs ញពី Form Customers

៤.២.៥.៥ Form UsersForm Users ជា Form សប្រាមា�់ប្រា1�់ប្រា1ង់ និង�បៀង្កី�នូវអ�កបៀប្រា�ីប្រា�ស់n្មី។

43

Page 49: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

រ�ូ2ពទី២៤៖ �ងាs ញពី Form Users

Form ListUsers ជា Form សប្រាមា�់�ងាs ញ�ញ្ជីអ�កបៀប្រា�ីប្រា�ស់។រ�ូ2ពទី២៥៖ �ងាs ញពី Form ListUser

៤.២.៥.៦ Form POS SalesForm POS Sales បៀប្រា�ីប្រា�ស់សប្រាមា�់ប្រា1�់ប្រា1ងនឹងលក់ទំនិញ អែដលអ�ិnិជន"ង់

ទិញ។

រ�ូ2ពទី២៦៖ �ងាs ញពី Form POS Sales

44

Page 50: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

៤.២.៥.៦ Form Expenses ReportsForm Expenses Reports សប្រាមា�់បៀមីលរ�យការK៍"ំនាយ។

រ�ូ2ពទី២៧៖ �ងាs ញពី Form Expenses Reports

៤.២.៥.៧ Form Sales ReportsForm Sales Reports បៀប្រា�ីប្រា�ស់សប្រាមា�់ប្រា1�់ប្រា1ង និងបៀមីលរ�យការK៍rលិ�rលអែដល�នលក់បៀ"ញ។

រ�ូ2ពទី២៨៖ �ងាs ញពី Form Sales Reports

45

Page 51: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

៤.៣ លទ្ធrលម្លៃនការសាកល្បងបៀប្រាកាយពីប្រា�ព័ន្ធn្មីប្រា�វូ�នសាងសង់បៀaងីរ"ួរាល ់ វាប្រា�វូ�នដ្ឋាក់បៀអាយបៀប្រា�ីប្រា�ស់សាកល្បង

បៀហីយលទ្ធrលអែដលទទួល�នបៀkីញថ្នា វាពិ�ជាមាន2ពងាយប្រាសលួជាងប្រា�ព័ន្ធចាស់អែមន រហ័សនិងងាយប្រាសលួទាងំការ�ញ្ចូលទិន�ន័យ ទាងំការអែសង̀រកទិន�ន័យប្រាពមទាងំការបៀ_ី̀រ�យការK៍ បៀប្រាពាះថ្នាទប្រាមង ់ និងបៀប្រាគ្នាងរ�ស់វាប្រា�វូ�នបៀរ��"ំរ"ួជាបៀប្រាស" រ 8ឯទិន�ន័យក៏មានប្រាសា�់ដូ"បៀនះអ�កបៀប្រា�ីប្រា�ស់ប្រាគ្នាន់អែ��ំបៀពញនូវព�៌មានមួយ"ំនួនដូ"ជា៖បៀp្ម ះអ�ិnិជន បៀលខទូរស័ព្ទ ម្លៃnoអែខឆ្នា� ំអាស័យដ្ឋា4 ន និងបៀ7ទជាបៀដីម

46

Page 52: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

ការពិ2ក្សា

Page 53: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

៥.ការពិ2ក្សាឆUងតាមការសិក្សារប្រាសាវប្រាជាវប្រា�មូលព័�៌មាន និងទិន�័យមួយ"ំនួន អែដលទាក់ទងនឹងការ

បៀប្រា�ីប្រា�ស់រាល់ម្លៃnoរ�ស់បៀ2ជនីយដ្ឋា4 នរ"ួមក ប្រាកមុនិស្សិ�បៀយីងខ ្ញុំ �ន�កទិន�័យទាងំអស ់ បៀនះបៀuបៀ_ី̀ការវ2ិ1បៀដីម្ីប�បៀង្កី�ជាប្រា�ព័ន ្ធ Database n្មីមួយ អែដលប្រា�ព័ន្ធបៀនះនិ|យអំពីការប្រា1�់ប្រា1ងស�ុក និងការលក់រ�ស់បៀ2ជនីយដ្ឋា4 ន។ ដូ"ជាការប្រា1�់ប្រា1ងបៀuបៀលីអ�ិnិជន ប្រា1�់ប្រា1ងបៀuបៀលីការលក់ និងការទិញ ប្រា1�់ប្រា1ងបៀuបៀលីrលិ�rលអែដល�ន�ញ្ញា្ជ ទិញរ�ស់អ�ិnិជន ក៏ដូ"ជាrលិ�rលអែដលបៀ�ក�ុងស�ុក ថ្នាបៀ�ីប្រា�វូបៀរ��"ំ|~ ងដូ"បៀម្ដ"សំរា�់ការលក ់ និងជាពីបៀសស1ឺមាន2ពរហ័សទាន់"ិ��ក�ុងការបៀ"ញវក័ិយ�ប្រា� (Bill) បៀuបៀអាយអ�ិnិជន។ ក�ុងប្រា�ព័ន្ធបៀនះrងអែដរ ប្រាកមុនិស្ិស�បៀយីងខ្ញុំ�នបៀប្រា�ីប្រា�ស់2សា HTML, Bootstrap, សប្រាមា�់បៀ_ី̀ជា Interface និង MySQL សំរា�់បៀ_ី̀ជា Database r្ទុកទិន�័យ។

សរ�ុមក ប្រា�ព័ន្ធn្មីអែដល�នតាក់អែ�ងបៀaងីបៀនះមានសារះសំខាន់ជាបៀប្រា"ីន �~ុអែន�បៀទាះ�ី|~ ងណាក៏បៀដ្ឋាយ ក�ុងការកសាងប្រា�ព័ន្ធបៀនះបៀaងី បៀយីងក៏មាននូវ1ុKសម្ប�ិ� និង 1ុKវ�ិ��ិខUះៗ ដូ"�បៀu៖៥.១ 1ុKសម្ប��ិ

មាន2ពងាយប្រាសលួក�ុងការ�ញ្ចូល �ងាs ញ និងមិនបៀ_ី̀បៀអាយ��់�ង់ទិន�័យ អា"រក្សាទិន�័យ�នបៀប្រា"ីន និងគ្នា្ម ន2ពស្ទួន (Redundancy Of Date) ប្រា�ព័ន្ធបៀនះបៀនះនឹងបៀ_ី̀ការ Install បៀ�បៀលី Client/Server �បៀង្កីនបៀល្ប�នការងារ និងពំុមាន27ស្ម1ុសា្ម ញក�ុងការប្រា1�់ប្រា1ងស�ុក ជួយបៀអាយការងារការលក់ដំបៀKីរការបៀល�នជាងមុន និង"ំបៀKញបៀពកបៀវL r្ដល់"ំបៀKះដឹងអែr�ក�បៀ"្ចកវទិ្យាព័�៌មានវទិ្យាដល់�ុ1lលិក ទទួល�ន"ំបៀKះដឹងអែnមមួយកំរ�ិបៀទ��សំរា�់អ�កសិក្សា អែសង̀រកព័�៌មានបៀr្សងៗ �នបៀល�ន ងាយប្រាសលួដល់អ�កបៀប្រា�ីប្រា�ស់ (User)។

៥.២ 1ុKវ�ិ��ិជាមួយនឹង1ុKសម្ប� �ិ បៀយីងខ្ញុំ�នពិនិ�្យបៀkីញពី1ុKវ�ិ� �ិ រ�ស់ប្រា�ព័ន្ធមួយ"ំនួនអែដរ

ដូ"ជា៖ ក�ុងការបៀប្រា�ីប្រា�ស់ប្រា�ព័ន្ធបៀនះ ប្រា1�់ប្រា1ងមិន�នរាល់នូវ�ំរវូការទាងំអស់រ�ស់

បៀ2ជនីយដ្ឋា4 ន។ តាមកតា� បៀពលបៀវLរយះបៀពលមានកំK�់ ការសាងសង់ប្រា�ព័ន្ធមិន�នបៀពញបៀលញ។ ប្រា�ព័ន្ធបៀនះមិនអា"បៀប្រា�ីប្រា�ស់បៀដ្ឋាយគ្នា្ម ន Internet �ន។ មិនបៀ_ី̀ការចា�់នូវកំហុស (Error) ម្លៃន Control មួយ"ំនួនអែដលជា Tools n្មីៗ

អែដល�នបៀ_ី̀ការអ7ិវឌ្ឍន ៏ អែដលមានបៀ�ក�ុងប្រា�ព័ន្ធបៀនះពីសំណាក់សាប្រាសា�ចារ្យ ក៏ ដូ"ជាមិ��និស្ិស�ដ៏ម្លៃទបៀទ�� បៀដីម្ីបអែកលំអរប្រា�ព័ន្ធបៀនះបៀអាយ�នប្រា�បៀសីបៀaងី

47

Page 54: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

បៀស"ក្ដីសន�ិដ្ឋា4 ន និងអនុសាសន៍

Page 55: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

៦.បៀស"ក្ដីសន�ិដ្ឋា4 ន និងអនុសាសន៍បៀ|ងបៀuតាមការសិក្សារប្រាសាវប្រាជាវអំពីប្រា�ព័ន្ធបៀដ្ឋាយការប្រា1�់ប្រា1ងទិន�័យបៀដ្ឋាយម្លៃដបៀអាយអែប្រា�

កាU យបៀuជាការប្រា1�់ប្រា1ងបៀដ្ឋាយ (Database system) រ�ស់បៀ2ជនីយដ្ឋា4 ន “Dim Sum Emperer” �នសព̀ប្រា1�់តាមជំហានអែដល�នកំK� ់ 1ឺអាប្រាស័យបៀuបៀលីការប្រា�មូលទិន�័យអែដលពាក់ព័ន្ធជាមួយនឹងការវ2ិ1រ"នាស័ម្ពនម្លៃនដំបៀKីរការប្រា1�់ប្រា1ងស�ុក និងការលក់បៀដ្ឋាយអ�កប្រា1�់ប្រា1ង។ �នា្ទ �់ពី�នបៀ_ី̀ការវ2ិ1បៀuតាម "ំនុ"នីមួយៗ បៀuដល់ការអនុវ��៏ អែដលអា"បៀអាយ អ�កបៀប្រា�ីប្រា�ស់ បៀ_ី̀ការអនុវ��ន៏បៀ�ក�ុងបៀ2ជនីយដ្ឋា4 ន�នបៀដ្ឋាយ ប្រាកមុនិស្ិស�បៀយីងខ្ញុំ�នយក DBMS MYSQL មកបៀ_ី̀ជា BackEnd ក�ុងការប្រា1�់ប្រា1ងបៀuបៀលីទិន�័យ និង FrontEnd ជា HTML, Bootstrap, បៀ_ី̀ជាInterface សប្រាមា�់បៀ_ី̀ជាការ�ញ្ចូលទិន�័យ។៦.១ បៀស"ក្ដីសនិដ្ឋា4 ន

�នា្ទ �់ពីប្រាកមុនិស្ិស� បៀយីងខ្ញុំ�ន�ញ្ច�់ការសិក្សាប្រាសាវប្រាជាវបៀប្រាកាមប្រា�ធាន�ទប្រា�ព័ន្ធប្រា1�់ប្រា1ងការលក់រ�ស់បៀ2ជនីយដ្ឋា4 ន “ឌីម សា ំអែអមបៀ7ីបៀរ 8” អែដល�ន�បៀង្កី�ប្រា�ព័ន្ធបៀនះបៀaងី មានសារៈសំខាន់ខាU ងំណាស់សំរា�់ជំនួយដល់ការប្រា1�់ប្រា1ងស�ុក និងការលក់បៀ�ក�ុងបៀ2ជនីយដ្ឋា4 នមួយបៀនះបៀប្រាពាះ�នបៀ_ី̀បៀអាយមាន2ពរហ័សដល់ការ"ុះបៀp្ម ះ�ញ្ចីទិញ និងការដំបៀKីរការដល់ការអែសង̀រកrលិ�rល និងមិនមានការ7័ន�ប្រា"aដំល់អ�ិnិជន។ ជាសរ�ុមក ប្រា�ព័ន្ធបៀនះអែដរបៀយីងអា"សន�ិដ្ឋា4 ន�នថ្នាវាមាន1ុKសម្ប�ិ�ជាបៀប្រា"ីនដូ"ជាៈ

ជាប្រា�ព័ន្ធn្មី�ំrុ� អែដលមិនទាន់មានរ�ស់បៀ2ជនីយដ្ឋា4 ន ។ កា�់�ន>យដល់ការបៀប្រា�ីប្រាកដ្ឋាសក�់ប្រាតាបៀp្ម ះនិង�ញ្ញា្ជ ទិញរ�ស់អ�ិnិ

ជន។ កា�់�ន>យបៀពលបៀវLក�ុងការរកឯកសារ rលិ�rល និង អ�ិnិជន។ មានសុវ�>ិ2ពក�ុងការរក្សាទុកទិន�័យបៀr្សងៗ។ �បៀង្កីនបៀសា7័K2ពដល់ការបៀ_ី̀កិ"្ចការ និងចា�់រហ័ស។ �បៀង្កីន"ំបៀKះដឹងដល់�ុ1lលិក និងអ�កបៀប្រា�ីប្រា�ស់ មាន2ពងាយប្រាសលួក�ុងការបៀ_ី̀រ�យការK៏ជូនអ�កប្រា1�់ប្រា1ង។

៦.២ អនុសាសន៍បៀដ្ឋាយបៀហ�ុថ្នាប្រា�ព័ន្ធប្រា1�់ប្រា1ងការលក់រ�ស់បៀ2ជនីយដ្ឋា4 ន 1ឺជាប្រា�ព័ន្ធn្មីដូ"បៀនះអ�ក

បៀប្រា�ីប្រា�ស់មិនមានលទ្ធ2ពយល់�នបៀល�ន បៀហីយនឹង"្បាស់ពីដំបៀKីរការបៀនាះបៀទ បៀហ�ុដូ"បៀនះបៀដីម្ីបបៀអាយការបៀប្រា�ីប្រា�ស់ប្រា�ព័ន្ធមានប្រា�សិទ្ធ2ពអ�កបៀប្រា�ីប្រា�ស់ (User) ប្រា�វូអនុវ��តាមបៀគ្នាលការK៍ដូ"ខាងបៀប្រាកាម ៖

ប្រា�វូបៀ_ី̀ការ Backup Data ទុកបៀដីម្ីបបៀជ�សវាងការ��់�ង់បៀដ្ឋាយប្រា�ការណាមួយដូ"ជា ការវាយប្រា�ហារពីបៀមបៀរា1 និងការ��់�ង់ទិន�ន័យពីសំណាក់ជនខិលខូ"

ប្រា�វូយល់បៀអាយ�ន"្បាស់ពីមុខងាររ�ស់ប្រា�ព័ន ្ធ បៀដីម្ីបងាយប្រាសលួបៀប្រា�ីប្រា�ស ់ និងមិនប្រា"aំ

មិនប្រា�វូបៀប្រា�ីប្រា�ស់ Internet បៀ�បៀលីមា~ សីុនអែដលបៀប្រា�ីប្រា�ស់ប្រា�ព័ន្ធបៀនាះ (បៀ�ីមិនចា�ំ"់) បៀប្រាពាះវាប្រា�វូប្រា�ឈមមុខពីការវាយប្រា�ហារ ពីសំណាក់ជនខិលខូ" តាម�ណា្ដ ញ Internet

ប្រា�វូបៀប្រា�ីប្រា�ស់កម្មវ_ីិកមា្ច �់បៀមបៀរា1មួយ"ំនួនបៀ�បៀលីមា~ សីុន អែដលបៀប្រា�ីប្រា�ស់ប្រា�ព័ន្ធដូ"ជា (Avira, AVG…)

49

Page 56: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

ឯកសារបៀ|ង

Page 57: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

ឯកសារបៀ|ង Alan Dennis .(2007). System Analysis and Design (5th

Edition).United State Michael J. Hernandez (2006). Database Design fore mere

Mortals: A Hands on Guide to Relational Database Design.London

Julie C.Meloni. PHP fast & Easy Web Development. 2001.United State

Rasmus Lerdorf. (2002). PHP Programmming for the absolute beginner Pretice-Hall of India

Thomas Myer. (2008). Professinal Codeigniter. United State Ajit Kumar. (2012). Sencha MVC Architecture. United State https://www.w3schools.com/booTsTrap/default.asp https://getbootstrap.com/ https://codeigniter.com/ https://bootsnipp.com/ https://www.w3schools.com/php/ https://technet.microsoft.com/en-us/library/

ms190612(v=sql.105).aspx http://php.net/ https://www.dataentryoutsourced.com/blog/components-of-a-

database-management-system/ http://www.gotreportviewer.com/ https://www.safaribooksonline.com/library/view/adonet-in-a/

0596003617/ch01s02.html

Page 58: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

ឧ�សម្ព័ន្ធ

Page 59: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

ឧ�សម្ព័ន្ធ

Login Form View

<?php defined('BASEPATH') OR exit('No direct script access allowed'); ?><!DOCTYPE html><html><head> <meta charset="utf-8"> <title><?= $title ?></title> <script type="text/javascript">if (parent.frames.length !== 0) { top.location = '<?=admin_url()?>'; }</script> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="shortcut icon" href="<?= $assets ?>images/icon.png"/> <link href="<?= $assets ?>styles/theme.css" rel="stylesheet"/> <link href="<?= $assets ?>styles/style.css" rel="stylesheet"/> <link href="<?= $assets ?>styles/helpers/login.css" rel="stylesheet"/> <script type="text/javascript" src="<?= $assets ?>js/jquery-2.0.3.min.js"></script> <link href="https://fonts.googleapis.com/css?family=Bayon|Roboto" rel="stylesheet">

</head>

<body class="login-page"> <div class="page-back bwhite"> <div class="text-center"> <?php if ($Settings->logo2) { echo '<img src="' . base_url('assets/uploads/logos/' . $Settings->logo2) . '" alt="' . $Settings->site_name . '" style="margin-bottom:10px;" />'; } ?> </div>

<div id="login"> <div class=" container">

<div class="login-form-div"> <div class="login-content"> <?php if ($Settings->mmode) { ?> <div class="alert alert-warning"> <button data-dismiss="alert" class="close" type="button">×</button>

Page 60: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

<?= lang('site_offline') ?> </div> <?php } if ($error) { ?> <div class="alert alert-danger"> <button data-dismiss="alert" class="close" type="button">×</button> <ul class="list-group"><?= $error; ?></ul> </div> <?php } if ($message) { ?> <div class="alert alert-success"> <button data-dismiss="alert" class="close" type="button">×</button> <ul class="list-group"><?= $message; ?></ul> </div> <?php } ?> <?php echo admin_form_open("auth/login", 'class="login" data-toggle="validator"'); ?> <div class="div-title col-sm-12"> <h3 class="text-primary"><?= lang('login_to_your_account') ?></h3> </div> <div class="col-sm-12"> <div class="textbox-wrap form-group"> <div class="input-group"> <span class="input-group-addon"><i class="fa fa-user"></i></span> <input type="text" value="<?= DEMO ? '[email protected]' : ''; ?>" required="required" class="form-control" name="identity" placeholder="<?= lang('username') ?>"/> </div> </div> <div class="textbox-wrap form-group"> <div class="input-group"> <span class="input-group-addon"><i class="fa fa-key"></i></span> <input type="password" value="<?= DEMO ? '12345678' : ''; ?>" required="required" class="form-control " name="password"

Page 61: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

placeholder="<?= lang('pw') ?>"/> </div> </div> </div>

<?php echo form_close(); ?> <div class="clearfix"></div> </div>

</div> </div> </div> </div>

<script src="<?= $assets ?>js/jquery.js"></script> <script src="<?= $assets ?>js/bootstrap.min.js"></script> <script src="<?= $assets ?>js/jquery.cookie.js"></script> <script src="<?= $assets ?>js/login.js"></script></body></html>

Controller

<?php defined('BASEPATH') OR exit('No direct script access allowed');

class Auth extends MY_Controller {

function __construct() { parent::__construct(); $this->lang->admin_load('auth', $this->Settings->user_language); $this->load->library('form_validation'); $this->form_validation->set_error_delimiters($this->config->item('error_start_delimiter', 'ion_auth'), $this->config->item('error_end_delimiter', 'ion_auth')); $this->load->admin_model('auth_model'); $this->load->library('ion_auth'); }

function index() {

if (!$this->loggedIn) { admin_redirect('login');

Page 62: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

} else { $this->data['message'] = (validation_errors()) ? validation_errors() : $this->session->flashdata('message'); redirect($_SERVER['HTTP_REFERER']); } }

function getUserLogins($id = NULL) { if (!$this->ion_auth->in_group(array('owner', 'admin'))) { $this->session->set_flashdata('warning', lang("access_denied")); admin_redirect('welcome'); } $this->load->library('datatables'); $this->datatables ->select("login, ip_address, time") ->from("user_logins") ->where('user_id', $id);

echo $this->datatables->generate(); }

function login($m = NULL) { if ($this->loggedIn) { $this->session->set_flashdata('error', $this->session->flashdata('error')); admin_redirect('welcome'); } $this->data['title'] = lang('login');

if ($this->Settings->captcha) { $this->form_validation->set_rules('captcha', lang('captcha'), 'required|callback_captcha_check'); }

if ($this->form_validation->run() == true) {

$remember = (bool)$this->input->post('remember');

Page 63: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

if ($this->ion_auth->login($this->input->post('identity'), $this->input->post('password'), $remember)) { if ($this->Settings->mmode) { if (!$this->ion_auth->in_group('owner')) { $this->session->set_flashdata('error', lang('site_is_offline_plz_try_later')); admin_redirect('auth/logout'); } } if ($this->ion_auth->in_group('customer') || $this->ion_auth->in_group('supplier')) { if(file_exists(APPPATH.'controllers'.DIRECTORY_SEPARATOR.'shop'.DIRECTORY_SEPARATOR.'Shop.php')) { $this->session->set_flashdata('message', $this->ion_auth->messages()); redirect(base_url()); } else { admin_redirect('auth/logout/1'); } } $this->session->set_flashdata('message', $this->ion_auth->messages()); $referrer = ($this->session->userdata('requested_page') && $this->session->userdata('requested_page') != 'admin') ? $this->session->userdata('requested_page') : 'welcome'; admin_redirect($referrer); } else { $this->session->set_flashdata('error', $this->ion_auth->errors()); admin_redirect('login'); } } else {

$this->data['error'] = (validation_errors()) ? validation_errors() : $this->session->flashdata('error'); $this->data['message'] = $this->session->flashdata('message'); if ($this->Settings->captcha) { $this->load->helper('captcha'); $vals = array( 'img_path' => './assets/captcha/', 'img_url' => base_url('assets/captcha/'), 'img_width' => 150, 'img_height' => 34, 'word_length' => 5,

Page 64: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

'colors' => array('background' => array(255, 255, 255), 'border' => array(204, 204, 204), 'text' => array(102, 102, 102), 'grid' => array(204, 204, 204)) ); $cap = create_captcha($vals); $capdata = array( 'captcha_time' => $cap['time'], 'ip_address' => $this->input->ip_address(), 'word' => $cap['word'] );

$query = $this->db->insert_string('captcha', $capdata); $this->db->query($query); $this->data['image'] = $cap['image']; $this->data['captcha'] = array('name' => 'captcha', 'id' => 'captcha', 'type' => 'text', 'class' => 'form-control', 'required' => 'required', 'placeholder' => lang('type_captcha') ); }

$this->data['identity'] = array('name' => 'identity', 'id' => 'identity', 'type' => 'text', 'class' => 'form-control', 'placeholder' => lang('email'), 'value' => $this->form_validation->set_value('identity'), ); $this->data['password'] = array('name' => 'password', 'id' => 'password', 'type' => 'password', 'class' => 'form-control', 'required' => 'required', 'placeholder' => lang('password'), ); $this->data['allow_reg'] = $this->Settings->allow_reg; if ($m == 'db') { $this->data['message'] = lang('db_restored'); } elseif ($m) { $this->data['error'] = lang('we_are_sorry_as_this_sction_is_still_under_development.'); }

Page 65: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

$this->load->view($this->theme . 'auth/login', $this->data); } } }

Model

<?php defined('BASEPATH') OR exit('No direct script access allowed');

class Auth_model extends CI_Model{

public $tables = array(); public $activation_code; public $forgotten_password_code; public $new_password; public $identity; public $_ion_where = array(); public $_ion_select = array(); public $_ion_like = array(); public $_ion_limit = NULL; public $_ion_offset = NULL; public $_ion_order_by = NULL; public $_ion_order = NULL; protected $_ion_hooks; protected $response = NULL; protected $messages; protected $errors; protected $error_start_delimiter; protected $error_end_delimiter; public $_cache_user_in_group = array(); protected $_cache_groups = array();

public function __construct() { parent::__construct();

$this->load->config('ion_auth', TRUE);

//initialize db tables data $this->tables = $this->config->item('tables', 'ion_auth');

//initialize data $this->identity_column = $this->config->item('identity', 'ion_auth');

Page 66: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

$this->store_salt = $this->config->item('store_salt', 'ion_auth'); $this->salt_length = $this->config->item('salt_length', 'ion_auth'); $this->join = $this->config->item('join', 'ion_auth');

//initialize hash method options (Bcrypt) $this->hash_method = $this->config->item('hash_method', 'ion_auth'); $this->default_rounds = $this->config->item('default_rounds', 'ion_auth'); $this->random_rounds = $this->config->item('random_rounds', 'ion_auth'); $this->min_rounds = $this->config->item('min_rounds', 'ion_auth'); $this->max_rounds = $this->config->item('max_rounds', 'ion_auth');

//initialize messages and error $this->messages = array(); $this->errors = array(); $delimiters_source = $this->config->item('delimiters_source', 'ion_auth');

//load the error delimeters either from the config file or use what's been supplied to form validation if ($delimiters_source === 'form_validation') { //load in delimiters from form_validation //to keep this simple we'll load the value using reflection since these properties are protected $this->load->library('form_validation'); $form_validation_class = new ReflectionClass("CI_Form_validation");

$error_prefix = $form_validation_class->getProperty("_error_prefix"); $error_prefix->setAccessible(TRUE); $this->error_start_delimiter = $error_prefix->getValue($this->form_validation); $this->message_start_delimiter = $this->error_start_delimiter;

$error_suffix = $form_validation_class->getProperty("_error_suffix"); $error_suffix->setAccessible(TRUE);

Page 67: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

$this->error_end_delimiter = $error_suffix->getValue($this->form_validation); $this->message_end_delimiter = $this->error_end_delimiter; } else { //use delimiters from config $this->message_start_delimiter = $this->config->item('message_start_delimiter', 'ion_auth'); $this->message_end_delimiter = $this->config->item('message_end_delimiter', 'ion_auth'); $this->error_start_delimiter = $this->config->item('error_start_delimiter', 'ion_auth'); $this->error_end_delimiter = $this->config->item('error_end_delimiter', 'ion_auth'); }

//initialize our hooks object $this->_ion_hooks = new stdClass;

//load the bcrypt class if needed if ($this->hash_method == 'bcrypt') { if ($this->random_rounds) { $rand = rand($this->min_rounds, $this->max_rounds); $rounds = array('rounds' => $rand); } else { $rounds = array('rounds' => $this->default_rounds); }

$this->load->library('bcrypt', $rounds); }

$this->trigger_events('model_constructor'); }

public function hash_password($password, $salt = false, $use_sha1_override = FALSE) { if (empty($password)) { return FALSE; }

//bcrypt if ($use_sha1_override === FALSE && $this->hash_method == 'bcrypt') { return $this->bcrypt->hash($password); }

Page 68: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

if ($this->store_salt && $salt) { return sha1($password . $salt); } else { $salt = $this->salt(); return $salt . substr(sha1($salt . $password), 0, -$this->salt_length); } }

public function hash_password_db($id, $password, $use_sha1_override = FALSE) { if (empty($id) || empty($password)) { return FALSE; }

$this->trigger_events('extra_where');

$query = $this->db->select('password, salt') ->where('id', $id) ->limit(1) ->get($this->tables['users']);

$hash_password_db = $query->row();

if ($query->num_rows() !== 1) { return FALSE; }

// bcrypt if ($use_sha1_override === FALSE && $this->hash_method == 'bcrypt') { if ($this->bcrypt->verify($password, $hash_password_db->password)) { return TRUE; }

return FALSE; }

// sha1 if ($this->store_salt) { $db_password = sha1($password . $hash_password_db->salt); } else { $salt = substr($hash_password_db->password, 0, $this->salt_length);

Page 69: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

$db_password = $salt . substr(sha1($salt . $password), 0, -$this->salt_length); }

if ($db_password == $hash_password_db->password) { return TRUE; } else { return FALSE; } }

public function hash_code($password) { return $this->hash_password($password, FALSE, TRUE); }

public function username_check($username = '') { $this->trigger_events('username_check');

if (empty($username)) { return FALSE; }

$this->trigger_events('extra_where');

return $this->db->where('username', $username) ->count_all_results($this->tables['users']) > 0; }

public function email_check($email = '') { $this->trigger_events('email_check');

if (empty($email)) { return FALSE; }

$this->trigger_events('extra_where');

return $this->db->where('email', $email) ->count_all_results($this->tables['users']) > 0; }

public function identity_check($identity = '') {

Page 70: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

$this->trigger_events('identity_check');

if (empty($identity)) { return FALSE; }

return $this->db->where($this->identity_column, $identity) ->count_all_results($this->tables['users']) > 0; }

public function login($identity, $password, $remember = FALSE) { $this->trigger_events('pre_login');

if (empty($identity) || empty($password)) { $this->set_error('login_unsuccessful'); return FALSE; }

$this->trigger_events('extra_where'); $this->load->helper('email'); $this->identity_column = valid_email($identity) ? 'email' : 'username'; $query = $this->db->select($this->identity_column . ', username, email, id, password, active, last_login, last_ip_address, avatar, gender, group_id, warehouse_id, biller_id, company_id, view_right, edit_right, allow_discount, show_cost, show_price') ->where($this->identity_column, $this->db->escape_str($identity)) ->limit(1) ->get($this->tables['users']);

if ($this->is_time_locked_out($identity)) { //Hash something anyway, just to take up time $this->hash_password($password);

$this->trigger_events('post_login_unsuccessful'); $this->set_error('login_timeout');

return FALSE; }

if ($query->num_rows() === 1) { $user = $query->row();

Page 71: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

$password = $this->hash_password_db($user->id, $password);

if ($password === TRUE) {

if ($user->active != 1) { $this->trigger_events('post_login_unsuccessful'); $this->set_error('login_unsuccessful_not_active'); return FALSE; }

$this->set_session($user);

$this->update_last_login($user->id); $this->update_last_login_ip($user->id); $ldata = array('user_id' => $user->id, 'ip_address' => $this->input->ip_address(), 'login' => $identity); $this->db->insert('user_logins', $ldata); $this->clear_login_attempts($identity);

if ($remember && $this->config->item('remember_users', 'ion_auth')) { $this->remember_user($user->id); }

$this->trigger_events(array('post_login', 'post_login_successful')); $this->set_message('login_successful');

return TRUE; } }

//Hash something anyway, just to take up time $this->hash_password($password);

$this->increase_login_attempts($identity);

$this->trigger_events('post_login_unsuccessful'); $this->set_error('login_unsuccessful');

return FALSE; }

public function is_max_login_attempts_exceeded($identity) { if ($this->config->item('track_login_attempts', 'ion_auth')) {

Page 72: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

$max_attempts = $this->config->item('maximum_login_attempts', 'ion_auth'); if ($max_attempts > 0) { $attempts = $this->get_attempts_num($identity); return $attempts >= $max_attempts; } } return FALSE; }

function get_attempts_num($identity) { if ($this->config->item('track_login_attempts', 'ion_auth')) { $ip_address = $this->_prepare_ip($this->input->ip_address()); $this->db->select('1', FALSE); if ($this->config->item('track_login_ip_address', 'ion_auth')) $this->db->where('ip_address', $ip_address); else if (strlen($identity) > 0) $this->db->or_where('login', $identity); $qres = $this->db->get($this->tables['login_attempts']); return $qres->num_rows(); } return 0; }

public function is_time_locked_out($identity) {

return $this->is_max_login_attempts_exceeded($identity) && $this->get_last_attempt_time($identity) > time() - $this->config->item('lockout_time', 'ion_auth'); }

public function get_last_attempt_time($identity) { if ($this->config->item('track_login_attempts', 'ion_auth')) { $ip_address = $this->_prepare_ip($this->input->ip_address());

$this->db->select_max('time'); if ($this->config->item('track_login_ip_address', 'ion_auth')) $this->db->where('ip_address', $ip_address); else if (strlen($identity) > 0) $this->db->or_where('login', $identity); $qres = $this->db->get($this->tables['login_attempts'], 1);

if ($qres->num_rows() > 0) {

Page 73: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

return $qres->row()->time; } }

return 0; }

public function increase_login_attempts($identity) { if ($this->config->item('track_login_attempts', 'ion_auth')) { $ip_address = $this->_prepare_ip($this->input->ip_address()); return $this->db->insert($this->tables['login_attempts'], array('ip_address' => $ip_address, 'login' => $identity, 'time' => time())); } return FALSE; }

public function clear_login_attempts($identity, $expire_period = 86400) { if ($this->config->item('track_login_attempts', 'ion_auth')) { $ip_address = $this->_prepare_ip($this->input->ip_address());

$this->db->where(array('ip_address' => $ip_address, 'login' => $identity)); // Purge obsolete login attempts $this->db->or_where('time <', time() - $expire_period, FALSE);

return $this->db->delete($this->tables['login_attempts']); } return FALSE; }

public function limit($limit) { $this->trigger_events('limit'); $this->_ion_limit = $limit;

return $this; }

public function offset($offset) { $this->trigger_events('offset');

Page 74: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

$this->_ion_offset = $offset;

return $this; }

public function where($where, $value = NULL) { $this->trigger_events('where');

if (!is_array($where)) { $where = array($where => $value); }

array_push($this->_ion_where, $where);

return $this; }

public function like($like, $value = NULL, $position = 'both') { $this->trigger_events('like');

if (!is_array($like)) { $like = array($like => array( 'value' => $value, 'position' => $position, )); }

array_push($this->_ion_like, $like);

return $this; }

public function select($select) { $this->trigger_events('select');

$this->_ion_select[] = $select;

return $this; }

public function order_by($by, $order = 'desc') { $this->trigger_events('order_by');

$this->_ion_order_by = $by;

Page 75: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

$this->_ion_order = $order;

return $this; }

public function row() { $this->trigger_events('row');

$row = $this->response->row(); $this->response->free_result();

return $row; }

public function row_array() { $this->trigger_events(array('row', 'row_array'));

$row = $this->response->row_array(); $this->response->free_result();

return $row; }

public function result() { $this->trigger_events('result');

$result = $this->response->result(); $this->response->free_result();

return $result; }

public function result_array() { $this->trigger_events(array('result', 'result_array'));

$result = $this->response->result_array(); $this->response->free_result();

return $result; }

public function num_rows() { $this->trigger_events(array('num_rows'));

Page 76: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

$result = $this->response->num_rows(); $this->response->free_result();

return $result; }

}

Dashboard View

<?php defined('BASEPATH') OR exit('No direct script access allowed'); ?><?phpfunction row_status($x){ if ($x == null) { return ''; } elseif ($x == 'pending') { return '<div class="text-center"><span class="label label-warning">' . lang($x) . '</span></div>'; } elseif ($x == 'completed' || $x == 'paid' || $x == 'sent' || $x == 'received') { return '<div class="text-center"><span class="label label-success">' . lang($x) . '</span></div>'; } elseif ($x == 'partial' || $x == 'transferring') { return '<div class="text-center"><span class="label label-info">' . lang($x) . '</span></div>'; } elseif ($x == 'due') { return '<div class="text-center"><span class="label label-danger">' . lang($x) . '</span></div>'; } else { return '<div class="text-center"><span class="label label-default">' . lang($x) . '</span></div>'; }}

?><?php if (($Owner || $Admin) && $chatData) { foreach ($chatData as $month_sale) { $months[] = date('M-Y', strtotime($month_sale->month)); $msales[] = $month_sale->sales; $mtax1[] = $month_sale->tax1; $mtax2[] = $month_sale->tax2; $mpurchases[] = $month_sale->purchases; $mtax3[] = $month_sale->ptax; }

Page 77: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

?>

<div class="box" style="margin-bottom: 15px;"> <div class="box-header"> <h2 class="blue"><i class="fa-fw fa fa-bar-chart-o"></i><?= lang('overview_chart'); ?></h2> </div> <div class="box-content"> <div class="row"> <div class="col-md-12"> <canvas id="myChart" width="770px" height="385px"></canvas> </div> </div> </div> </div>

<div class="box" style="margin-bottom: 15px;display: none;"> <div class="box-header"> <h2 class="blue"><i class="fa-fw fa fa-bar-chart-o"></i><?= lang('overview_chart'); ?></h2> </div> <div class="box-content"> <div class="row"> <div class="col-md-12"> <p class="introtext"><?php echo lang('overview_chart_heading'); ?></p> <div id="ov-chart" style="width:100%; height:450px;"></div> <p class="text-center"><?= lang("chart_lable_toggle"); ?></p> </div> </div> </div> </div>

<?php } ?>

<script type="text/javascript"> $(document).ready(function () { $('.order').click(function () { window.location.href = '<?=admin_url()?>orders/view/' + $(this).attr('id') + '#comments';

Page 78: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

}); $('.invoice').click(function () { window.location.href = '<?=admin_url()?>orders/view/' + $(this).attr('id'); }); $('.quote').click(function () { window.location.href = '<?=admin_url()?>quotes/view/' + $(this).attr('id'); }); });</script>

<?php if (($Owner || $Admin) && $chatData) { ?> <style type="text/css" media="screen"> .tooltip-inner { max-width: 500px; } </style>

<!-- chart js --> <script>var ctx = document.getElementById("myChart").getContext('2d');var myChart = new Chart(ctx, { type: 'bar', data: { labels: <?=json_encode($months)?>, datasets: [{ label: '<?= lang("sp_tax"); ?>', data: [<?php echo implode(', ', $mtax1); ?>], backgroundColor: 'rgba(255, 99, 132, 0.2)', borderColor: 'rgba(255,99,132,1)', borderWidth: 1 },

{ label: '<?= lang("order_tax"); ?>', data: [<?php echo implode(', ', $mtax2); ?>], backgroundColor: 'rgba(255, 206, 86, 0.2)', borderColor: 'rgba(255, 206, 86, 1)'

Page 79: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

, borderWidth: 1 },

{ label: '<?= lang("sales"); ?>', data: [<?php echo implode(', ', $msales); ?>], backgroundColor: 'rgba(54, 162, 235, 0.2)', borderColor: 'rgba(54, 162, 235, 1)' , borderWidth: 1 } ,

{ label: '<?= lang("purchases"); ?>', data: [<?php echo implode(', ', $mpurchases); ?>], backgroundColor: 'rgba(255, 159, 64, 0.2)', borderColor: 'rgba(255, 159, 64, 1)' , borderWidth: 1 }

,

{ label: '<?= lang("pp_tax"); ?>', data: [<?php echo implode(', ', $mtax3); ?>], backgroundColor: 'rgba(153, 102, 255, 0.2)', borderColor: 'rgba(153, 102, 255, 1)' , borderWidth: 1 }

Page 80: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

] }, options: { scales: { yAxes: [{ ticks: { beginAtZero:true } }] } }});</script>

<script src="<?= $assets; ?>js/hc/highcharts.js"></script> <script type="text/javascript"> $(function () { Highcharts.getOptions().colors = Highcharts.map(Highcharts.getOptions().colors, function (color) { return { radialGradient: {cx: 0.5, cy: 0.3, r: 0.7}, stops: [[0, color], [1, Highcharts.Color(color).brighten(-0.3).get('rgb')]] }; }); $('#ov-chart').highcharts({ chart: {}, credits: {enabled: false}, title: {text: ''}, xAxis: {categories: <?= json_encode($months); ?>}, yAxis: {min: 0, title: ""}, tooltip: { shared: true, followPointer: true, formatter: function () { if (this.key) { return '<div class="tooltip-inner hc-tip" style="margin-bottom:0;">' + this.key + '<br><strong>' + currencyFormat(this.y) + '</strong> (' + formatNumber(this.percentage) + '%)'; } else { var s = '<div class="well well-sm hc-tip" style="margin-bottom:0;"><h2 style="margin-top:0;">' + this.x +

Page 81: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

'</h2><table class="table table-striped" style="margin-bottom:0;">'; $.each(this.points, function () { s += '<tr><td style="color:{series.color};padding:0">' + this.series.name + ': </td><td style="color:{series.color};padding:0;text-align:right;"> <b>' + currencyFormat(this.y) + '</b></td></tr>'; }); s += '</table></div>'; return s; } }, useHTML: true, borderWidth: 0, shadow: false, valueDecimals: site.settings.decimals, style: {fontSize: '14px', padding: '0', color: '#000000'} }, series: [{ type: 'column', name: '<?= lang("sp_tax"); ?>', data: [<?php echo implode(', ', $mtax1); ?>] }, { type: 'column', name: '<?= lang("order_tax"); ?>', data: [<?php echo implode(', ', $mtax2); ?>] }, { type: 'column', name: '<?= lang("sales"); ?>', data: [<?php echo implode(', ', $msales); ?>] }, { type: 'spline', name: '<?= lang("purchases"); ?>', data: [<?php echo implode(', ', $mpurchases); ?>], marker: { lineWidth: 2, states: { hover: { lineWidth: 4 }

Page 82: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

}, lineColor: Highcharts.getOptions().colors[3], fillColor: 'white' } }, { type: 'spline', name: '<?= lang("pp_tax"); ?>', data: [<?php echo implode(', ', $mtax3); ?>], marker: { lineWidth: 2, states: { hover: { lineWidth: 4 } }, lineColor: Highcharts.getOptions().colors[3], fillColor: 'white' } }, { type: 'pie', name: '<?= lang("stock_value"); ?>', data: [ ['', 0], ['', 0], ['<?= lang("stock_value_by_price"); ?>', <?php echo $stock->stock_by_price; ?>], ['<?= lang("stock_value_by_cost"); ?>', <?php echo $stock->stock_by_cost; ?>], ], center: [80, 42], size: 80, showInLegend: false, dataLabels: { enabled: false } }] }); }); </script>

<script type="text/javascript"> $(function () { <?php if ($lmbs) { ?> $('#lmbschart').highcharts({ chart: {type: 'column'}, title: {text: ''},

Page 83: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

credits: {enabled: false}, xAxis: {type: 'category', labels: {rotation: -60, style: {fontSize: '13px'}}}, yAxis: {min: 0, title: {text: ''}}, legend: {enabled: false}, series: [{ name: '<?=lang('sold');?>', data: [<?php foreach ($lmbs as $r) { if($r->quantity > 0) { echo "['".$r->product_name."<br>(".$r->product_code.")', ".$r->quantity."],"; } } ?>], dataLabels: { enabled: true, rotation: -90, color: '#000', align: 'right', y: -25, style: {fontSize: '12px'} } }] }); <?php } if ($bs) { ?> $('#bschart').highcharts({ chart: {type: 'column'}, title: {text: ''}, credits: {enabled: false}, xAxis: {type: 'category', labels: {rotation: -60, style: {fontSize: '13px'}}}, yAxis: {min: 0, title: {text: ''}}, legend: {enabled: false}, series: [{ name: '<?=lang('sold');?>', data: [<?php foreach ($bs as $r) { if($r->quantity > 0) { echo "['".$r->product_name."<br>(".$r->product_code.")', ".$r->quantity."],"; } } ?>], dataLabels: { enabled: true, rotation: -90, color: '#000',

Page 84: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

align: 'right', y: -25, style: {fontSize: '12px'} } }] }); <?php } ?> }); </script><?php } ?>

Controller

<?php defined('BASEPATH') OR exit('No direct script access allowed');

class Welcome extends MY_Controller{

function __construct() { parent::__construct();

if (!$this->loggedIn) { $this->session->set_userdata('requested_page', $this->uri->uri_string()); admin_redirect('login'); }

if ($this->Customer || $this->Supplier) { redirect('/'); }

$this->load->library('form_validation'); $this->load->admin_model('db_model'); }

public function index() { if ($this->Settings->version == '2.3') { $this->session->set_flashdata('warning', 'Please complete your update by synchronizing your database.'); admin_redirect('sync'); }

$this->data['error'] = (validation_errors() ? validation_errors() : $this->session->flashdata('error')); $this->data['sales'] = $this->db_model->getLatestSales();

Page 85: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

$this->data['quotes'] = $this->db_model->getLastestQuotes(); $this->data['purchases'] = $this->db_model->getLatestPurchases(); $this->data['transfers'] = $this->db_model->getLatestTransfers(); $this->data['customers'] = $this->db_model->getLatestCustomers(); $this->data['suppliers'] = $this->db_model->getLatestSuppliers(); $this->data['chatData'] = $this->db_model->getChartData(); $this->data['stock'] = $this->db_model->getStockValue(); $this->data['bs'] = $this->db_model->getBestSeller(); $lmsdate = date('Y-m-d', strtotime('first day of last month')) . ' 00:00:00'; $lmedate = date('Y-m-d', strtotime('last day of last month')) . ' 23:59:59'; $this->data['lmbs'] = $this->db_model->getBestSeller($lmsdate, $lmedate); $bc = array(array('link' => '#', 'page' => lang('dashboard'))); $meta = array('page_title' => lang('dashboard'), 'bc' => $bc); $this->page_construct('dashboard', $meta, $this->data);

}

}

Form Product View

<?php defined('BASEPATH') OR exit('No direct script access allowed'); ?><div class="box"> <div class="box-header"> <h2 class="blue"><i class="fa-fw fa fa-plus"></i><?= lang('add_product'); ?></h2> </div> <div class="box-content"> <div class="row"> <div class="col-lg-12">

<?php $attrib = array('data-toggle' => 'validator', 'role' => 'form'); echo admin_form_open_multipart("products/add", $attrib) ?>

<div class="col-md-12">

Page 86: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

<!-- product type --> <div class="form-group"> <?= lang("product_type", "type") ?> <?php

$opts = array('standard' => lang('standard'), 'combo' => lang('menu'));

echo form_dropdown('type', $opts, (isset($_POST['type']) ? $_POST['type'] : ($product ? $product->type : '')), 'class="form-control" id="type" required="required"'); ?> </div> <!-- /product type -->

<!-- product name --> <div class="form-group all"> <?= lang("product_name", "name") ?> <?= form_input('name', (isset($_POST['name']) ? $_POST['name'] : ($product ? $product->name : '')), 'class="form-control gen_slug" id="name" required="required"'); ?> </div> <!-- /product name -->

<!-- product code --> <div class="form-group all"> <?= lang("product_code", "code") ?> <div class="input-group"> <?= form_input('code', (isset($_POST['code']) ? $_POST['code'] : ($product ? $product->code : '')), 'class="form-control" id="code" required="required"') ?> <span class="input-group-addon pointer" id="random_num" style="padding: 1px 10px;"> <i class="fa fa-random"></i> </span> </div> </div> <!-- /product code -->

<!-- category -->

Page 87: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

<div class="form-group all"> <?= lang("category", "category") ?> <?php $cat[''] = ""; foreach ($categories as $category) { $cat[$category->id] = $category->name; } echo form_dropdown('category', $cat, (isset($_POST['category']) ? $_POST['category'] : ($product ? $product->category_id : '')), 'class="form-control select" id="category" placeholder="' . lang("select") . " " . lang("category") . '" required="required" style="width:100%"') ?> </div> <!-- /category -->

<!-- price --> <div class="form-group all"> <?= lang("product_price", "price") ?> <?= form_input('price', (isset($_POST['price']) ? $_POST['price'] : ($product ? $this->sma->formatDecimal($product->price) : '')), 'class="form-control tip" id="price" required="required"') ?> </div> <!-- /price -->

<!-- alert qty --> <div class="form-group standard"> <?= lang("alert_quantity", "alert_quantity") ?> <div class="input-group"> <?= form_input('alert_quantity', (isset($_POST['alert_quantity']) ? $_POST['alert_quantity'] : ($product ? $this->sma->formatQuantityDecimal($product->alert_quantity) : '')), 'class="form-control tip" id="alert_quantity"') ?> <span class="input-group-addon"> <input type="checkbox" name="track_quantity" id="track_quantity" value="1" <?= ($product ? (isset($product->track_quantity) ? 'checked="checked"' : '') : 'checked="checked"') ?>> </span> </div> </div> <!-- /alert qty -->

<!-- product image -->

Page 88: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

<div class="form-group all"> <?= lang("product_image", "product_image") ?> <input id="product_image" type="file" data-browse-label="<?= lang('browse'); ?>" name="product_image" data-show-upload="false" data-show-preview="false" accept="image/*" class="form-control file"> </div> <!-- /product image -->

<div id="img-details"></div>

<div class="form-group"> <?= lang('product_unit', 'unit'); ?> <?php $pu[''] = lang('select').' '.lang('unit'); foreach ($base_units as $bu) { $pu[$bu->id] = $bu->name .' ('.$bu->code.')'; } ?> <?= form_dropdown('unit', $pu, set_value('unit', ($product ? $product->unit : '')), 'class="form-control tip" id="unit" required="required" style="width:100%;"'); ?> </div> <div class="form-group all"> <?= lang("quantity", "name") ?> <input type="text" name="wh_qty_1" value="" class="form-control" id="wh_qty_1" placeholder="Quantity"> </div> <!-- /product name --> </div>

<!-- product detail -->

<div class="col-md-12">

<div class="form-group all"> <?= lang("product_details", "product_details") ?> <?= form_textarea('product_details', (isset($_POST['product_details']) ? $_POST['product_details'] : ($product ? $product->product_details : '')), 'class="form-control" id="details"'); ?> </div>

Page 89: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

<div class="form-group"> <?php echo form_submit('add_product', $this->lang->line("add_product"), 'class="btn btn-primary"'); ?> </div>

</div>

<!-- /product detail -->

<?= form_close(); ?>

</div>

</div> </div></div>

Controller

<?php defined('BASEPATH') OR exit('No direct script access allowed');

class Products extends MY_Controller{

function __construct() { parent::__construct(); if (!$this->loggedIn) { $this->session->set_userdata('requested_page', $this->uri->uri_string()); $this->sma->md('login'); } $this->lang->admin_load('products', $this->Settings->user_language); $this->load->library('form_validation'); $this->load->admin_model('products_model'); $this->digital_upload_path = 'files/'; $this->upload_path = 'assets/uploads/'; $this->thumbs_path = 'assets/uploads/thumbs/'; $this->image_types = 'gif|jpg|jpeg|png|tif'; $this->digital_file_types = 'zip|psd|ai|rar|pdf|doc|docx|xls|xlsx|ppt|pptx|gif|jpg|jpeg|png|tif|txt'; $this->allowed_file_size = '1024';

Page 90: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

$this->popup_attributes = array('width' => '900', 'height' => '600', 'window_name' => 'sma_popup', 'menubar' => 'yes', 'scrollbars' => 'yes', 'status' => 'no', 'resizable' => 'yes', 'screenx' => '0', 'screeny' => '0'); }

/* ------------------------------------------------------- */

function add($id = NULL) { $this->sma->checkPermissions(); $this->load->helper('security'); $warehouses = $this->site->getAllWarehouses(); $this->form_validation->set_rules('category', lang("category"), 'required|is_natural_no_zero');

if ($this->input->post('type') == 'standard') { // $this->form_validation->set_rules('cost', lang("product_cost"), 'required'); $this->form_validation->set_rules('unit', lang("product_unit"), 'required'); }

if ($this->input->post('barcode_symbology') == 'ean13') { $this->form_validation->set_rules('code', lang("product_code"), 'min_length[13]|max_length[13]'); } $this->form_validation->set_rules('code', lang("product_code"), 'is_unique[products.code]|alpha_dash'); // $this->form_validation->set_rules('slug', lang("slug"), 'required|is_unique[products.slug]|alpha_dash'); $this->form_validation->set_rules('weight', lang("weight"), 'numeric'); $this->form_validation->set_rules('product_image', lang("product_image"), 'xss_clean'); $this->form_validation->set_rules('digital_file', lang("digital_file"), 'xss_clean'); $this->form_validation->set_rules('userfile', lang("product_gallery_images"), 'xss_clean');

if ($this->form_validation->run() == true) { $tax_rate = $this->input->post('tax_rate') ? $this->site->getTaxRateByID($this->input->post('tax_rate')) : NULL; $data = array( 'code' => $this->input->post('code'), 'barcode_symbology' => '',

Page 91: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

'name' => $this->input->post('name'), 'type' => $this->input->post('type'), 'brand' => $this->input->post('brand'), 'category_id' => $this->input->post('category'), 'subcategory_id' => $this->input->post('subcategory') ? $this->input->post('subcategory') : NULL, 'cost' => $this->sma->formatDecimal($this->input->post('cost')), 'price' => $this->sma->formatDecimal($this->input->post('price')), 'unit' => $this->input->post('unit'), 'sale_unit' => $this->input->post('default_sale_unit'), 'purchase_unit' => $this->input->post('default_purchase_unit'), 'tax_rate' => $this->input->post('tax_rate'), 'tax_method' => $this->input->post('tax_method'), 'alert_quantity' => $this->input->post('alert_quantity'), 'track_quantity' => $this->input->post('track_quantity') ? $this->input->post('track_quantity') : '0', 'details' => $this->input->post('details'), 'product_details' => $this->input->post('product_details'), 'supplier1' => $this->input->post('supplier'), 'supplier1price' => $this->sma->formatDecimal($this->input->post('supplier_price')), 'supplier2' => $this->input->post('supplier_2'), 'supplier2price' => $this->sma->formatDecimal($this->input->post('supplier_2_price')), 'supplier3' => $this->input->post('supplier_3'), 'supplier3price' => $this->sma->formatDecimal($this->input->post('supplier_3_price')), 'supplier4' => $this->input->post('supplier_4'), 'supplier4price' => $this->sma->formatDecimal($this->input->post('supplier_4_price')), 'supplier5' => $this->input->post('supplier_5'), 'supplier5price' => $this->sma->formatDecimal($this->input->post('supplier_5_price')), 'cf1' => $this->input->post('cf1'), 'cf2' => $this->input->post('cf2'), 'cf3' => $this->input->post('cf3'), 'cf4' => $this->input->post('cf4'), 'cf5' => $this->input->post('cf5'), 'cf6' => $this->input->post('cf6'), 'promotion' => $this->input->post('promotion'), 'promo_price' => $this->sma->formatDecimal($this->input->post('promo_price')), 'start_date' => $this->input->post('start_date') ? $this->sma->fsd($this->input->post('start_date')) : NULL,

Page 92: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

'end_date' => $this->input->post('end_date') ? $this->sma->fsd($this->input->post('end_date')) : NULL, 'supplier1_part_no' => $this->input->post('supplier_part_no'), 'supplier2_part_no' => $this->input->post('supplier_2_part_no'), 'supplier3_part_no' => $this->input->post('supplier_3_part_no'), 'supplier4_part_no' => $this->input->post('supplier_4_part_no'), 'supplier5_part_no' => $this->input->post('supplier_5_part_no'), 'file' => $this->input->post('file_link'), 'slug' => '0', 'weight' => $this->input->post('weight'), 'featured' => $this->input->post('featured'), ); $warehouse_qty = NULL; $product_attributes = NULL; $this->load->library('upload'); if ($this->input->post('type') == 'standard') { $wh_total_quantity = 0; $pv_total_quantity = 0; for ($s = 2; $s > 5; $s++) { $data['suppliers' . $s] = $this->input->post('supplier_' . $s); $data['suppliers' . $s . 'price'] = $this->input->post('supplier_' . $s . '_price'); } foreach ($warehouses as $warehouse) { if ($this->input->post('wh_qty_' . $warehouse->id)) { $warehouse_qty[] = array( 'warehouse_id' => $this->input->post('wh_' . $warehouse->id), 'quantity' => $this->input->post('wh_qty_' . $warehouse->id), 'rack' => $this->input->post('rack_' . $warehouse->id) ? $this->input->post('rack_' . $warehouse->id) : NULL ); $wh_total_quantity += $this->input->post('wh_qty_' . $warehouse->id); } }

if ($this->input->post('attributes')) { $a = sizeof($_POST['attr_name']); for ($r = 0; $r <= $a; $r++) {

Page 93: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

if (isset($_POST['attr_name'][$r])) { $product_attributes[] = array( 'name' => $_POST['attr_name'][$r], 'warehouse_id' => $_POST['attr_warehouse'][$r], 'quantity' => $_POST['attr_quantity'][$r], 'price' => $_POST['attr_price'][$r], ); $pv_total_quantity += $_POST['attr_quantity'][$r]; } }

} else { $product_attributes = NULL; }

if ($wh_total_quantity != $pv_total_quantity && $pv_total_quantity != 0) { $this->form_validation->set_rules('wh_pr_qty_issue', 'wh_pr_qty_issue', 'required'); $this->form_validation->set_message('required', lang('wh_pr_qty_issue')); } }

if ($this->input->post('type') == 'service') { $data['track_quantity'] = 0; } elseif ($this->input->post('type') == 'combo') { $total_price = 0; $c = sizeof($_POST['combo_item_code']) - 1; for ($r = 0; $r <= $c; $r++) { if (isset($_POST['combo_item_code'][$r]) && isset($_POST['combo_item_quantity'][$r]) && isset($_POST['combo_item_price'][$r])) { $items[] = array( 'item_code' => $_POST['combo_item_code'][$r], 'quantity' => $_POST['combo_item_quantity'][$r], 'unit_price' => $_POST['combo_item_price'][$r], ); } $total_price += $_POST['combo_item_price'][$r] * $_POST['combo_item_quantity'][$r]; }

// remove combo price

Page 94: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

// if ($this->sma->formatDecimal($total_price) != $this->sma->formatDecimal($this->input->post('price'))) { // $this->form_validation->set_rules('combo_price', 'combo_price', 'required'); // $this->form_validation->set_message('required', lang('pprice_not_match_ciprice')); // }

$data['track_quantity'] = 0;

} elseif ($this->input->post('type') == 'digital') { if ($_FILES['digital_file']['size'] > 0) { $config['upload_path'] = $this->digital_upload_path; $config['allowed_types'] = $this->digital_file_types; $config['max_size'] = $this->allowed_file_size; $config['overwrite'] = FALSE; $config['encrypt_name'] = TRUE; $config['max_filename'] = 25; $this->upload->initialize($config); if (!$this->upload->do_upload('digital_file')) { $error = $this->upload->display_errors(); $this->session->set_flashdata('error', $error); admin_redirect("products/add"); } $file = $this->upload->file_name; $data['file'] = $file; } else { if (!$this->input->post('file_link')) { $this->form_validation->set_rules('digital_file', lang("digital_file"), 'required'); } } $config = NULL; $data['track_quantity'] = 0; } if (!isset($items)) { $items = NULL; } if ($_FILES['product_image']['size'] > 0) {

$config['upload_path'] = $this->upload_path; $config['allowed_types'] = $this->image_types; $config['max_size'] = $this->allowed_file_size;

Page 95: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

// $config['max_width'] = $this->Settings->iwidth; // $config['max_height'] = $this->Settings->iheight; $config['overwrite'] = FALSE; $config['max_filename'] = 25; $config['encrypt_name'] = TRUE; $this->upload->initialize($config); if (!$this->upload->do_upload('product_image')) { $error = $this->upload->display_errors(); $this->session->set_flashdata('error', $error); admin_redirect("products/add"); } $photo = $this->upload->file_name; $data['image'] = $photo; $this->load->library('image_lib'); $config['image_library'] = 'gd2'; $config['source_image'] = $this->upload_path . $photo; $config['new_image'] = $this->thumbs_path . $photo; $config['maintain_ratio'] = TRUE; $config['width'] = $this->Settings->twidth; $config['height'] = $this->Settings->theight; $this->image_lib->clear(); $this->image_lib->initialize($config); if (!$this->image_lib->resize()) { echo $this->image_lib->display_errors(); } if ($this->Settings->watermark) { $this->image_lib->clear(); $wm['source_image'] = $this->upload_path . $photo; $wm['wm_text'] = 'Copyright ' . date('Y') . ' - ' . $this->Settings->site_name; $wm['wm_type'] = 'text'; $wm['wm_font_path'] = 'system/fonts/texb.ttf'; $wm['quality'] = '100'; $wm['wm_font_size'] = '16'; $wm['wm_font_color'] = '999999'; $wm['wm_shadow_color'] = 'CCCCCC'; $wm['wm_vrt_alignment'] = 'top'; $wm['wm_hor_alignment'] = 'left'; $wm['wm_padding'] = '10'; $this->image_lib->initialize($wm); $this->image_lib->watermark(); } $this->image_lib->clear(); $config = NULL; }

if ($_FILES['userfile']['name'][0] != "") {

Page 96: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

$config['upload_path'] = $this->upload_path; $config['allowed_types'] = $this->image_types; $config['max_size'] = $this->allowed_file_size; // $config['max_width'] = $this->Settings->iwidth; // $config['max_height'] = $this->Settings->iheight; $config['overwrite'] = FALSE; $config['encrypt_name'] = TRUE; $config['max_filename'] = 25; $files = $_FILES; $cpt = count($_FILES['userfile']['name']); for ($i = 0; $i < $cpt; $i++) {

$_FILES['userfile']['name'] = $files['userfile']['name'][$i]; $_FILES['userfile']['type'] = $files['userfile']['type'][$i]; $_FILES['userfile']['tmp_name'] = $files['userfile']['tmp_name'][$i]; $_FILES['userfile']['error'] = $files['userfile']['error'][$i]; $_FILES['userfile']['size'] = $files['userfile']['size'][$i];

$this->upload->initialize($config);

if (!$this->upload->do_upload()) { $error = $this->upload->display_errors(); $this->session->set_flashdata('error', $error); admin_redirect("products/add"); } else {

$pho = $this->upload->file_name;

$photos[] = $pho;

$this->load->library('image_lib'); $config['image_library'] = 'gd2'; $config['source_image'] = $this->upload_path . $pho; $config['new_image'] = $this->thumbs_path . $pho; $config['maintain_ratio'] = TRUE; $config['width'] = $this->Settings->twidth; $config['height'] = $this->Settings->theight;

$this->image_lib->initialize($config);

if (!$this->image_lib->resize()) { echo $this->image_lib->display_errors(); }

if ($this->Settings->watermark) {

Page 97: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

$this->image_lib->clear(); $wm['source_image'] = $this->upload_path . $pho; $wm['wm_text'] = 'Copyright ' . date('Y') . ' - ' . $this->Settings->site_name; $wm['wm_type'] = 'text'; $wm['wm_font_path'] = 'system/fonts/texb.ttf'; $wm['quality'] = '100'; $wm['wm_font_size'] = '16'; $wm['wm_font_color'] = '999999'; $wm['wm_shadow_color'] = 'CCCCCC'; $wm['wm_vrt_alignment'] = 'top'; $wm['wm_hor_alignment'] = 'left'; $wm['wm_padding'] = '10'; $this->image_lib->initialize($wm); $this->image_lib->watermark(); }

$this->image_lib->clear(); } } $config = NULL; } else { $photos = NULL; } $data['quantity'] = isset($wh_total_quantity) ? $wh_total_quantity : 0; // $this->sma->print_arrays($data, $warehouse_qty, $product_attributes); }

if ($this->form_validation->run() == true && $this->products_model->addProduct($data, $items, $warehouse_qty, $product_attributes, $photos)) { $this->session->set_flashdata('message', lang("product_added")); admin_redirect('products'); } else { $this->data['error'] = (validation_errors() ? validation_errors() : $this->session->flashdata('error'));

$this->data['categories'] = $this->site->getAllCategories(); $this->data['tax_rates'] = $this->site->getAllTaxRates(); $this->data['brands'] = $this->site->getAllBrands(); $this->data['base_units'] = $this->site->getAllBaseUnits(); $this->data['warehouses'] = $warehouses; $this->data['warehouses_products'] = $id ? $this->products_model->getAllWarehousesWithPQ($id) : NULL;

Page 98: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

$this->data['product'] = $id ? $this->products_model->getProductByID($id) : NULL; $this->data['variants'] = $this->products_model->getAllVariants();

$this->data['combo_items'] = ($id && $this->data['product']->type == 'combo') ? $this->products_model->getProductComboItems($id) : NULL;

$this->data['product_options'] = $id ? $this->products_model->getProductOptionsWithWH($id) : NULL; $bc = array(array('link' => base_url(), 'page' => lang('home')), array('link' => admin_url('products'), 'page' => lang('products')), array('link' => '#', 'page' => lang('add_product'))); $meta = array('page_title' => lang('add_product'), 'bc' => $bc); $this->page_construct('products/add', $meta, $this->data); } }

}

Model

<?php defined('BASEPATH') OR exit('No direct script access allowed');

class Products_model extends CI_Model{

public function __construct() { parent::__construct(); }

public function addProduct($data, $items, $warehouse_qty, $product_attributes, $photos) { if ($this->db->insert('products', $data)) { $product_id = $this->db->insert_id();

if ($items) { foreach ($items as $item) { $item['product_id'] = $product_id; $this->db->insert('combo_items', $item);

Page 99: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

} }

$warehouses = $this->site->getAllWarehouses(); if ($data['type'] != 'standard') { foreach ($warehouses as $warehouse) { $this->db->insert('warehouses_products', array('product_id' => $product_id, 'warehouse_id' => $warehouse->id, 'quantity' => 0)); } }

$tax_rate = $this->site->getTaxRateByID($data['tax_rate']);

if ($warehouse_qty && !empty($warehouse_qty)) { foreach ($warehouse_qty as $wh_qty) { if (isset($wh_qty['quantity']) && ! empty($wh_qty['quantity'])) { $this->db->insert('warehouses_products', array('product_id' => $product_id, 'warehouse_id' => $wh_qty['warehouse_id'], 'quantity' => $wh_qty['quantity'], 'rack' => $wh_qty['rack'], 'avg_cost' => $data['cost']));

if (!$product_attributes) { $tax_rate_id = $tax_rate ? $tax_rate->id : NULL; $tax = $tax_rate ? (($tax_rate->type == 1) ? $tax_rate->rate . "%" : $tax_rate->rate) : NULL; $unit_cost = $data['cost']; if ($tax_rate) { if ($tax_rate->type == 1 && $tax_rate->rate != 0) { if ($data['tax_method'] == '0') { $pr_tax_val = ($data['cost'] * $tax_rate->rate) / (100 + $tax_rate->rate); $net_item_cost = $data['cost'] - $pr_tax_val; $item_tax = $pr_tax_val * $wh_qty['quantity']; } else { $net_item_cost = $data['cost']; $pr_tax_val = ($data['cost'] * $tax_rate->rate) / 100; $unit_cost = $data['cost'] + $pr_tax_val; $item_tax = $pr_tax_val * $wh_qty['quantity']; } } else {

Page 100: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

$net_item_cost = $data['cost']; $item_tax = $tax_rate->rate; } } else { $net_item_cost = $data['cost']; $item_tax = 0; }

$subtotal = (($net_item_cost * $wh_qty['quantity']) + $item_tax);

$item = array( 'product_id' => $product_id, 'product_code' => $data['code'], 'product_name' => $data['name'], 'net_unit_cost' => $net_item_cost, 'unit_cost' => $unit_cost, 'real_unit_cost' => $unit_cost, 'quantity' => $wh_qty['quantity'], 'quantity_balance' => $wh_qty['quantity'], 'quantity_received' => $wh_qty['quantity'], 'item_tax' => $item_tax, 'tax_rate_id' => $tax_rate_id, 'tax' => $tax, 'subtotal' => $subtotal, 'warehouse_id' => $wh_qty['warehouse_id'], 'date' => date('Y-m-d'), 'status' => 'received', ); $this->db->insert('purchase_items', $item); $this->site->syncProductQty($product_id, $wh_qty['warehouse_id']); } } } }

if ($product_attributes) { foreach ($product_attributes as $pr_attr) { $pr_attr_details = $this->getPrductVariantByPIDandName($product_id, $pr_attr['name']);

$pr_attr['product_id'] = $product_id; $variant_warehouse_id = $pr_attr['warehouse_id']; unset($pr_attr['warehouse_id']); if ($pr_attr_details) { $option_id = $pr_attr_details->id; } else {

Page 101: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

$this->db->insert('product_variants', $pr_attr); $option_id = $this->db->insert_id(); } if ($pr_attr['quantity'] != 0) { $this->db->insert('warehouses_products_variants', array('option_id' => $option_id, 'product_id' => $product_id, 'warehouse_id' => $variant_warehouse_id, 'quantity' => $pr_attr['quantity']));

$tax_rate_id = $tax_rate ? $tax_rate->id : NULL; $tax = $tax_rate ? (($tax_rate->type == 1) ? $tax_rate->rate . "%" : $tax_rate->rate) : NULL; $unit_cost = $data['cost']; if ($tax_rate) { if ($tax_rate->type == 1 && $tax_rate->rate != 0) { if ($data['tax_method'] == '0') { $pr_tax_val = ($data['cost'] * $tax_rate->rate) / (100 + $tax_rate->rate); $net_item_cost = $data['cost'] - $pr_tax_val; $item_tax = $pr_tax_val * $pr_attr['quantity']; } else { $net_item_cost = $data['cost']; $pr_tax_val = ($data['cost'] * $tax_rate->rate) / 100; $unit_cost = $data['cost'] + $pr_tax_val; $item_tax = $pr_tax_val * $pr_attr['quantity']; } } else { $net_item_cost = $data['cost']; $item_tax = $tax_rate->rate; } } else { $net_item_cost = $data['cost']; $item_tax = 0; }

$subtotal = (($net_item_cost * $pr_attr['quantity']) + $item_tax); $item = array( 'product_id' => $product_id, 'product_code' => $data['code'], 'product_name' => $data['name'], 'net_unit_cost' => $net_item_cost, 'unit_cost' => $unit_cost, 'quantity' => $pr_attr['quantity'],

Page 102: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

'option_id' => $option_id, 'quantity_balance' => $pr_attr['quantity'], 'quantity_received' => $pr_attr['quantity'], 'item_tax' => $item_tax, 'tax_rate_id' => $tax_rate_id, 'tax' => $tax, 'subtotal' => $subtotal, 'warehouse_id' => $variant_warehouse_id, 'date' => date('Y-m-d'), 'status' => 'received', ); $item['option_id'] = !empty($item['option_id']) && is_numeric($item['option_id']) ? $item['option_id'] : NULL; $this->db->insert('purchase_items', $item);

}

foreach ($warehouses as $warehouse) { if (!$this->getWarehouseProductVariant($warehouse->id, $product_id, $option_id)) { $this->db->insert('warehouses_products_variants', array('option_id' => $option_id, 'product_id' => $product_id, 'warehouse_id' => $warehouse->id, 'quantity' => 0)); } }

$this->site->syncVariantQty($option_id, $variant_warehouse_id); } }

if ($photos) { foreach ($photos as $photo) { $this->db->insert('product_photos', array('product_id' => $product_id, 'photo' => $photo)); } }

return true; } return false;

}

Page 103: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

}

Form Category View

<?php defined('BASEPATH') OR exit('No direct script access allowed'); ?><div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true"><i class="fa fa-2x">&times;</i> </button> <h4 class="modal-title" id="myModalLabel"><?php echo lang('add_category'); ?></h4> </div> <?php $attrib = array('data-toggle' => 'validator', 'role' => 'form'); echo admin_form_open_multipart("system_settings/add_category", $attrib); ?> <div class="modal-body">

<div class="form-group"> <?= lang('category_code', 'code'); ?> <?= form_input('code', set_value('code'), 'class="form-control" id="code" required="required"'); ?> </div>

<div class="form-group"> <?= lang('category_name', 'name'); ?> <?= form_input('name', set_value('name'), 'class="form-control gen_slug" id="name" required="required"'); ?> </div>

<div class="form-group"> <?= lang("category_image", "image") ?> <input id="image" type="file" data-browse-label="<?= lang('browse'); ?>" name="userfile" data-show-upload="false" data-show-preview="false" class="form-control file"> </div> <div class="form-group" style="display: none;"> <?= lang("parent_category", "parent") ?> <?php

Page 104: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

$cat[''] = lang('select').' '.lang('parent_category'); foreach ($categories as $pcat) { $cat[$pcat->id] = $pcat->name; } echo form_dropdown('parent', $cat, (isset($_POST['parent']) ? $_POST['parent'] : ''), 'class="form-control select" id="parent" style="width:100%"') ?> </div>

</div> <div class="modal-footer"> <?php echo form_submit('add_category', lang('add_category'), 'class="btn btn-primary"'); ?> </div> </div> <?php echo form_close(); ?></div>

Controller

<?php defined('BASEPATH') OR exit('No direct script access allowed');

class system_settings extends MY_Controller{

function __construct() { parent::__construct();

if (!$this->loggedIn) { $this->session->set_userdata('requested_page', $this->uri->uri_string()); $this->sma->md('login'); }

if (!$this->Owner) { $this->session->set_flashdata('warning', lang('access_denied')); redirect('admin'); } $this->lang->admin_load('settings', $this->Settings->user_language); $this->load->library('form_validation'); $this->load->admin_model('settings_model'); $this->upload_path = 'assets/uploads/'; $this->thumbs_path = 'assets/uploads/thumbs/';

Page 105: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

$this->image_types = 'gif|jpg|jpeg|png|tif'; $this->digital_file_types = 'zip|psd|ai|rar|pdf|doc|docx|xls|xlsx|ppt|pptx|gif|jpg|jpeg|png|tif'; $this->allowed_file_size = '1024'; }

function add_category() {

$this->load->helper('security'); $this->form_validation->set_rules('code', lang("category_code"), 'trim|is_unique[categories.code]|required'); $this->form_validation->set_rules('name', lang("name"), 'required|min_length[3]'); $this->form_validation->set_rules('userfile', lang("category_image"), 'xss_clean');

if ($this->form_validation->run() == true) { $data = array( 'name' => $this->input->post('name'), 'code' => $this->input->post('code'), 'slug' => $this->input->post('slug'), 'parent_id' => $this->input->post('parent'), );

if ($_FILES['userfile']['size'] > 0) { $this->load->library('upload'); $config['upload_path'] = $this->upload_path; $config['allowed_types'] = $this->image_types; $config['max_size'] = $this->allowed_file_size; // $config['max_width'] = $this->Settings->iwidth; // $config['max_height'] = $this->Settings->iheight; $config['overwrite'] = FALSE; $config['encrypt_name'] = TRUE; $config['max_filename'] = 25; $this->upload->initialize($config); if (!$this->upload->do_upload()) { $error = $this->upload->display_errors(); $this->session->set_flashdata('error', $error); redirect($_SERVER["HTTP_REFERER"]); } $photo = $this->upload->file_name;

Page 106: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

$data['image'] = $photo; $this->load->library('image_lib'); $config['image_library'] = 'gd2'; $config['source_image'] = $this->upload_path . $photo; $config['new_image'] = $this->thumbs_path . $photo; $config['maintain_ratio'] = TRUE; $config['width'] = $this->Settings->twidth; $config['height'] = $this->Settings->theight; $this->image_lib->clear(); $this->image_lib->initialize($config); if (!$this->image_lib->resize()) { echo $this->image_lib->display_errors(); } if ($this->Settings->watermark) { $this->image_lib->clear(); $wm['source_image'] = $this->upload_path . $photo; $wm['wm_text'] = 'Copyright ' . date('Y') . ' - ' . $this->Settings->site_name; $wm['wm_type'] = 'text'; $wm['wm_font_path'] = 'system/fonts/texb.ttf'; $wm['quality'] = '100'; $wm['wm_font_size'] = '16'; $wm['wm_font_color'] = '999999'; $wm['wm_shadow_color'] = 'CCCCCC'; $wm['wm_vrt_alignment'] = 'top'; $wm['wm_hor_alignment'] = 'left'; $wm['wm_padding'] = '10'; $this->image_lib->initialize($wm); $this->image_lib->watermark(); } $this->image_lib->clear(); $config = NULL; }

} elseif ($this->input->post('add_category')) { $this->session->set_flashdata('error', validation_errors()); admin_redirect("system_settings/categories"); }

if ($this->form_validation->run() == true && $this->settings_model->addCategory($data)) { $this->session->set_flashdata('message', lang("category_added")); admin_redirect("system_settings/categories"); } else {

$this->data['error'] = validation_errors() ? validation_errors() : $this->session->flashdata('error');

Page 107: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

$this->data['categories'] = $this->settings_model->getParentCategories(); $this->data['modal_js'] = $this->site->modal_js(); $this->load->view($this->theme . 'settings/add_category', $this->data);

} }}

Form Customer View

<?php defined('BASEPATH') OR exit('No direct script access allowed'); ?><div class="modal-dialog modal-lg"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true"><i class="fa fa-2x">&times;</i> </button> <h4 class="modal-title" id="myModalLabel"><?php echo lang('add_customer'); ?></h4> </div> <?php $attrib = array('data-toggle' => 'validator', 'role' => 'form', 'id' => 'add-customer-form'); echo admin_form_open_multipart("customers/add", $attrib); ?> <div class="modal-body">

<div class="row"> <div class="col-md-12"> <div class="form-group person"> <?= lang("name", "name"); ?> <?php echo form_input('name', '', 'class="form-control tip" id="name" data-bv-notempty="true"'); ?> </div> <div class="form-group "> <?= lang("email_address", "email_address"); ?> <input type="email" name="email" class="form-control" id="email_address"/> </div> <div class="form-group "> <?= lang("phone", "phone"); ?>

Page 108: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

<input type="tel" name="phone" class="form-control" id="phone"/> </div> <div class="form-group "> <?= lang("address", "address"); ?> <?php echo form_input('address', '', 'class="form-control" id="address"'); ?> </div> <div class="form-group "> <?= lang("city", "city"); ?> <?php echo form_input('city', '', 'class="form-control" id="city"'); ?> </div> <div class="form-group "> <?= lang("state", "state"); ?> <?php echo form_input('state', '', 'class="form-control" id="state"'); ?> </div>

<div class="form-group"> <?= lang("country", "country"); ?> <?php echo form_input('country', '', 'class="form-control" id="country"'); ?> </div>

</div> </div>

</div> <div class="modal-footer"> <?php echo form_submit('add_customer', lang('add_customer'), 'class="btn btn-primary"'); ?> </div> </div> <?php echo form_close(); ?></div>

Contoller

<?php defined('BASEPATH') OR exit('No direct script access allowed');

class Customers extends MY_Controller{

Page 109: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

function __construct() { parent::__construct();

if (!$this->loggedIn) { $this->session->set_userdata('requested_page', $this->uri->uri_string()); $this->sma->md('login'); } if ($this->Customer || $this->Supplier) { $this->session->set_flashdata('warning', lang('access_denied')); redirect($_SERVER["HTTP_REFERER"]); } $this->lang->admin_load('customers', $this->Settings->user_language); $this->load->library('form_validation'); $this->load->admin_model('companies_model'); }

function add() { $this->sma->checkPermissions(false, true);

$this->form_validation->set_rules('email', lang("email_address"), 'is_unique[companies.email]');

if ($this->form_validation->run('companies/add') == true) { $cg = $this->site->getCustomerGroupByID($this->input->post('customer_group')); $pg = $this->site->getPriceGroupByID($this->input->post('price_group')); $data = array('name' => $this->input->post('name'), 'email' => $this->input->post('email'), 'group_id' => '3', 'group_name' => 'customer', 'customer_group_id' => $this->input->post('customer_group'), 'customer_group_name' => $cg->name, 'price_group_id' => $this->input->post('price_group') ? $this->input->post('price_group') : NULL, 'price_group_name' => $this->input->post('price_group') ? $pg->name : NULL, 'company' => $this->input->post('company'),

Page 110: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

'address' => $this->input->post('address'), 'vat_no' => $this->input->post('vat_no'), 'city' => $this->input->post('city'), 'state' => $this->input->post('state'), 'postal_code' => $this->input->post('postal_code'), 'country' => $this->input->post('country'), 'phone' => $this->input->post('phone'), 'cf1' => $this->input->post('cf1'), 'cf2' => $this->input->post('cf2'), 'cf3' => $this->input->post('cf3'), 'cf4' => $this->input->post('cf4'), 'cf5' => $this->input->post('cf5'), 'cf6' => $this->input->post('cf6'), ); } elseif ($this->input->post('add_customer')) { $this->session->set_flashdata('error', validation_errors()); admin_redirect('customers'); }

if ($this->form_validation->run() == true && $cid = $this->companies_model->addCompany($data)) { $this->session->set_flashdata('message', lang("customer_added")); $ref = isset($_SERVER["HTTP_REFERER"]) ? explode('?', $_SERVER["HTTP_REFERER"]) : NULL; admin_redirect($ref[0] . '?customer=' . $cid); } else { $this->data['error'] = (validation_errors() ? validation_errors() : $this->session->flashdata('error')); $this->data['modal_js'] = $this->site->modal_js(); $this->data['customer_groups'] = $this->companies_model->getAllCustomerGroups(); $this->data['price_groups'] = $this->companies_model->getAllPriceGroups(); $this->load->view($this->theme . 'customers/add', $this->data); } }

}

Form User View

<?php defined('BASEPATH') OR exit('No direct script access allowed'); ?><div class="box"> <div class="box-header">

Page 111: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

<h2 class="blue"><i class="fa-fw fa fa-users"></i><?= lang('create_user'); ?></h2> </div> <div class="box-content"> <div class="row"> <div class="col-lg-12">

<?php $attrib = array('class' => 'form-horizontal', 'data-toggle' => 'validator', 'role' => 'form'); echo admin_form_open("auth/create_user", $attrib); ?> <div class="row"> <div class="col-md-12"> <div class="col-md-5"> <div class="form-group"> <?php echo lang('first_name', 'first_name'); ?> <div class="controls"> <?php echo form_input('first_name', '', 'class="form-control" id="first_name" required="required" pattern=".{3,10}"'); ?> </div> </div>

<div class="form-group"> <?php echo lang('last_name', 'last_name'); ?> <div class="controls"> <?php echo form_input('last_name', '', 'class="form-control" id="last_name" required="required"'); ?> </div> </div> <div class="form-group"> <?= lang('gender', 'gender'); ?> <?php $ge[''] = array('male' => lang('male'), 'female' => lang('female')); echo form_dropdown('gender', $ge, (isset($_POST['gender']) ? $_POST['gender'] : ''), 'class="tip form-control" id="gender" data-placeholder="' . lang("select") . ' ' . lang("gender") . '" required="required"'); ?> </div>

<div class="form-group"> <?php echo lang('company', 'company'); ?> <div class="controls"> <?php echo form_input('company', '', 'class="form-control" id="company" required="required"'); ?>

Page 112: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

</div> </div>

<div class="form-group"> <?php echo lang('phone', 'phone'); ?> <div class="controls"> <?php echo form_input('phone', '', 'class="form-control" id="phone" required="required"'); ?> </div> </div>

<div class="form-group"> <?php echo lang('email', 'email'); ?> <div class="controls"> <input type="email" id="email" name="email" class="form-control" required="required"/> <?php /* echo form_input('email', '', 'class="form-control" id="email" required="required"'); */ ?> </div> </div> <div class="form-group"> <?php echo lang('username', 'username'); ?> <div class="controls"> <input type="text" id="username" name="username" class="form-control" required="required" pattern=".{4,20}"/> </div> </div> <div class="form-group"> <?php echo lang('password', 'password'); ?> <div class="controls"> <?php echo form_password('password', '', 'class="form-control tip" id="password" required="required" pattern="(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}" data-bv-regexp-message="'.lang('pasword_hint').'"'); ?> <span class="help-block"><?= lang('pasword_hint') ?></span> </div> </div>

<div class="form-group"> <?php echo lang('confirm_password', 'confirm_password'); ?> <div class="controls"> <?php echo form_password('confirm_password', '', 'class="form-control"

Page 113: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

id="confirm_password" required="required" data-bv-identical="true" data-bv-identical-field="password" data-bv-identical-message="' . lang('pw_not_same') . '"'); ?> </div> </div>

</div> <div class="col-md-5 col-md-offset-1">

<div class="form-group"> <?= lang('status', 'status'); ?> <?php $opt = array(1 => lang('active'), 0 => lang('inactive')); echo form_dropdown('status', $opt, (isset($_POST['status']) ? $_POST['status'] : ''), 'id="status" required="required" class="form-control select" style="width:100%;"'); ?> </div> <div class="form-group"> <?= lang("group", "group"); ?> <?php foreach ($groups as $group) { if ($group['name'] != 'customer' && $group['name'] != 'supplier') { $gp[$group['id']] = $group['name']; } } echo form_dropdown('group', $gp, (isset($_POST['group']) ? $_POST['group'] : ''), 'id="group" required="required" class="form-control select" style="width:100%;"'); ?> </div>

<div class="clearfix"></div> <div class="no"> <div class="form-group"> <?= lang("biller", "biller"); ?> <?php $bl[""] = lang('select').' '.lang('biller'); foreach ($billers as $biller) { $bl[$biller->id] = $biller->company != '-' ? $biller->company : $biller->name; }

Page 114: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

echo form_dropdown('biller', $bl, (isset($_POST['biller']) ? $_POST['biller'] : ''), 'id="biller" class="form-control select" style="width:100%;"'); ?> </div>

<div class="form-group"> <?= lang("warehouse", "warehouse"); ?> <?php $wh[''] = lang('select').' '.lang('warehouse'); foreach ($warehouses as $warehouse) { $wh[$warehouse->id] = $warehouse->name; } echo form_dropdown('warehouse', $wh, (isset($_POST['warehouse']) ? $_POST['warehouse'] : ''), 'id="warehouse" class="form-control select" style="width:100%;" '); ?> </div>

<div class="form-group"> <?= lang("view_right", "view_right"); ?> <?php $vropts = array(1 => lang('all_records'), 0 => lang('own_records')); echo form_dropdown('view_right', $vropts, (isset($_POST['view_right']) ? $_POST['view_right'] : 1), 'id="view_right" class="form-control select" style="width:100%;"'); ?> </div> <div class="form-group"> <?= lang("edit_right", "edit_right"); ?> <?php $opts = array(1 => lang('yes'), 0 => lang('no')); echo form_dropdown('edit_right', $opts, (isset($_POST['edit_right']) ? $_POST['edit_right'] : 0), 'id="edit_right" class="form-control select" style="width:100%;"'); ?> </div> <div class="form-group"> <?= lang("allow_discount", "allow_discount"); ?> <?= form_dropdown('allow_discount', $opts, (isset($_POST['allow_discount']) ? $_POST['allow_discount'] : 0), 'id="allow_discount" class="form-control select" style="width:100%;"'); ?>

Page 115: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

</div> </div>

<div class="row" style="display: none;"> <div class="col-md-8"> <label class="checkbox" for="notify"> <input type="checkbox" name="notify" value="1" id="notify" checked="checked"/> <?= lang('notify_user_by_email') ?> </label> </div> <div class="clearfix"></div> </div> <div class="row" style="display: none;"> <div class="col-md-6"> <label class="checkbox" for="notify"> <input type="checkbox" name="receipt" value="1" id="receipt" checked="checked"/> <?= lang('print_receipt') ?> </label> </div> <div class="col-md-6 hide"> <label class="checkbox" for="notify"> <input type="checkbox" name="invoice" value="1" id="invoice" checked="checked"/> <?= lang('print_invoice') ?> </label> </div> </div>

</div> </div> </div>

<p><?php echo form_submit('add_user', lang('add_user'), 'class="btn btn-primary"'); ?></p>

<?php echo form_close(); ?> </div> </div> </div></div>

Contoller

<?php defined('BASEPATH') OR exit('No direct script access allowed');

Page 116: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

class Auth extends MY_Controller {

function __construct() { parent::__construct(); $this->lang->admin_load('auth', $this->Settings->user_language); $this->load->library('form_validation'); $this->form_validation->set_error_delimiters($this->config->item('error_start_delimiter', 'ion_auth'), $this->config->item('error_end_delimiter', 'ion_auth')); $this->load->admin_model('auth_model'); $this->load->library('ion_auth'); }

function create_user() { if (!$this->Owner) { $this->session->set_flashdata('warning', lang("access_denied")); redirect($_SERVER["HTTP_REFERER"]); }

$this->data['title'] = "Create User"; $this->form_validation->set_rules('username', lang("username"), 'trim|is_unique[users.username]'); $this->form_validation->set_rules('email', lang("email"), 'trim|is_unique[users.email]'); $this->form_validation->set_rules('status', lang("status"), 'trim|required'); $this->form_validation->set_rules('group', lang("group"), 'trim|required');

if ($this->form_validation->run() == true) {

$username = strtolower($this->input->post('username')); $email = strtolower($this->input->post('email')); $password = $this->input->post('password'); $notify = $this->input->post('notify');

$additional_data = array( 'first_name' => $this->input->post('first_name'), 'last_name' => $this->input->post('last_name'), 'company' => $this->input->post('company'), 'phone' => $this->input->post('phone'),

Page 117: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

'gender' => $this->input->post('gender'), 'group_id' => $this->input->post('group') ? $this->input->post('group') : '3', 'biller_id' => $this->input->post('biller'), 'warehouse_id' => $this->input->post('warehouse'), 'view_right' => $this->input->post('view_right'), 'edit_right' => $this->input->post('edit_right'), 'allow_discount' => $this->input->post('allow_discount'), 'print_receipt' => $this->input->post('receipt'), 'print_invoice' => $this->input->post('invoice') ); $active = $this->input->post('status'); } if ($this->form_validation->run() == true && $this->ion_auth->register($username, $password, $email, $additional_data, $active, $notify)) {

$this->session->set_flashdata('message', $this->ion_auth->messages()); admin_redirect("auth/users");

} else {

$this->data['error'] = (validation_errors() ? validation_errors() : ($this->ion_auth->errors() ? $this->ion_auth->errors() : $this->session->flashdata('error'))); $this->data['groups'] = $this->ion_auth->groups()->result_array(); // var_dump($this->data['groups']);die(); $this->data['billers'] = $this->site->getAllCompanies('biller'); $this->data['warehouses'] = $this->site->getAllWarehouses(); $bc = array(array('link' => admin_url('home'), 'page' => lang('home')), array('link' => admin_url('auth/users'), 'page' => lang('users')), array('link' => '#', 'page' => lang('create_user'))); $meta = array('page_title' => lang('users'), 'bc' => $bc); $this->page_construct('auth/create_user', $meta, $this->data); } } }

Page 118: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

សកម្ម2ព "ុះសិក្សារប្រាសាវប្រាជាវក�ុង�ុណា្ណ ល័យ

Page 119: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...
Page 120: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

ឯកសារបៀr្សងៗ អែដលទទួល�នពីហាងទំរង់មុខមsូ�

Page 121: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

កប្រាមងសំKួរសំរា�់បៀ_`ី�ទសមា្ភ សន៍ជំរា�សួរ បៀយីងខ្ញុំទាងំអស់គ្នា� ជានិស្ិស�ឆ្នា� ទីំ៤ ជំនាន់ទ ី ១៦ ម្លៃនសាកលវទិ្យាល័យ បៀ��លប្រា�យ ឯកបៀទស ព័�៌មានវទិ្យា (Information Technology) អែដល�ននឹងកំពុងបៀ_ី̀ការសិក្សាប្រាសាវប្រាជាវបៀដីម្ប ី សរបៀសរសារណា�ញ្ច�់ថ្នា� ក�រញិ្ញា� �័ប្រា�អែr�ក ប្រា1�់ប្រា1ងទិន�័យ (Database) បៀហីយប្រាកមុនិស្សិ�បៀយីងខ្ញុំទាងំអស់គ្នា� ទទួល�នកាr្ដល់ឪកាសពីបៀLកនាយកសកលវទិ្យា_ិការ បៀដីម្ីបសាកសួរព័�៌មានមួយ"ំនួន អែដលមានសំKួរដូ"ខាងបៀប្រាកាម៖

1. បៀ�ីបៀ�ក�ុងហាងឌីមសាអំែអមបៀ7ីបៀរ 8រ�ស់បៀLកមានការប្រា1�់ប្រា1ងបៀដ្ឋាយប្រា�ព័ន្ធកំុព្ូយទ័រអែដររបឺៀទ?2. បៀ�ីបៀ�ក�ុងហាងរ�ស់បៀLកបៀនះមានការប្រា1�់ប្រា1ងបៀដ្ឋាយប្រា�ព័ន្ធ�បៀ"្ចកវទិ្យា របឺៀ� ?3. បៀ�ីបៀLកបៀ_ី̀ការ ប្រា1�់ប្រា1ងការលក់បៀដ្ឋាយវ_ីិណា?4. បៀ�ីក�ុងហាង�ុ1lលិកមាន"ំបៀនះដឹងដល់កំរ�ិណាខUះ?5. បៀ�ីហាងរ�ស់បៀLក�នបៀប្រា�ីប្រា�ស់កម្មវ_ីិអី̀បៀដីម្ីបប្រា1�់ប្រា1ងស្ដុ�ទំនិញ, ការលក់និង

�ុ1lលិក?6. បៀ�បៀពលអែដលអ�ិnិជនមក Order ទំនិញបៀ�ី�ុ1lលិករ�ស់បៀLកបៀ_ី̀ការកប្រាតាបៀដ្ឋាយអី̀?7. បៀ�ីបៀLករក្សាឯកសារ រ ឺទិន�័យបៀr្សងៗបៀដ្ឋាយរបៀ���ណា?8. បៀ�ីសព̀ម្លៃnoបៀនះបៀLកមាន2ពងាយប្រាសលួក�ុងការរក្សាទុកឯកសារអែដរឬបៀទ?9. ប្រា�សិនបៀ�ីមានការ��់�ង់ឯកសារបៀកី�បៀaងី បៀ�ីបៀLកនឹងបៀ_ី̀ដូ"បៀម្ដ"?10. បៀ�ីការប្រា1�់ប្រា1ងបៀដ្ឋាយម្លៃដ បៀ�បៀពលអែដលអ�ិnិជនមាន"ំនួនបៀប្រា"ីនមកទិញទំនិញ ធាU �់

មានការលំ�ករបឺៀទ?11. បៀ�ីបៀLកធាU �់1ិ�បៀទថ្នា បៀ_ី̀|~ ងណាបៀអាយមាន2ពងាយប្រាសលួរបឺៀទ?12. បៀ�ីបៀLក"ង់ផ្ទាU ស់�្ដូរការប្រា1�់ប្រា1ងសព`ម្លៃnoបៀនះបៀuជាការប្រា1�់ប្រា1ងបៀដ្ឋាយកំុព្យូទ័រ របឺៀទ?13. បៀ�ីបៀLក1ិ�ថ្នា ការបៀ_ី̀ការបៀដ្ឋាយម្លៃដ និងការបៀ_ី̀ការបៀដ្ឋាយប្រា�ព័ន្ធ�បៀ"្ចកវទិ្យាមួយណាអែដល

សំខាន់ជាង?14. ប្រា�សិនបៀ�ីប្រាកមុបៀយីងខ្ញុំ"ង់�បៀង្កី�ប្រា�ព័ន្ធមួយសប្រាមា�់ដ្ឋាក់បៀ�បៀ2ជនីយដ្ឋា4 នបៀនះ បៀ�ីបៀLក

យល់ប្រាពមឬបៀទ ?15. ប្រា�សិនបៀ�ីបៀ_ី̀បៀអាយហាងបៀLកមានការប្រា1�់ប្រា1ងមួយបៀដ្ឋាយមាន2ពងាយប្រាសលួបៀ�ីបៀLក

នឹងបៀប្រា�ីប្រា�ស់វារហូ� ឬ|~ ងណា? សូមអរ1ុK

រ"នាសម្ព័នរ�ស់បៀ2ជនីយដ្ឋា4 ន

Page 122: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...

ទីកអែនUង"ុះកម្មសិក្សាក៏សាងប្រា�ព័ន្ធតាមរយៈម្លៃនដឹកនារំ�ស់បៀLកសាប្រាសា� ចារ្យ ទទួលពន្ធកអែr�កការ|ិល័យសិក្សាទាងំអស់

រមួទាងំបៀLក Advisor អែដល�ន"ង្អុល�ងាs ញអំពីការបៀរ��"ំសំKំុអែ���ទ បៀស�ី"ុះបៀ_ី̀កម្មសិក្សាបៀនាះ បៀយីងខ្ញុំសបៀប្រាម""ិ��ទទួលដ្ឋាក់សំKំុអែ���ទ បៀនះបៀuក�ុងបៀ2ជនីយដ្ឋា4 នមួយអែដលមានបៀp្ម ះ ” ឌីមសាអំែ#មភោ$ីភោរ% “ បៀហីយក៏ទទួល�ននូវការសំបៀរ""ិ� � ទទួលយល់ប្រាពមបៀអាយប្រាកមុបៀយីងខ ្ញុំ �ន"ុះបៀp្ម ះបៀដ្ឋាយបៀស"ក្ដីបៀពញ"ិ��ពីអ�កមា្ច ស ់ បៀ2ជនីយដ្ឋា4 ន។

បៀ2ជនីយដ្ឋា4 ន ឌីមសាអំែ#មភោ$ីភោរ% ជាបៀ2ជនីយដ្ឋា4 នក�ុងប្រាសកុមួយ អែដលស>ិ�បៀ�បៀប្រាកាមការដឹកនាបំៀដ្ឋាយជនជា�ិអែខ្មរអែដលមានដំបៀKីរការតាងំពីឆ្នា� ២ំ០១៣ រហូ�មកដល់សព`ម្លៃnoបៀនះ បៀដីម្ីប�ំបៀពញ�ំរវូការរ�ស់អ�ិnិជនអែដលបៀ1"ង់�ន បៀហីយបៀ2ជនីយដ្ឋា4 នមានទីតាងំស>ិ�បៀ� r្ទះបៀលខ៤៨ E1&E2 rUូវបៀលខ៥៣ អែកង១៣០ សងា្ក �់r្សារ_ំn្មី ខ័K្ឌ ដូនបៀពញ រាជធានី7�ំបៀពញ ។

Page 123: khmersafari.com  · Web viewbuild bright university. សារណាបញ្ចប់ការសិក្សាថ្នាក់បរិញ្ញាបត្រ ...