Page 1
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
PHP Programming Language Training
เทคโนโลย PHP กบการพฒนา
ความหมายของ PHP ? ในปจจบน Web site ตาง ๆ ไดมการพฒนาในดานตางๆ อยางรวดเรว อาทเชน เรองของความสวยงามและแปลกใหม, การบรการขาวสารขอมลททนสมย,เปนสอกลางในการตดตอ และสงหนงทก าลงไดรบความนยมเปนอยางมากซง อไดวาเปนการปฏวตรปแบบการ ขายของกคอ E-commerce ซงเจาของสนคาตางๆ ไมจ าเปน ตองมรานคาจรงและไมจ าเปนตองจางคนขายของอกตอไปรานคาและตวสนคานน จะไปปรากฏอยบน Wed site และการซอขายกเกดขนบนโลกของ Internet แลว PHP ชวยเราใหเปนการพฒนา Web site และความสามารถทโดดเดนอกประการ-หนงของ PHP นน คอ database-enabled web page ท าใหเอกสารของ HTML สามารถท จะเชอมตอกบระบบฐานขอมล (database)ไดอยางมประสทธภาพและรวดเรว จงท าให ความตองการในเรองการจดรายการสนคาและรบรายการสงของตลอดจนการจดเกบ ขอมลตางๆ ทส าคญผานทาง Internet เปนไปไดอยางงายดาย PHP เปนภาษาจ าพวก scripting language ค าสงตางๆจะเกบอยในไฟลทเรยกวา สครปต (script) และเวลาใชงานตองอาศยตวแปลชดค าสง ตวอยางของภาษาสครปกเชน JavaScript, Perl เปนตน ลกษณะของ PHP ทแตกตางจากภาษาสครปตแบบอนๆ คอ PHP ไดรบการพฒนาและออกแบบมา เพอใชงานในการสรางเอกสารแบบ HTML โดยสามารถสอดแทรกหรอแกไขเนอหาไดโดยอตโนมต ดงนนจงกลาววา PHP เปนภาษาทเรยกวา server-side หรอ HTML-embedded scripting language เปนเครองมอทส าคญชนดหนงทชวยใหเราสามารถสรางเอกสารแบบ Dynamic HTML ไดอยางมประสทธภาพและมลกเลนมากขน
เนองจากวา PHP ไมไดเปนสวนหนงของตว Web Server ดงนนถาจะใช PHP กจะตองดกอนวา Web server นนสามารถใชสครปต PHP ไดหรอไม ยกตวอยางเชน PHP สามารถใชไดกบ Apache WebServer และ Personal Web Server (PWP) ส าหรบระบบปฏบตการ Windows 95/98/NT ในกรณของ Apache เราสามารถใช PHP ไดสองรปแบบคอ ในลกษณะของ CGI และ Apache Module ความแตกตางอยตรงทวา ถาใช PHP เปนแบบโมดล PHP จะเปนสวนหนงของ Apache หรอเปนสวนขยายในการท างานนนเอง ซงจะท างานไดเรวกวาแบบทเปน CGI เพราะวา ถาเปน CGI แลว ตวแปลชดค าสงของ PHP ถอวาเปนแคโปรแกรมภายนอก ซง Apache จะตองเรยกขนมาท างานทกครง ทตองการใช PHP ดงนน ถามองในเรองของประสทธภาพในการท างาน การใช PHP แบบทเปนโมดลหนงของ Apache จะท างานไดมประสทธภาพมากกวา
Page 2
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
ลกษณะเดนของ PHP ใชไดฟร PHP เปนโปร แกรมวงขาง Sever ดงนนขดความสามารถไมจ ากด Conlatfun-นนคอPHP วงบนเครอง UNIX,Linux,Windows ไดหมด เรยนรงาย เนองจาก PHP ฝงเขาไปใน HTML และใชดครงสรางและไวยากรณภาษางายๆ เรวและมประสทธภาพ โดยเฉพาะเมอใชกบ Apach Xerve เพราะไมตองใชโปรแกรมจากภายนอก ใชรวมกบ XML ไดทนท ใชกบระบบแฟมขอมลได ใชกบขอมลตวอกษรไดอยางมประสทธภาพ ใชกบโครงสรางขอมลใชไดแบบ Scalar,Array,Associative array ใชกบการประมวลผลภาพได
เรมปฏบตการเบองตน
ค าอธบายหรอ Comment ในภาษา PHP ถาเราตองการเขยนค าอธบายในสวนใดๆกตามของสครปต เรากจะสามารถท าไดโดยใช /* ... */ เหมอนในภาษาซ หรอ // เหมอนในภาษาจาวา หรอ # เหมอน shell script โปรดสงเกตวา // ใชเขยนน าค าอธบายในภายบรรทดหนงๆเทานน สวน # ใชเรมตนของบรรทดทเขยนค าอธบาย <? # comment $a = 41; // set $a to 41. $b =10; // set $b to 10. $b += $a; /* add $a to $b */ echo $b," \n"; ?>
------ <? class stack { var $arrays; var $size;
Page 3
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
function stack() { // class constructor $this->size = 0; unset($this->arrays); }
function push($elem) { // put an element on stack $this->arrays[$this->size] = $elem; $this->size++; }
function get_size() { // get number of elements stored return $this->size; }
function is_empty() { // is stack empty ? return ($this->size == 0) ? true : false; }
function pop() { // retrieve an element from the top of stack if ( $this->is_empty() == false ) { $this->size--; return $this->arrays[$this->size]; } else return 0; } }
$inst = new stack; // create an object from stack class echo "initial stack size=".($inst->get_size()),"<BR>\n";
for ($i=0; $i < 10; $i++) { $inst->push( ($i*7)%11 );
Page 4
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
} echo "current stack size=".($inst->get_size()),"<BR>\n";
while (! $inst->is_empty() ) { echo "pop ".$inst->pop(),"<BR>\n"; }
echo "stack is ".($inst->is_empty() ? "empty." : "not empty.")."<BR>\n";
$inst = 0; // unuse this instance of class stack ?>
ค าสงพนฐาน
Echo
รปแบบค าสง Echo ขอความท1,ขอความท1,ขอความท1,....; ตวอยาง Sample1.php
<? echo"Hello Word <br>"; echo"Hello PHP Programming"; ?>
Out Put
Page 5
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
Print รปแบบของค าสง Print("ขอความทตองการแสดง"); ค าสง Print จะท างานเหมอนกบค าสง Echo แตค าสง Print นนสามารถแสดงคาไดครงหนงคาเทานน ในขณะทค าสง Echo สามารถแสดงคาไดหลาย ๆ คา
ตวอยาง
Sample2.php
<? echo"Hello Word"; echo"<br>"; echo"Hello PHP Programming"; ?>
Out Put
Printf รปแบบค าสง (Printf(String format,…); ค าสง Printf จะท างานเหมอนกบค าสง echo และ print เพอสงขอมลไปแสดงท Brownser แตค าสง Printf นนสามารถทจะก าหนดรปแบบการแสดงขอมลไดดวย เหมอนกบภาษา C
Sample3.php
Page 6
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
<? $name="Werachai Nukitram"; $old=21; $salary=3900.45; $key=165; printf("ชอ %s ",$name); printf("<br>อาย %d ",$old); printf("<br>เงนเดอน %.2f ",$salary); printf("<br>Character ของ key คอ %c ",$key); ?>
สญลกษณในฟงกชน prinf();
%d เลขฐานสบ
%b เลขฐานสอง
%c รหส ASCII
%f ทศนยม
%o เลขฐานแปด
%s ตวอกษร String
%x , %X
เลขฐานสบหก
Out put
Page 7
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
Flush
โดยปกตค าสงทใชในการสงขอมลไปยง Browser นนจะตองมการเกบขอมล ไวในหนวยความจ าในสวนทเรยกวา Buffer กอน และสงขอมลไปกตอเมอ ขอมลทอยใน Buffer นนเตม Flushนนจะ ท าใหขอมลทอยในBuffer ถกสง ลไปแสดงท Browser โดยทนท โดยไมตองรอใหขอมลใน Buffer นนเตม
รปแบบของค าสง
Flush(); <? Echo"สงขอความไปให Browser"; Flush(); ?> บางค าสงอาจจะใชแทนกนไดครบ เชน print กบ Echo ใหเลอกใชใหเหมาะสมกบ Program แลวกนครบ
การเขยน PHP รวมกบ Html
ภาษา php สาารถแทรกในเอกสาร Html ไดเหมอนกบภาษา Asp
โดยจะอยภายใตเครองหมาย <? .................. ?> ซงสามารถก าหนดไดหลายรปแบบ เชน
Page 8
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
<? ... ?> (SGML style) <?php ... ?> (XML style) <script language="php"> ... </script> (JavaScript style) <% ... %> (ASP style)
ตวอยาง Sample1.php
<html> <head> <title>Test My Homepage</title> </head> <body> สวนของ Html<br> <? echo"สวนของ php"; ?><br> สวนของ Html<br> <? echo"คณสามารถแทรก Script php ใวตรงไหนกได"; ?> </body> </html>
Out Put
Page 9
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
ชนดของขอมลและตวแปร ส าหรบการเขยนโปรแกรมส าหรบภาษาคอมพวเตอรระดบสง สงทจะขาดเสยมไดคอ การก าหนดและใชตวแปร (variable) ตวแปรในภาษา PHP จะเหมอนกบในภาษา Perl คอเรมตนดวยเครองหมาย dollar ($) โดยเราไมจ าเปนตองก าหนดแบบของขอมล (data type) อยางเจาะจงเหมอนในภาษาซ เพราะวา ตวแปลภาษาจะจ าแนกเองโดยอตโนมตวา ตวแปรดงกลาว ใชขอมลแบบใด ในชวงเวลานนๆ เชน ขอความ จ านวนเตม จ านวนทมเลขจดทศนยม ตรรก เปนตน
Integer จ านวนเตมบวก และจ านวนเตมลบ เลขฐานสบ ฐานแปด และฐานสบหก
Float เกบจ านวนจรงทงบวกและลบ ทงมทศนยม และไมมทศนยม
String เกบจ านวนตวเลข และ ขอความ
Array เกบขอมลทเปนชด หรอ อารเรย
Object เกบขอมลในลกษณะออปเจกตเพอการเรยกใชเปน Class Object หรอ Function
Type juggling เกบขอมลในลกษณะเฉพราะหรอผทใชเพมเขามา
หลกการตงชอ ตวแปร $var-name=value;
ขอบเขตการตงชอตวแปร - ขนตนดวยเครงหมาย $ แลวตามดวยตวอกษร A-Z,a-z - มความยาวไมเกน 255 ตวอกษร - หามมจดทศนยม หรอชองวาง - จะตองไมตรงกบค าสงวน และควรตงชอ ใหมความหมายใกลเคยงกบ คาทเกบ - ตวอกษรเลกหรอใหญจะเปนตวแปรตางกน - ถาตงตวแปรมาใหม แลวทบตวแปรเกา คาของตวแปรเกาจะหายไป
Page 10
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
การตรวจสอบชนดของตวแปร gettype($var-name);
ตวอยางเชน <? $a=1234; echo gettype($a); ?> การประกาศคาตวแปร 1.Integer เกบจ านวนเตมบวก และจ านวนเตมลบ เลขฐานสบ ฐานแปด และฐานสบหก $a=123; $a=-123;
Sample1.php
<? $a=123; $b=456; $c=$a+$b; echo"$c"; ?>
Out Put
2. Float เกบจ านวนจรงทงบวกและลบ ทงมทศนยม และไมมทศนยม
Page 11
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
$a=1.23; $a=-1.23;
Sample2.php
<? $a=123.45; $b=456.78; $c=$a*$b; printf("%.2f ",$c); ?>
Out Put
3.String เกบจ านวนตวเลข และ ขอความ
$a="PHP Programming"; $a="1234567890";
Sample3.php
<? $a="PHP Programming"; $b="1234567890"; echo"$a <br> $b"; ?>
Out Put
Page 12
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
การตรวจสอบวาตวแปรนมการก าหนดคาหรอไม isset($var-name); <? $a=1234; if (isset($a)) { echo"ไมมการก าหนดคาตวแปร"; } else { echo"มการก าหนดคาตวแปร"; } ?>
การตรวจสอบวาตวแปรนมคาวางหรอไม empty($var-name);
<? $a=1234; if (empty($a)) { echo"ตวแปรมคาวาง"; } else
Page 13
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
{ echo"ตวแปรมคาไมวาง"; } ?> Sample4.php <? $mystring = "Hello World!"; $myinteger = 1031; $myfloat = 3.14; ?>
ถาเราตองการจะแสดงคาของตวแปร กอาจจะใชค าสง echo ได ตวอยางเชน echo "$mystring\n"; echo "$myinteger\n"; echo "$myfloat\n"; สญลกษณ \n หมายถงการขนบรรทดใหม เปน escape character ตวหนง (ส าหรบตวอนๆ โปรดดในตาราง) เมอพมพขอความเปนเอาพต และโปรดสงเกตวา ส าหรบการใชงานภายในเอกสาร HTML การขนบรรทดใหมโดยใช \n จะแตกตางจากการขนบรรทดโดยใช <BR> ใน HTML <? $mystring = "Hello World!"; $myinteger = 1031; $myfloat = 3.14; echo "$mystring<BR>\n"; echo "$myinteger<BR>\n"; echo "$myfloat<BR>\n"; ?>
Escaped characters \n newline \r carriage
Page 14
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
\t horizontal tab \\ backslash \$ dollar sign \" double-quote %% percent ตวแปรตวหนง อาจจะมขอมลหลายแบบในชวงเวลาทตางกน แตการจะใชงานบางครงจะตองดดวยวา เมอไหรจะใชเปนตวเลขเทานน และไมใชกบขอความเปนตน ตวอยางเชน <? $x = 10; $y = $x + 15.5; echo "$x, $y \n"; $x = "abc"; echo "$x \n"; $z = $x + 15.5; echo "$x, $z \n"; echo ("100.5" - 16); echo (0xef + 007);
?>
ในกรณน เราก าหนดในตอนแรกวา $x ใหเกบคา 10 ซงเปนจ านวนเตม ถาเราน ามาบวกกบ 15.5 ผลทไดกจะเปน 25.5 ซงกลายเปนเลขทศนยม แลวเกบไวในตวแปร $y ตอมาก าหนดใหตวแปร $x เกบสตรงคทเกบขอความ "abc" ถาเราน ามาบวกกบ 15.5 กรณนกจะใหผลทไดไมถกตอง เนองจากไมสามารถน าขอความมาบวกกบตวเลขได แต PHP อนญาตใหเราท าเชนนนไดในบางกรณ สมมตวา สตรงคมเฉพาะตวเลขและสามารถเปลยนเปน เลขจ านวนเตม หรอจ านวนจรงไดโดยอตโนมต เรากน าสตรงคนมาบวกลบคณหรอหารกบตวแปรทเกบเปนตวเลขได
คาคงทส าหรบเลขจ านวนเตม อาจจะอยในรปของเลขฐานแปดหรอสบหกกได ถาเปนเลขฐานแปดจะมเลขศนยน า ถาเปนเลขฐานสบหกจะม 0x น าหนา
Page 15
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
หากตองการก าหนด ชอตวแปรจากคาของตวแปรกสามารถก าหนดไดเปน
$$var-name=value;
ตวแปรเพอแสดงคาของระบบ
DOCUMENT_ROOT แสดง path root directory
GATEWAY_INTERFACE แสดงคาอนเทอรเฟชของ Cgi
HTTP_ACCEPT_LANGUAGE ภาษาทใช
HTTP_CONNECTION สถานภาพการ คอนเนกต
HTTP_USER_AGENT แสดงประเภทของโปรแกรมทเรยกเขามา เชน IE
PATH_INFO แสดงชอเอกสาร
PATH_TRANSLATED แสดง Path ของเอกสาร
QUERY_STRING แสดงคาใน Query String
REMOTE_ADDR แสดงคา Ip ของเครองทเขามา
REMOTE_PORT แสดง Port เครองทเขามา
REQUEST_METHOD แสดงคารบสงวาเปน Get หรอ Post
SCRIPT_NAME แสดงชอเอกสาร
SERVER_NAME แสดงชอ Server
SERVER_PORT แสดง Prot ของ Server
SERVER_PROTOCOL แสดง โปรโตคอลของ Server
SERVER_SOFTWARE แสดง โปรแกรมของ Server
คณสามารถดโครงสรางรวมทงระบบตาง ๆ ทคณใชงานอยไดโดย <? phpinfo(); ?>
Sample1.php
<? echo "Document : " .$DOCUMENT_ROOT."<br> ";
Page 16
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
echo "Interface : " .$GATEWAY_INTERFACE."<br> "; echo "Language : " .$HTTP_ACCEPT_LANGUAGE."<br> "; echo "Connection : " .$HTTP_CONNECTION."<br> "; echo "Browser : " .$HTTP_USER_AGENT."<br> "; echo "Path Info : " .$PATH_INFO."<br> "; echo "Path Translated : " .$PATH_TRANSLATED."<br> "; echo "Query String : " .$QUERY_STRING."<br> "; echo "IP Address Client : " .$REMOTE_ADDR."<br> "; echo "Port Client : " .$REMOTE_PORT."<br> "; echo "Request Method : " .$REQUEST_METHOD."<br> "; echo "Script Name : " .$SCRIPT_NAME."<br> "; echo "Server Name : " .$SERVER_NAME."<br> "; echo "Server Port : " .$SERVER_PORT."<br> "; echo "Server Protocol : " .$SERVER_PROTOCOL."<br> "; echo "Server Software : " .$SERVER_SOFTWARE."<br> "; echo "PHP OS : " .(PHP_OS)."<br> "; echo "PHP Version : " .(PHP_VERSION)."<br>"; ?>
Page 17
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
Out put
ตวแปร Array
เปนตวแปรชดทมการเกบคาตวแปรทม ชนดของขมลเหมอนกน เชน เกบ รายชอของพนกงาน อาย เงนเดอน
- Arrary 1 มต $a[0]="Somchai"; $a[1]="Werachai"; $a[2]="Surachai"; $a[3]="Adisorn";
Page 18
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
การประกาศตวแปร
$a[5]
จะมสมาชก 6 ตวคอ $a[0],$a[1],$a[2],$a[3],$a[4],$a[5]
$a[3]
จะมสมาชก 4 ตวคอ $a[0],$a[1],$a[2],$a[3] Sample
<? $color_table["red"] = 0xff0000; $color_table["green"] = 0x00ff00; $color_table["blue"] = 0x0000ff; $color_name= "red"; echo "value = ".$color_table[ $color_name]."<BR>\n"; ?> Out value = 16711680 การใชค าสง each และ list ส าหรบ associative array ถาเราตองการจะเขาถงขอมลแตละคทถกเกบอยใน associative array เราอาจจะใชวธเรยกผานฟงกชน each() และ list() ตามตวอยางตอไปน Sample <? unset($a); $a = array( "a" => 10, "b" => 20, "c" => 30 ); while (list($key,$value) = each($a)) { echo "$key=$value <BR>\n"; } ?>
Page 19
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
Out a=10 b=20 c=30 ฟงกชน each() จะอานขอมลทละคจากอารเรยแบบเชอมโยงมาแลวสงไปยงฟงกชน list() ซงจะท าหนาทแยกเกบ ซงในกรณกคอ เกบไวในตวแปร $key และ $value หลงจากนน เรากสามารถน าคาของตวแปร ไปใชงานตามทตองการได - Arrary 2 มต
$a[0][0]="Somchai"; $a[0][1]="Werachai"; $a[1][2]="Surachai";
การประกาศตวแปร
$a[2][2]
จะมสามชก 8 ตว คอ $a[0][0],$a[0][1],$a[0][2],$a[1][0],$a[2][0],$a[1][1],$a[1][2],$a[2][2], Sample <? $countries = array ( "thailand" => array ( "zone" => "Asia", "D_NAME" => ".th"), "malasia" => array ( "zone" => "Asia", "D_NAME" => ".my"), "india" => array ( "zone" => "Asia", "D_NAME" => ".in"), "holland" => array ( "zone" => "Europe", "D_NAME" => ".nl"), "france" => array ( "zone" => "Europe", "D_NAME" => ".fr") ); echo "domain name=".$countries[ "thailand"]["D_NAME"]."<BR>\n"; ?>
Page 20
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
Out Put
domain name=.th - Array 3 มต
$a[0][0][0]="Somchai"; $a[0][1][2]="Werachai"; $a[1][2][3]="Surachai";
Sample1.php
<? $a[0]="Somchai"; $a[1]="Werachai"; $a[2]="Surachai"; $a[3]="Adisorn"; $b[0]=20; $b[1]=21; $b[2]=22; $b[3]=23; for($i=0;$i<=3;$i++) { echo"name : $a[$i] Old $b[$i] <br>"; } ?>
Page 21
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
Out Put
Sample2.php
<? $a=array("Somchai","Werachai ","Surachai","Adisorn"); for($i=0;$i<=3;$i++) { echo"name : $a[$i] <br>"; } ?>
Out Put
อารเรยในภาษา PHP นนจะแตกตางจากอารเรยในภาษาซหรอจาวาตรงทวา อารเรยในภาษา PHP มขนาดทเปลยนแปลงได หรอจะเรยกวา dynamic array หรอ vector (ส าหรบอารเรยมตเดยว) เรมตนอาจจะแจงใชตวแปรแบบอารเรย พรอมเจาะจงขนาดเรมแรก เชน มขนาดเปนศนยกได
Page 22
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
$myarray[]=3; $myarray[]=1.1; $myarray[]="abc";
แตเมอใชอารเรยไป ขนาดของมนจะปรบเปลยนได คอขยายจ านวนขอมลทเกบอยภายในอารเรย ตามจ านวนขอมลทเราใสเพมเขาไป จากตวอยางขางบน ในกรณทเรามไดก าหนดเลขดชน (index) กหมายความวา จะมการขยายขนาดของอารเรยเพมขนอกหนงโดยอตโนมต ทกครงทเราใสขอมลทอยทางขวา และคาทเราก าหนดจากทางขวามอ และจะเกบไวในทใหมของอารเรย เราไมตองค านงถงเรองการจอง หรอ ปลดปลอยหนวยความจ าของอารเรย เหมอนอยางในกรณของอารเรย แบบไดนามกในภาษาซ
นอกจากนนขอมลแตละตวในอารเรยไมจ าเปน ตองเปนขอมลชนดเดยวกน เชน อาจจะมทงจ านวนเตม เลขทศนยม และขอความ ปะปนกนไป ตวอยางเชน <? $myarray[0] = 1; echo "number of elements =".count($myarray)."<BR>\n";
$myarray[1] = "abc"; echo "number of elements =".count($myarray)."<BR>\n";
$myarray[2] = 1.3; echo "number of elements =".count($myarray)."<BR>\n";
$myarray[]= 13+10; // the same as $myarray[3]= 13+10; echo "number of elements =".count($myarray)."<BR>\n";
for ($i=0; $i < 4; $i++) { echo $myarray[$i]," \n"; }
?>
ถาเราตองการจะทราบจ านวนของขอมลทมอยในอารเรยเราจะใชค าสง count()
Page 23
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
เทคนคหนงทใชในการสรางอารเรยทเกบหลายๆขอความหรอสตรงค คอ แทนทเราจะก าหนดคาของสมาชก ในอารเรยทละตว เราจะสรางไดโดยอตโนมต โดยเกบสตรงคเหลานนไวในสตรงคเพยงอนเดยวโดยมสญลกษณ | เปนตวแยก และกแลวใชฟงกชนเปนตวแบงเพอสรางอารเรยอกท ตามตวอยาง <? // create empty array $a=array(); // define string containing color names separated by | (pipe) $color_names="red|green|blue";
// create array from string $a=explode("|",$color_names); while ($color=each($a)) { echo "$color[1]<BR>\n"; // note: $color[0] contains the index (0,1,2,...) } ?>
ลองดอกตวอยางหนงทใชฟงกชน explode() สรางอารเรยโดยอตโนมตส าหรบใสไวใน FORM ในสวนของ SELECT เปนเมนใหเลอก <? // create selection list from a given string function str2select($str, $delim) { $options = explode($delim,$str); $num = count($options); for( $i=0; $i < $num;$i++) { echo "<option> $options[$i]</option>\n"; } }
$select_str="10 บาท|20 บาท|30 บาท|40 บาท|50 บาท|100 บาท|200 บาท|500 บาท|1000 บาท"; ?>
<FORM> <SELECT NAME="testform">
Page 24
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
<? str2select($select_str,"|"); ?> </SELECT> </FORM> การใชอารเรยสองมต ถาเราตองการจะใชอารเรยแบบสองมต (หรอมากกวา) กท าไดเชนกน คอชอตวแปรแลวตามดวย [..][..] ตวอยางเชน <? $dim = 3; for ($row=0; $row <= $dim; $row++) { for ($column=0; $column <= $dim; $column++) { $myarray2[$row][$column] = 4*$row + $column; echo $myarray2[$row][$column]," "; } echo "<BR>\n"; }
?> สงเกตวา ส าหรบการใชงานตวแปรทเปนอารเรย เราไมจ าเปนตองแจงใชตวแปรทเปนอารเรย พรอมก าหนดขนาดกอนการใชงาน
คาคงท Constant
คอ คาทก าหนดแลว สามารถเรยกใชงานไดทก ๆ ครง ทเราประกาศขนมา สามารถแบงออกไดเปน 2
ประเภทคอ
1.คาคงท PHP ก าหนดมาให เปนคาทเราสามารถน าไปใชงานไดทนท
E_ERROR แสดงขอผดพลาดท parse ตรวจหาไมพบ
E_WARNING แสดงเงอนไขใหทราบ และท างานตอไป
E_PARSE การ parse ท าใหเกดขอผดพลาดใน Program ทไมสามารถตรวจพบ
E_NOTICE เมอเกดความผดพลาด การเอกซคตยงมตอไป
_FILE_ แสดงชอไฟลทท างานอย เพอตรวจสอบหาขอผดพลาด
_LINE_ แสดงจ านวนบรรทดของไฟล เพอตรวจสอบหาขอผดพลาด
Page 25
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
PHP_VERSION แสดง V. ของ PHP ทใชงานอย
PHP_OS แสดงระบบปฏบตการทใชเปน Server
TRUE ตรวจสอบคาจรง
FALSE ตรวจสอบคาเทจ
2.คาคงททผใชก าหนดขนเอง เราสามารถก าหนดคาคงท เหมอนกบการประกาศตวแปร
รปแบบ Define(Constant-name,Value)
เมอ Constant-name ชอ ของคาคงท Value คาทจะก าหนดให
เชน
DEFINE("name","Werachai Nukitram"); DEFINE("old","21"); DEFINE("add","Surin");
Sample1.php
<? DEFINE("name","Werachai Nukitram"); DEFINE("old","21"); DEFINE("add","Surin"); echo ("Your name : ".name); echo ("<br>Your Old : " .old); echo ("<br>Address : ".add); ?>
Page 26
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
Out put
Operator และ การเปรยบเทยบทางคณต ฯ
ใน PHP มโอเปอเรเตอรดวยกนทงหมด 7 ชนดดวยกนดงน จะยกตวอยางทจ าเปนทเราตองน าไปใชเทานนครบ
Arithmetic Operators โอเปอเรเตอรทางคณตศาสตร String Operators โอเปอเรเตอรเชงขอความ Assignment Operators โอเปอเรเตอรก าหนดคา Bitwise Operators โอเปอเรเตอรเปรยบเทยบบต Logical Operators โอเปอเรเตอรเชงตรรกศาสตร Comparison Operators โอเปอเรเตอรเชงเปรยบเทยบ Operator Precedence โอเปอเรเตอรเพม-ลดคา
- Arithmetic Operators โอเปอเรเตอรทางคณตศาสตร
ตวอยาง ความหมาย ผลลพธ
$a + $b บวก ผลบวกของ $a และ $b. $a - $b ลบ ผลลพธจาก $b ลบออกจาก $a. $a * $b คณ ผลคณของ $a และ $b. $a / $b หาร ผลหารของ $a และ $b. $a % $b หารเอาเศษ เศษจากการหารของ $a หารโดย $b.
Page 27
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
- String Operators เปน โอเปอเรเตอรทใชกบขอความซงจะใช (.) เพยง โอเปอเรเตอรเดยว
ตวอยาง
<? $a = "PHP"; $b = "Programming"; $c = $a.$b; echo"$c"; ?>
Out Put
PHPProgramming - Assignment Operators โอเปอเรเตอรก าหนดคา
โอเปอเรเตอรพนฐานคอ "=" คอคณจะตองคดวาคาทางซายมอของโอเปอเรเตอรคอผลลพธจาก ค าสงทกระท าทางขวามอ
$a = 3; $a += 5; // $a = 8, มความหมายวา $a = $a + 5; $b = "Hello "; $b .= "There!"; // $b = "Hello There!",เหมอนกบ $b = $b . "There!";
เครองหมาย ความหมาย รปแบบ ผลลพธถาก าหนดให
$a=2 = ก าหนดคา $a=1 1
+= เพมคา $a += 1 3 -= ลบคา $a -= 1 1 *= คณคา $a *= 1 2 /= หารคา $a /= 1 2
Page 28
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
- Logical Operators โอเปอเรเตอรเชงตรรกศาสตร
ตวอยาง ความหมาย ผลลพธ
$a and $b And จรงกตอเมอ $a และ $b เปนจรง $a or $b Or จรงถา $a หรอ $b ตวใดตวหนงเปจรง $a xor $b Or จรงถา $a หรอ $b ตวใดตวหนงเปนจรง, แตจะไมจรงถาทงสองไม
จรง. ! $a Not จรงถา $a ไมจรง $a && $b And จรงทง $a และ $b เปนจรง $a || $b Or จรงถา $a หรอ $b ตวใดตวหนงเปจรง
- Comparison Operators โอเปอเรเตอรเชงเปรยบเทยบ
ตวอยาง ความหมาย ผลลพธ
$a == $b เทากบ จรงถา $a มคาเทากบ $b. $a != $b ไมเทากบ จรงถา $a มคาไมเทากบ $b. $a < $b นอยกวา จรงถา $a มคานอยกวา$b. $a > $b มากกวา จรงถา $a มคามากกวา $b. $a <= $b นอยกวาหรอ
เทากบ จรงถา $a มคานอยกวาหรอเทากบ $b.
$a >= $b มากกวาหรอเทากบ
จรงถา $a มคามากกวาหรอเทากบ $b.
Sample
<?
$a=5; $b=8; $c=4; echo "<font size=5 face='arial'>";
Page 29
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
echo "$a + $b = ",$a+$b,"<br>"; echo "$c - ($a + $b) = ",$c - ($a+$b),"<br>"; echo "$b * $c = ,$b*$c,"<br>"; echo "$b / $c = ",$b /$c,"<br>"; echo "$b / $a =",$b / $a,"<br>"; echo "$b % $a =",$b % $a,"<br>";
?>
Out Put 5 + 8 = 13 4 - (5+8) = -9 8 * 4 = 32 8 / 4 = 2 8 / 5 =1.6 8 % 5 = 3 Sample <? $x=3; echo $x++,"<BR>\n"; echo $x,"<BR>\n"; $x=3; echo ++$x,"<BR>\n"; echo $x,"<BR>\n";
$x=3; echo $x--,"<BR>\n"; echo $x,"<BR>\n";
$x=3; echo --$x,"<BR>\n";
Page 30
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
echo $x,"<BR>\n"; ?>
การก าหนดคาของตวแปรทเปนตวเลขหรอสตรงคโดยใช assignment operators การก าหนดคา (assignment ) หรอเปลยนแปลงคาใหแกตวแปร จะใชโอเปอรเรเตอร (assignment operators) ไดในหลายๆรปแบบ เหมอนอยางทใชในภาษาซ ตามตวอยางตอไปน <? $x=0; $x += 1; // the same as $x = $x + 1; $x--; // the same as $x = $x - 1; $x *= 3; // the same as $x = $x * 3; $x /= 2; // the same as $x = $x / 2; $x %= 4; // the same as $x = $x % 4; $x=""; $x .= 'A'; // append char to an existing string $x .= "BC"; // append string to an existing string ?> จากตวอยางขางบน ในกรณของการตอสตรงค เราจะใชจด (.) เปนโอเปอรเรเตอร การใชตวแปรเปนชอของตวแปร ภาษา PHP เปดโอกาสใหเราสามารถเลอกหรอเปลยนชอของตวแปรได ตวอยางเชน <? $a = "var1"; $$a = 10.3; echo "$a ${$a} $$a <BR>\n"; echo "$var1 <BR>\n";
?> จากตวอยางขางบน เราก าหนดใหตวแปร $a เกบสตรงค "var1" และจะใชเปนชอของตวแปรอกตวหนง โดยทางออม $$a เปนการอางถงตวแปรทมชอเดยวกบคาของตวแปร $a (ในกรณนคอ var1) ดงนนถาเราเขยนวา $$a หรอ $var1 กหมายถงตวแปรตวเดยวกน ถาตองการแสดงคาของ $$a โดยใชค าสง echo โดยอยในสตรงค (ระหวาง double quotations) เราจะตองเขยน ${$a} ไมใช $$a เพราะวา ถาเขยนตามแบบหลง ตวแปลค าสงจะอานคา $a กอนแลวแทนทลงในขอความ ซงจะได $var1แทนทจะเปนการอานคาของ $var1
Page 31
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
เทคนคนยงสามารถใชไดกบฟงกชน ตวอยางเชน <? function foobar() { echo "foobar<BR>\n"; } function callFunc ($f) { if ( is_string($f) == true) { $f(); } }
callFunc("foobar");
?> ตวอยางขางบนอาจจะท าใหเกดปญหาถาสมมตวา $f เปนชอของฟงกชนทไมมอยจรง วธตรวจสอบคอ การใชฟงกชน function_exists() ดงตอไปน <? function MyFunc() { print ("ok..<BR>\n"); } $f="myFunc"; if ( function_exists($f) ) { $f(); } else { echo "$f does not exist!"; }
?>
เงอนไขสายงานเพอการตดสนใจ
1. If...else สามารถใชได 2 วธคอ
Page 32
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
Sample1.php
<? $a = 1; if ($a==1) { echo"a=1 OK"; } ?>
Out Put
a=1 OK
อกตวอยางครบ
<? if ($x == 0) { echo $x; echo " is zero.<BR>\n"; } else if ($x > 0) { echo $x; echo " is positive.<BR>\n"; } else { echo $x; echo " is negative.<BR>\n"; }
?>
Page 33
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
Sample2.php
<? $a = 1; if ($a > 2) { echo" OK a > 2"; } else { echo" Not OK a < 2"; } ?>
Out Put
Not OK a < 2 2.if..elseif..esle
Sample3.php
<? $a = 4; if ($a==1) { echo" a = 1 OK "; } elseif ($a==2) { echo" a = 2 OK"; } elseif ($a==3) {
Page 34
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
echo" a = 3 OK "; } else { echo" a Not OK "; } ?>
Out Put
a Not OK
3.Switch Case
Sample4.php
<? $a = 3; Switch ($a) { case 1 : echo "a = 1 OK"; break; case 2 : echo "a = 2 OK"; break; case 3 : echo "a = 3 OK"; break; case 4 : echo "a = 4 OK"; break; default : echo " a Not OK"; } ?>
Page 35
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
out Put a = 3 OK <? $day=1; switch ($day) { case 1 : echo "Monday<BR>\n"; break; case 2 : echo "Tuesday<BR>\n"; break; case 3 : echo "Wednesday<BR>\n"; break; case 4 : echo "Thurday<BR>\n"; break; case 5 : echo "Friday<BR>\n"; break; case 6: echo "Saturday<BR>\n"; break; case 7 : echo "Sunday<BR>\n"; break; default : echo "error<BR>\n"; } ?>
Page 36
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
Out Put Monday หากใชอยในรปของ String จะก าหนดเปน Case "String"
3.Break ค าสง break และ continue ภายในลปอยางทใชกนในภาษาซ กน ามาใชกบภาษา PHP ได ตวอยางเชน Sample5.php <? unset($a); $a[]=1; $a[]=2; $a[]=3; $a[]="red"; $a[]="green"; $a[]="blue"; $a[]="none"; $i=0; $found="not found"; for ($i=0; $i < count($a); $i++) { if ( is_long($a[$i]) ) { // skip all integer elements continue; } if ($a[$i] == "blue") { $found=$a[$i]; break; } } echo $found,"<BR>\n";
?>
Page 37
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
4.Continue
เปนค าสงกระโดการท างานรอบใหม คอ เมอโปรแกรมเจอค าสงนจะกระโดดท างานใหมทนท
ตวอยาง
<html> <body> <? for ($a=0;$a<=20;$a++) { if ($a % 2) continue; echo "$a <br>"; } ?> </body> </html>
ค าสง continue บงคบใหไปเรมตนท าขนตอนในการวนลปครงตอไป 5.Require และ Include ค าสงทงสองเอาไวแทรกเนอหาจากไฟลอนทตองการ ขอแตกตางระหวาง include และ require อยตรงทวา ในกรณของการแทรกไฟลใชชอตางๆกนมากกวาหนงครงโดยใชลป ค าสง require จะอานเพยงแคครงเดยว คอไฟลแรก และจะแทรกไฟลนเทานนไปตามจ านวนครงทวนลป ในขณะท include สามารถอานไดไฟลตางๆกนตามจ านวนครงทตองการ <? $filename[]="file1.inc"; $filename[]="file2.inc"; for ($i = 0; $i < 2; $i++) { include $filename[$i]; } ?>
Page 38
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
ไฟล file1.inc Hello world 1<BR> ไฟล file2.inc Hello world 2<BR> ตวอยางการแทรกไฟลทมค าสงสครปต <? include ("script.inc"); ?> ไฟล script.inc: <P><CENTER><BLINK><? echo "Hi, How are you!" ?></BLINK></CENTER> การแทรกไฟลภายในโครงสรางของ if-else หรอ for-loop เปนตน มขอควรระวงเวลาใช คอ จะตองใส { } เอาไว เพอใหอยในบลอกของโครงสราง if ($version < 1.0) { include ($DOCUMENT_ROOT."/old.inc"); } else { include ( $DOCUMENT_ROOT."/new.inc") ; } ดงนนควรจะระมดระวง การแทรกไฟลโดยใช include หรอ require ในต าแหนงๆตาง โดยเฉพาะอยางยงในกรณท แทรกไฟลทมค าสง PHP อยดวย 6.Redirect เปนการยายการท างานของ Page ปจจบนเพอไปไฟลเปาหมาย header('location:file.php');
7.or
เงอนไข OR ขอก าหนดเงอนไข เหตการณเปนจรงเหตการณใดเหตการณหนง กคอพบขอมลตวแปรตวใดตวหนง โปรแกรมจงจะท างาน
Page 39
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
ตวอยางค าสง <html> <body> <? $name=paskorn; $named=; if (($name == "") && ($named == "")){ print "ขอมลไมสมบรณ"; }else{ print "<h1>เงอนไข OR เปนจรงอยางใดอยางหนงหรอทงสองอยาง โปรแกรมกสามารถท างานได</h1>" ; print "Your First name is $name<br>" ; print "and Last name is $named" ; } ?> </body> </html>
9.And
ขอก าหนดเงอนไข เหตการณจะตองเปนจรงทงสองเหตการณ กคอพบขอมลตวแปรทงสอง โปรแกรมจงจะท างาน
ตวอยางค าสง
<html> <body> <? $name=paskorn; $named=roungrong; if (($name == "") || ($named == "")){ print "ขอมลไมสมบรณ"; }else{ print "<h1>เงอนไข AND เปนจรงทงสองอยาง โปรแกรมจะท างาน</h1>" ;
Page 40
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
print "Your First name is $name<br>" ; print "and Last name is $named" ; } ?> </body> </html>
ลปและการท าซ า
For จะท างานจนเงอนไขนนเปนเทจ ถงจะกระโดดออกจากลป
Sample1.php
<? For ($a=1;$a<=5;$a++) { echo"<font size=$a> ขอความใหญขน และจะหยดท างานเมอ a=5 <br> "; } ?>
Out Put
ขอความใหญขน และจะหยดท างานเมอ a=5 ขอความใหญขน และจะหยดท างานเมอ a=5 ขอความใหญขน และจะหยดท างานเมอ a=5 ขอความใหญขน และจะหยดท างานเมอ a=5 ขอความใหญขน และจะหยดท างานเมอ a=5
Sample2.php
<? $a=array("Somchai","Werachai ","Surachai","Adisorn");
Page 41
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
for($i=0;$i<=3;$i++) { echo"name : $a[$i] <br>"; } ?>
Out Put
name : Somchai name : Werachai name : Surachai name : Adisorn
While
จะพจารณาเงอนไขแลวคอยท า ถาเงอนไขเปนจรงจะท า ถาเทจ จะกระโดดออกจากลปทนท
Sample3.php
<? $a=1; while ($a<=5) { echo"<font size=$a> ขอความใหญขน และจะหยดท างานเมอ a=5 <br> "; $a++; } ?>
Out Put
ขอความใหญขน และจะหยดท างานเมอ a=5 ขอความใหญขน และจะหยดท างานเมอ a=5 ขอความใหญขน และจะหยดท างานเมอ a=5 ขอความใหญขน และจะหยดท างานเมอ a=5
Page 42
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
ขอความใหญขน และจะหยดท างานเมอ a=5 Sample4.php
<? $a=array("Somchai","Werachai ","Surachai","Adisorn"); $i=0; while($i<=3) { echo"name : $a[$i] <br>"; $i++; } ?>
Out Put
name : Somchai name : Werachai name : Surachai name : Adisorn
Do..While
ท ากอนแลวคอยพจารณาเงอนไข ถาเงอนไขเปนเทจ จะกระโดดออกจากลปทนท
Sample5.php
<? $a=1; do { echo"<font size=$a> ขอความใหญขน และจะหยดท างานเมอ a=5 <br> "; $a++;
Page 43
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
}while($a<=5) ?>
Out Put
ขอความใหญขน และจะหยดท างานเมอ a=5 ขอความใหญขน และจะหยดท างานเมอ a=5 ขอความใหญขน และจะหยดท างานเมอ a=5 ขอความใหญขน และจะหยดท างานเมอ a=5 ขอความใหญขน และจะหยดท างานเมอ a=5
Sample6.php
<? $a=array("Somchai","Werachai ","Surachai","Adisorn"); $i=0; do { echo"name : $a[$i] <br>"; $i++; }while($i<=3) ?>
Out Put
name : Somchai name : Werachai name : Surachai name : Adisorn
Page 44
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
ตวอยางการใช while-do loop เพอค านวณคา เลขยกก าลงสอง ซงมเลขฐานตงแต 1 ถง 10 <? $x = 1; while ($x <= 10) { echo $x*$x,"\n"; $x++; } ?> เรมตนดวยการก าหนดตวแปร $x ใหมคาเปนหนง ซงในกรณน เราใชเปนเลขฐาน ในการค านวณเลขยกก าลงสอง เมอเขาสการวนลปแบบ while-do จะมการตรวจดเงอนไข ของการวนลปในแตละครงวา เงอนไขเปนจรงอยหรอไม ในกรณน เราก าหนดเงอนไขในการวนลปไววา ถาคาของ $x มคานอยกวาหรอเทากบ 10 กใหท าค าสงทอยภายในลป ซงกคอ echo $x*$x,"\n"; โดยจะพมพคาของผลคณซงหมายถงเลขยกก าลงสองนนเอง หลงจากนน กใหเพมคาของ $x ทละหนงในการวนลปแตละครง คาของ $x จะเพมขนเรอยๆจนมคามากกวา 10 เมอถงเวลานน กจะเปนการจบการวนลป เพราะวา เราจะไดวา เงอนไข ($x <= 10) มคาเปนเทจ
สมมตวา ถาเปลยนจาก $x++ เปน $x-- ปญหากจะเกดตามมาเวลาใชงาน คอ แทนทจะวนลปแคสบครง กกลบกลายเปนวา เปนการวนลปนบครงไมถวน เพราะวา คาของ $x จะลดลงเรอยๆในการวนลปแตละครง คอเปนลบ และคาเปนลบจะนอยกวา 10 เสมอ (ยกเวนแตวา เมอถงจดเวลาหนงคาเปนลบมากๆ จะกระโดดกลบเปนบวก)
ตวอยางการใช do-while loop เพอค านวณคาเลขยกก าลงสอง ซงมเลขฐานตงแต 1 ถง 10 <? $x = 1; do { echo $x*$x,"<BR>\n"; $x++; } while ($x < 10);
?>
โปรดสงเกตความแตกตางระหวางการใช while-do และ do-while โดยเฉพาะตรงเงอนไข ในการจบการวนลป ในกรณของ do-while เราจะกระท าขนตอนในลปกอนหนงครง แลวคอยตรวจดวา เงอนไขในการวนลปเปนจรงหรอไม ความแตกตางน เราสามารถจ าไดงายๆ คอวา ถาใช do-while จะตองมการท าค าสง ภายใน
Page 45
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
ลปหนงครงเสมอ แมวาเงอนไขโดยเรมตนจะเปนเทจกตาม ซงแตกตางจาก while-do ถาเงอนไขเปนเทจตงแตเรม กจะไมมการท าค าสงทอยในลป
อกแบบหนงส าหรบการวนลปคอใช for-loop ท าไดตามตวอยางตอไปน <? for ($x = 1; $x <=10; $x++) { echo $x*$x,"<BR>\n"; }
?>
ในบรรทดทเรมตนดวย for ระหวางวงเลบเปดและปด จะถกแบงเปนสามสวนโดยเครองหมาย semicolon (;) ในสวนแรกเราสามารถใสค าสงทตองการจะกระท ากอนเขาลป สวนแรกนจะมหรอไมมกได ในสวนทสองจะเปนเงอนไขส าหรบการท า loop และในสวนทสามจะค าสงทจะตองท าเปนการจบทายลปในแตละครง หลกการท างานของ for-loop จะคลายกบ while-do-loop
การใชงาน for-loop และวางต าแหนงสวนตางๆ อาจจะไมจ าเปนตองท าเหมอนกนแตใหผลเหมอนกน เชน <? $x=1; for ( ; $x <=10; $x++) { echo $x*$x,"<BR>\n"; }
$x=1; for ( ; $x <=10; ) { echo $x*$x,"<BR>\n"; $x++; }
?>
จากตวอยางขางบนทผานๆมา เปนการวนลปจะใชการนบเลขเพมขนทละหนง เรายงสามารถเขยนใหมโดยเปนการนบเลขลดลง ยกตวอยางเชน เราตองการจะพมพตวเลขเรยงล าดบจาก 10,9,8...,1 กอาจจะเขยนค าสงไดดงน
Page 46
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
<? for ($x=10 ; $x >0; $x--) { echo $x,"<BR>\n"; }
?>
การใชงาน for-loop กจะเหมอนกบเวลาใชในภาษาซ ในหลายๆเรอง เชน เราสามารถใสค าสงได มากกวาหนงโดยใชเครองหมาย (,) เปนตวแยก ตวอยางเชน <? for ($x=1, $y=0 ; $x < 10; $x++, $y--) { echo "$x $y<BR>\n"; }
?>
การสรางและใชงานคลาส (class) และออปเจค (object)
ภาษาแบบ scripting language ในปจจบนหลายๆภาษากสนบสนนการเขยนโปรแกรมเชงวตถดวย ตวอยางเชน Perl และ PHP กรวมอยในนนดวย แมวาจะไมซบซอนเหมอนอยางภาษาซพลสพลสหรอจาวากตาม คลาสคอโครงสรางทประกอบดวยสมาชก (class members) หรอคณสมบต (properties) ตามแตจะเรยก และ ฟงกชนสมาชก (member functions) การนยามคลาสขนมาใชงานจะเรมดวย class { ... } โดยขางในจะมสวนของตวแปรสมาชก และฟงกชนสมาชกตามล าดบ ฟงกชนทมชอเดยวกบคลาสจะเรยกวา class constructor ทกครงทมการสรางออปเจคจากคลาสโดยใชค าสง new ฟงกชนทท าหนาทเปน class constructor กจะถกเรยกมาท างานกอนทกครง ประโยชนของการใชงานกเชน ใชก าหนดคาเรมตน หรอเตรยมพรอมกอนทจะเรมใชออปเจค
ลองดตวอยาง การเขยนคลาสส าหรบแบบขอมลเชงนามธรรม (Abstract Data Type) ทเรยกวา stack การท างานของ stack กเปนดงน ถาเราใสขอมลเขาไป ขอมลเหลานนกจะถกเกบไวเสมอนกบวา วางซอนกนจากขางลางขนขางบน ถาเราจะดงขอมลออกมาใชกจะไดขอมลทอยขางบนสด ซงกคอขอมลทเราใสเขาไปครงลาสดนนเอง หนาทของ stack ทส าคญกมเชน
Page 47
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
push() //ใสขอมลไวใน stack pop() // ดงขอมลออกมา is_empty() // ตรวจดวา stack มขอมลอยอกหรอไม get_size() // หาจ านวนของขอมลทถกเกบไวใน stack ตวอยางการสรางคลาส stack ในภาษา PHP ท าไดดงตวอยางตอไปน <? class stack { var $arrays; var $size;
function stack() { // class constructor $this->size = 0; unset($this->arrays); }
function push($elem) { // put an element on stack $this->arrays[$this->size] = $elem; $this->size++; }
function get_size() { // get number of elements stored return $this->size; }
function is_empty() { // is stack empty ? return ($this->size == 0) ? true : false; }
function pop() { // retrieve an element from the top of stack if ( $this->is_empty() == false ) { $this->size--; return $this->arrays[$this->size]; }
Page 48
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
else return 0; } }
$inst = new stack; // create an object from stack class echo "initial stack size=".($inst->get_size()),"<BR>\n";
for ($i=0; $i < 10; $i++) { $inst->push( ($i*7)%11 ); } echo "current stack size=".($inst->get_size()),"<BR>\n";
while (! $inst->is_empty() ) { echo "pop ".$inst->pop(),"<BR>\n"; }
echo "stack is ".($inst->is_empty() ? "empty." : "not empty.")."<BR>\n";
$inst = 0; // unuse this instance of class stack ?>
โปรดสงเกตวา ตวแปร $this ทปรากฎอยในคลาสจะเหมอน this ทเราใชในภาษาซพลสพลส และการนยามและสรางฟงกชนสมาชกจะท าภายในคลาสทงหมด (เหมอนในภาษาจาวา)
PHP ยงสนบสนนการสบทอดคณสมบตของคลาส (inheritance) ท าใหเราสามารถสรางคลาสขนมาใหม โดยใชคลาสทมอยเดมและเพอสวนขยายเขาไป การสบสอดคณสมบตจากคลาสหนงไปยงอกคลาสหนง จะใชค าสง extends คลายกบของภาษาจาวา ตามตวอยางดงน <? class stack { var $arrays; var $size;
Page 49
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
function stack() { echo "DEBUG> stack constructor<BR>\n"; $this->size = 0; unset($this->arrays); }
function push($elem) { $this->arrays[$this->size] = $elem; $this->size++; }
function get_size() { return $this->size; }
function is_empty() { return ($this->size == 0) ? true : false; }
function pop() { if ( $this->is_empty() == false ) { $this->size--; return $this->arrays[$this->size]; } else return 0; } }
// class LimitedStack is derived from class stack.
class LimitedStack extends stack { var $max_size;
Page 50
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
function LimitedStack ($capacity = 10) { $this->stack(); // call stack's constructor explicitly. echo "DEBUG> LimitedStack constructor<BR>\n"; $this->max_size = $capacity; }
function is_full() { return ($this->max_size <= $this->size) ? true : false; }
function push($elem) { if ($this->is_full() == false) { $this->arrays[$this->size] = $elem; $this->size++; } else { echo "stack is full!\n"; } } }
$inst = new LimitedStack(5); echo "initial stack size=".($inst->get_size()),"<BR>\n"; for ($i=0; $i < 10; $i++) { if (! $inst->is_full() ) { $inst->push( ($i*7)%11 ); } else break; } echo "current stack size=".($inst->get_size()),"<BR>\n"; echo "stack is ".($inst->is_empty() ? "empty." : "not empty.")."<BR>\n"; ?>
Page 51
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
คลาส LimitedStack นมคณสมบตทไดรบมาจากคลาส stack แตแตกตางตรงทวา เราไดก าหนดความจ ของ LimitedStack เอาไว โดยตวแปร $max_size ผใชจะตองก าหนดขนาดความจของออปเจคจากคลาส LimitedStack กอนใช ถาไมก าหนดกจะใชคา 10 เปนคาความจโดยอตโนมตตามตวอยาง (เปน default parameter)
เมอมการก าหนดความจกจะตองมการเขยนฟงกชนสมาชกเพมขนอก ชอ is_full() เพอตรวจสอบดวา จ านวนของขอมลใน stack เทากบความจทก าหนดไวแลวหรอไม
โปรดสงเกตวา PHP สนบสนนการนยามฟงกชนทบฟงกชนเดมของคลาสทไดรบคณสมบตมา และสงทจะลมไมไดคอ constructor จากคลาสลก (child class) จะไมเรยกใช constructor จากคลาสแม (parent class) จะตองมการเรยกใชอยางเจาะจง ในกรณทเราสรางอารเรยส าหรบเกบออปเจค เวลาจะใชออปเจคแตละตว จะตองใชตวแปรชวยตามตวอยางตอไปน <? // array of objects class MyObj { var $id;
function MyObj( $set_id) { // $id = $set_id; <-- this does't work if you forget to use $this $this->id = $set_id; }
function show() { echo "hello world $this->id<BR>\n"; } }
// can create the array of objects $obj_array = array(); $obj_array[] = new MyObj(1);
Page 52
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
$obj_array[] = new MyObj(2); $obj_array[] = new MyObj(3);
// To access each object we must use help variable like follows: for($i=0; $i < count($obj_array); $i++) { $tmp = $obj_array[$i]; $tmp->show(); }
?> จากตวอยางเราใชตวแปร $tmp ในการเขาถงออปเจคแตละตวในถกเกบไวในอารเรย $obj_array เนองจากเราไมสามารถเรยกใชฟงกชนของออปเจคไดโดยตรงถาออปเจคอยในอารเรย เชน $obj_array[0]->show();
การตรวจด webbrowser ของผมาเยอนวาเปนตวไหน
อกตวอยางหนงทแสดงใหเหนการใชตวแปรแบบ global ซงเปนตวแปรทตวแปลชดค าสง PHP ไดสรางขน ทกครงทท างาน หนงในตวแปรนนคอ $HTTP_USER_AGENT <? function getBrowserName() { global $HTTP_USER_AGENT; $browser=strtoupper($HTTP_USER_AGENT); if (strstr($browser,"MSIE")) return "MS Internet Explorer"; else if (strstr($browser,"MOZILLA")) return "Netscape"; else return ""; } $name = getBrowserName(); if ($name != "") { echo "Your browser is ".$name.".<BR>"; }
Page 53
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
?>
จากตวอยาง เราสามารถใชตวแปรดงกลาวในการตรวจดวา ผใชไดใช web browser ตวไหน เชน ระหวาง IE (Microsoft Explorer) หรอ Mozilla (Netscape)
การสงคาและการเกบคา
การอานตวแปรจากภายนอกทไดจากการ Web browser โดยวธ GET หรอ POST
สมมตวา เรามฟอรมส าหรบใหผใชปอนชอ (login) และรหสผาน (password) จากนนกสงมายง Webserver และใชสครปต PHP เปนตวจดการกบขอมลทสงมาโดยวธการแบบ POST ตามตวอยาง Sample1.php - แบบ Post <form action="Sample2.php" method="post"> <table> <tr><td>login:</td> <td><input type="text" name="login"></td> </tr><br> <tr><td>password:</td> <td><input type="text" name="password"></td> </tr><br> </table> <p><input type="submit"> </form> Sample1.php - แบบ Get <form action="Sample2.php" method="get"> <table> <tr><td>login:</td> <td><input type="text" name="login"></td> </tr><br> <tr><td>password:</td> <td><input type="text" name="password"></td>
Page 54
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
</tr><br> </table> <p><input type="submit"> </form>
ภายในสครปต Sample2.php เราสามารถอานขอมลทสงมาได ในกรณน ทเราสนใจคอ คาจาก login และ password ทอยในฟอรม และสามารถจะอานขอมลเหลานนได เพราะ PHP จะเกบขอมลไวในตวแปรชอ $login และ $password ตามล าดบ ตวอยางเชน Sample2.php อาจจะเปนสครปตงายๆดงน
ตวอยางไฟล Sample2.php <HTML> <HEAD><TITLE> Result </TITLE></HEAD> <BODY> <P> Your login = <? echo "$login" ?> <BR> Your password = <? echo "$password"; ?> </BODY> </HTML> เราสามารถอานขอมลทไดจากการสงแบบ GET ไดเชนกน ตวอยางเชน <a href="print.php?ID=103543564&mode=plaintext"> click </a> เมอผใชคลกท link กจะตดตอกบสครปตทชอวา print.php โดยผานขอมลสองตวคอ ID และ mode ภายในสครปต เรากใช $ID และ $mode ส าหรบอานคาของขอมลทสงมา ในตวอยางน $ID จะไดคาเปน "103543564" และ $mode ไดคา "plaintext"
การสงขอมลดวย Html Form
ค าสงทใชอานคาจาก คา ของ Form เราสามารถเรยกใชจากตวแปรทเราตงขนมาไดเลย
รปแบบ
$var-name
Page 55
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
หากตองการพมพขอความออกมา
echo"$var-name";
- HTML Form
เปนการก าหนดกรอบ ทขอมลทจะมการสง รปแบบ <form=" [action=url]" name="ชอฟอรม" method="[post/get]"> code . </form> - Submit
ชวยสงคาจากสวนประกอบตางๆ ใน Form ไปยง Web Server เพอท าการประมวลผล
รปแบบ
<input type="submit" value="[comment]">
- Reset
จะท าหนาท Clear สวนขอมลทไดท าการใสเขาไปใน Textbox โดยจะท าการ Clear ขอความใดๆ ทไดท าการใสเขาไปใน Tab <Form> </form>
รปแบบ
<input type="reset" value="Reset">
หากยงไมเขาใจลองมา ดตวอยางซกตวอยางครบ sample1.php
<html> <head> <form name="form1" method="post" action="sample2.php">
Page 56
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
ชอ <input type="text" name="name"> <br> นามสกล <input type="text" name="surname"> <br> <br> <input type="submit" value="Submit"> <input type="reset"value="Reset"> </form> </body> </html> Out Put
sample2.php
<html> <body> ชอ <? echo"$name" ?> <br> นามสกล <?echo "$surname" ?> </body> </html>
Page 57
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
Out Put
การสงขอมลโดยผาน Querystring
Querystring คออะไร ?
Querystring คอขอมลท Browser สงตอทาย URL ของ Page ทตองการใชไปยง Web Server โดยขอมลจะประกอบไปดวยชอของขอมลและคาของขอมล
รปแบบ http://127.0.0.1/file-name.php?var-name=value
หากตองการสงคามากกวาหนงคา ใหใชเครองหมาย & ขนระหวางตวแปร
รปแบบ http://127.0.0.1/file-name.php?var-name1=value&var-name2=value
การอานขอมลจาก Querystring
สามารถอานไดจากคา var-name ทเราตงขนมาไดเลย
เชน $var-name echo"$var-name";
การสรางขอมลใหอยในรป Querystring สามารถ สรางได 3 รปแบบคอ
1. สรางจาก Tag <a>... </a> ก าหนดในสวนคณสมบตของ HREF ของ TAG <a> </a> ตวอยาง
Page 58
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
sample1.php <html> <body> <a href="sample2.php?name=werachai numkitram&old=21">Test Querystring </a> </body> </html>
Out Put
sample 2.php
<html> <body> ชอ <? echo"$name" ?> <br> อาย<?echo "$old" ?> </body> </html>
Page 59
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
Out Put
2. การสราง Querystring ดวย HTML Form
เหมอนกนการออกแบบ Form ธรรมดาครบ แตแตกตางตรงท method="get" ตวอยาง
sample1.php
<html> <body> <form name="form1" method="get" action="sample2.php"> ชอ <input type="text" name="name"> <br> อาย <input type="text" name="old"> <br> <br> <input type="submit" value="Submit"> <input type="reset" value="Reset"> </form> </body> </html>
Page 60
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
Out Put
sample2.php
<html> <body> ชอ <? echo"$name" ?> <br> อาย<?echo "$old" ?> </body> </html>
Out Putรก าหนดตรงชอง Address Bar
หากตองการ น าคา Querystring จากคาของตวแปรกสามารถท าไดงาย ๆ ครบ sample1.php
<html> <body> <? $name="วระชย นกจรมย";
Page 61
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
$old=21; ?> <a href="sample2.php?name=<?echo"$name"; ?>&old=<? echo"$old"; ?>">Test Querystring </a> </body> </html>
sample2.php
<html> <body> ชอ <? echo"$name" ?> <br> อาย<?echo "$old" ?> </body> </html>
การใช Objects ของ Form เพอสงคาตาง ๆ
1 .Form 2. Button submit 3. Button reset 4. Text Filed 5. Textarea Filed 6. Check Box 7. Radio Button 8. List Menu 9 .Hidden Filed
1.Form ก าหนดกรอบของ Form ทจะมการสงขอมล การแทรก Element ของ Form อน ๆ ทตองการสงขอมลตองก าหนดในชวงกรอบน
Page 62
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
รปแบบ
<form name="[form-name]" method="[post/get]" action="[fike-name]">
Code </form> ตวอยาง <form name="form1" method="post" action="sample.php"> <input type="text" name="name"> <input type="text" name="email"> </form>
2.Button submit Submit ก าหนดสงคาจากสวนประกอบตางๆ ใน Form (Element) ไปยง Web Server เพอท าการประมวลผล เราจะใชงานรวมกบ Form รปแบบ
<input type="submit" value="[comment]">
ตวอยาง
<form name="form1" method="post" action="sample.php"> <input type="text" name="name"> <input type="text" name="email"> <input type="submit" value="submit"> </form>
การสรางปม Submit แบบรปภาพ
<input type="image" name="submit" value="submit" src="image-name">
Page 63
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
3.Button reset Reset
ก าหนด Clear สวนขอมลทไดท าการใสเขาไปใน Textbox โดยจะท าการ Clear ขอความใดๆ
รปแบบ
<input type="reset" value="[comment]">
ตวอยาง <form name="form1" method="post" action="sample.php"> <input type="text" name="name"> <input type="text" name="email"> <br> <input type="submit" value="Submit"> <input type="reset" value="Reset"> </form>
เพมเตมครบการสรางปม Reset แบบรปภาพ
<input type="image" name="reset" value="reset" src="image-name">
4.Text Filed ก าหนดชองรบขอมลจะท างานรวมกบ Form โดยจะตองแทรกใวในกรอบของ Form
การอานคาจาก Element ของ Text Filed <? $var-name echo"$var-name"; ? >
Page 64
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
รปแบบ
<input type="text" name="var-name"> เชน
<form name="form1" method="post" action="sample.php"> <input type="text" name="name"> <input type="text" name="email"> <br> <input type="submit" value="Submit"> <input type="reset" value="Reset"> </form>
ตวอยาง
sample1.php
<html> <head> <form name="form1" method="post" action="sample2.php"> ชอ <input type="text" name="name"> <br> นามสกล <input type="text" name="surname"> <br> <br> <input type="submit" value="Submit"> <input type="reset"value="Reset"> </form>
Page 65
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
</body> </html>
Out Put
sample2.php
<html> <body> ชอ <? echo"$name" ?> <br> นามสกล <? echo "$surname" ?> </body> </html>
Out Put
Page 66
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
5. Textarea Filed เปนเหมอนกบ Text Filed แตจะมชองกรอกขอมลทใหญขน การแทรกจะแทรกใวในกรอบของ Form เหมอนกบ Text Filed การอานคาจาก Element ของ Text Filed <? $var-name echo"$var-name"; ? >
รปแบบ
<textarea name="var-name" cols="50" rows="3"></textarea>
เมอ Cols=จ านวน ความกวางของชองกรอกขอมล Roes = จ านวนความสงของชองกรอกขอมล
ตวอยาง
sample1.php
<html> <body> <form name="form1" method="post" action="sample2.php"> กรอกขอมล<br> <textarea name="comment" cols="50" rows="3"></textarea> <br> <input type="submit" value="Submit"> <input type="reset" value="Reset"> </form> </body> </html>
Page 67
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
Out Put
sample2.php
<html> <body> ขอความคอ : <? echo"$comment"; ?> </body> </html>
Out Put
6. Check Box ใชก าหนดวามการเลอกหรอไม
รปแบบ ก าหนดได 2 วธคอ
1.ใหคาวางเปลาโดยยงไมมการเลอก
Page 68
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
<input type="checkbox" name="var-name" value="[value]">
2.ใหคามการเลอกใวแลว
<input type="checkbox" name="var-name" value="[value]" checked>
ท าความเขาใจกอนครบ การตรวจสอบวามการเลอกหรอไม สามารถท าไดงาย ๆ ครบ คอ ก าหนดคา on ใหกบ checkbox
การอานคาจาก Check Box $var-name
หากมการคลกเลอก จะมคาเปน on และแสดงคา value ออกมา หากไมมการคลอกเลอก จะมคาเปน off และไมแสดงคา value
หากไมเขาใจลองมาดซกตวอยางหนงครบ
sample1.php
<html> <body> <form name="form1" method="post" action="sample2.php"> <input type="checkbox" name="check" value="on"> <br> <input type="submit" name="Submit" value="Submit"> </form> </body> </html>
Page 69
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
Out Put
sample2.php
<html> <body> <? if ($check=="no") { echo "คณไดท าการเลอก"; } ?> </body> </html>
Out Put
หากคณไมไดท าการคลกเลอก
Page 70
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
Out Put จะไดเปนคาวางเปลา
7. Radio Button ใชก าหนด ใหมการเลอกอยางใดอยางหนง การอานคาจาก Element ของ Radio button <% $var-name echo"$var-name"; %>
รปแบบ ก าหนดได 2 แบบ
1.ใหคาวางเปลายงไมมการเลอก
<input type="radio" name="var-name" value="[value]">
2.ใหเลอกใวแลว
<input type="radio" name="var-name" value="[value]" checked>
ตวอยาง
sample1.php
Page 71
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
<html> <body> <form name="form1" method="post" action="sample2.php"> <p>เลอกอาย</p> <p> <input type="radio" name="old" value="1-5"> 1-5<br> <input type="radio" name="old" value="6-20"> 6-10<br> <input type="radio" name="old" value="11-15"> 11-15 <br> <input type="radio" name="old" value="16-20"> 16-20 <br> <input type="radio" name="old" value="21 ขนไป"> 21 ขนไป<br> <br> <input type="submit" name="Submit" value="Submit"> </p> </form> </body> </html>
Out Put
Page 72
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
sample2.php
<html> <body> <? echo "$old"; ?> </body> </html>
Out Put
ตวอยางการใช Radio button ดวย Swich Case
sample1.php
Page 73
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
<html> <body> <form name="form1" method="post" action="sample2.php"> <p>เลอกอาย</p> <p> <input type="radio" name="old" value="1"> 1-5<br> <input type="radio" name="old" value="2"> 6-10<br> <input type="radio" name="old" value="3"> 11-15 <br> <input type="radio" name="old" value="4"> 16-20 <br> <input type="radio" name="old" value="5"> 21 ขนไป<br> <br> <input type="submit" name="Submit" value="Submit"> </p> </form> </body> </html>
Out Put
Page 74
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
sample2.php
<html> <body> <? Switch ($old) { case 1 : echo "1-5"; break; case 2 : echo "6-10"; break; case 3 : echo "11-15"; break; case 4 : echo "16-20"; break; case 5 : echo "21 ขนไป"; break; } ?> </body> </html>
Page 75
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
Out Put
8.List Menu List Menu ใชก าหนดใหมการเลอกอยางใดอยางหนง เหมอนกบ Radio Button ทจะดเรยบงาย และประหยดเนอทมากกวา Radio Button
การอานคาจาก Element ของ List Menu <? $var-name echo "$var-name"; ? >
รปแบบ
<select name="var-name"> <option value="value1">ขอความ1</option> <option value="value2">ขอความ2</option> <option value="value3">ขอความ3</option> . . <option value="valueสดทาย">ขอความสดทาย</option> </select>
ตวอยาง
sample1.php
Page 76
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
<html> <body> <form name="form1" method="post" action="sample2.php"> <select name="old"> <option value="1-5">1-5</option> <option value="6-10">6-10</option> <option value="11-15">11-15</option> <option value="16-20">16-20</option> <option value="21 ขนไป">21 ขนไป</option> </select> <br> <br> <input type="submit" name="Submit" value="Submit"> </form> </body> </html>
Out Put
sample2.php
Page 77
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
<html> <body> <? echo"$old"; ? > </body> </html>
Out Put
ตวอยางการใช List Menu ดวย Swich Case
sample1.php
<html> <body> <form name="form1" method="post" action="sample2.php"> <select name="old"> <option value="1">1-5</option> <option value="2">6-10</option> <option value="3">11-15</option> <option value="4">16-20</option> <option value="5">21 ขนไป</option> </select> <br> <br> <input type="submit" name="Submit" value="Submit"> </form>
Page 78
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
</body> </html>
Out Put
sample2.php
<html> <body> <? Switch ($old) { case 1 : echo "1-5"; break; case 2 : echo "6-10"; break; case 3 : echo "11-15"; break; case 4 : echo "16-20"; break; case 5 : echo "21 ขนไป"; break; } ?> </body> </html>
Page 79
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
Out Put
9.Hidden Filed เปนการน าคาก าหนดโดยการซอนคาและตวแปร
การอานคาจาก Element ของ Hidden Filed <? $var-name echo "$var-name"; ? >
รปแบบ
<input type="hidden" name="var-name" value="[value]">
ตวอยาง
sample1.php
<html> <body> <form name="form1" method="post" action="sample2.php"> <input type="hidden" name="name" value="นายวระชย นกจรมย"> <br> <br> <input type="submit" name="Submit" value="Submit">
Page 80
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
</form> </body> </html>
Out Put
sample2.php
<html> <body> <? echo"$name"; ? > </body> </html>
Out Put
เพมเตมครบ
การน าคา Hidden Filed จากคาตวแปร กสามารถท าไดแบบงาย ๆ ครบ
Page 81
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
<? $name="นายวระชย นกจรมย" ? > <input type="hidden" name="name" value="<?echo"$name";?>">
สวน Object อน ๆ กเหมอนกนครบ สามารถก าหนดคาไดท value ครบ
การเกบคาและสงคาโดยใช Session Object
session ? คออะไร จะตอบแบบงายๆ กคอ การเกบคา จาก Web Server ลงในหนวยความจ าของเครอง Client แตละราย server จะก าหนดเวลาและตดตามการใชงานของเครอง Client
Session ID คออะไร Session ID คอ หมายเลขประจ าตว ท Web Server สงมายง Client คา Session จะไมมทางซ ากน Session ID มประโยชนใรการอางองเกยวกบการใชงานของ Client
รปแบบการอานคา Session ID Session_ID();
รปแบบการใชงาน Session อน ๆ
Session_Type("Session-name")
เมอ Type คอ ชนดของ Session เชน name,register,unset,unregister สามารถศกษาเพมตมไดจาก PHP manual ( Download ไดท http://www.php.net )
การสราง session Session_Start() $session-name=value; Session_register("session-name");
Page 82
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
การอานคาจาก Session Session_Start(); $session-name; echo"$session-name"; การตรวจสอบตวแปร Session Session_Start(); $session-name; if(Session_is_registered("$session-name")) { echo"ตวแปรนมคาอย"; } else { echo"ตวแปรนไมมคาอย"; } การลบคาใน Session
- การลบ Session เฉพาะตวแปร Session_unregister("session-name ");
- การลบ Session ทงหมด Session_destroy();
หากยงไมเขาใจลองมาดตวอยางกนหนอยครบ
sample1.php เปนการก าหนดคาใหกบ Session
<? Session_Start(); $name="นายวระชย นกจรมย"; $old=21; Session_register("name"); Session_register("old")
Page 83
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
?> ไดก าหนดคาให Session แลว<br> ตรวจสอบคา Session <a href="Sample2.php">Sample2.php</a>
Out Put
sample2.php เปนการแสดงคาใน Session
<? session_start(); echo "คาใน Session Name คอ $name <br>"; echo "คาใน Session Old คอ $old <br>"; ?> <br> <br> ตรวจสอบคา Session <a href="Sample3.php">Sample3.php</a>
Out Put
Page 84
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
sample3.php เปนการแสดงคาใน Session อกครง
<? session_start(); echo "คาใน Session Name จะยงเปน $name <br>"; echo "คาใน Session Old จะยงเปน $old <br>"; ?> <br> ตงคา Session <a href="Sample1.php">Sample1.php</a>
Out Put
** หากตองการลบ Session ท าไดโดย Session_unregister("name"); และ Session_unregister("old"); หรอจะใช Session_destroy(); เพอลบคา Session ทงหมด
คงจะเขาใจกนแลวใชไหมครบ หวขอนจะเปนเพยงแคการก าหนดคาใหกบ Session เทานน ในตอนตอไปเราจะมาประยกตใชงานครบ
การเกบคาและสงคาโดยใช Cookie Object
Cookie คออะไร ? เปนการเกบคาจาก Server มาเกบใวทเครอง Client โดยเกบใวในรปไฟล พดงาย ๆ กคอ การเขยนลงไฟลนนเอง ซงจะถกเกบใวท Windows\Cookies
Page 85
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
ท าความเขาใจกอนครบ
การ Set Cookie จะตอง Set ใวในสวนบนสดครบ ( header )
การสราง Cookie รปแบบ
setcookie(cookie-name,value,[Time]);
หรอจะก าหนดจากตวคาตวแปร $va-name-value = value"; setcookie(var-name, $var-name-value,[Time] ); เมอ Cookie-name ชอ ของ Cookie value,$var-name-value คอ คาของ Cookie Time ก าหนดเวลาหมดอายของ Cookie
ตวอยาง 1
Setcookie("name","วระชย นกจรมย",time()+3600); // ก าหนดเวลา 1 ชวโมง
ตวอยาง 2
$name="นายวระชย นกจรมย"; Setcookie("name",$name,time()+60); // ก าหนดเวลา 1 นาท
การอานคาจาก Cookie
$cookie-name echo"$cookie-name"; การก าหนดวนหมดอายของ Cookie
รปแบบ Time() , Date()
Page 86
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
ตวอยาง
Setcookie("name",$name,time()+60); // ก าหนดเวลา 1 นาท
การลบ Cookie
รปแบบ
SetCookie("Cookie-name") เชน SetCookie("name") // เปนการลบ Cookie name ออก หากยงไมเขาใจลองมาดตวอยางกนหนอยครบ
sample1.php เปนการก าหนดและตงคา Cookie
<? $name="วระชย นกจรมย"; $old=21; Setcookie("name",$name,time()+60); Setcookie("old",$old,time()+60); ?> ไดก าหนดคาให Cookie แลว<br> ตรวจสอบคา Cookie <a href="Sample2.php">Sample2.php</a>
Out put
sample2.php เปนการแสดงคาใน Cookie
Page 87
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
<? echo "คาใน Cookie name คอ $name <br>"; echo "คาใน Cookie old คอ $old <br>"; ?> <br> <br> ตรวจสอบคา Cookie อกครง <a href="Sample3.php">Sample3.php</a>
Out put
sample3.php เปนการแสดงคาใน Cookie อกครง
<? echo "คาใน Cookie Name จะยงเปน $name <br>"; echo "คาใน Cookie Old จะยงเปน $old <br>"; ?> <br> ตงคา Cookie <a href="Sample1.php">Sample1.php</a>
Out put
Page 88
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
เพมเตมครบ การใช ob_start(); เพอใหสามารถก าหนด Setcookie ใวสวนใดกได
ปกตการ SetCookie เราตองก าหนดใวสวนบนสด หรอ headder แตถาเราใส ob_start(); จะสามารถก าหนดใวสวนอน ๆ ได เชน การใชค าสง echo ใวกอน SetCookie ซงถาไมใส ob_start(); จะไมสามารถใชค าสง echo ได ดงตวอยางตอไปนครบ
Sample1.php
<? ob_start(); echo "ปกตจะไมสามารถ แทรกสวนตรงนได <br>"; setcookie("name", "นายวระชย นกจรมย", time() + 60); echo "แตตอนนไดก าหนดคาให Cookie name แลว "; ob_end_flush(); ?>
Out Put
ตวแปร Global function
Page 89
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
การใชตวแปรแบบ global ภายในฟงกชน
บางครงเราไมตองการทจะผานตวแปรเปนอารกวเมนตของฟงกชน เพอน าไปใชภายในฟงกชนเหลานน กจะท าไดโดยการแจงใชตวแปรทมชอเหมอนตวแปรภายนอกทเราตองการใช ใหเปน global หรอใชผานตวแปรทเปนอารเรยของ PHP ทมชอวา $GLOBALS ดงตวอยางตอไปน <? $a = 10; $b = 20; function getMin ( ) { global $a, $b;
if ($a < $b) return $a; else return $b; }
function getMin2 () { if ($GLOBALS["a"] < $GLOBAL["b"]) return $GLOBALS["a"]; else return $GLOBALS["b"]; }
echo getMin()."<BR>\n"; echo getMin2()."<BR>\n"; ?>
ในกรณนเราตองการจะใชตวแปร $a และ $b ซงอยนอกฟงกชน getMin() เพอเชคดวา คาของตวแปรใดมคานอยกวากน ถาเราไมแจงใช global $a, $b; ตามตวอยางแลว $a และ $b จะกลายเปนตวแปรภายในแมวาจะชอเหมอนกนตวแปรภายนอกทมอยแลวกตาม ท าใหไดผลการท างานไมถกตองตามทตองการ
Page 90
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
ฟงกชน getMin() อกรปแบบหนง โดยไมใชตวแปรแบบ global ภายในฟงกชน และใชวธผานคาแทน <? $a = 10; $b = 20; function getMin ($a, $b) { if ($a < $b) return $a; else return $b; }
echo getMin($a, $b)."<BR>\n"; ?>
การตวแปรแบบ static ภายในฟงกชน สมมตวา เราตองการจะใชตวแปรภายในฟงกชน และสามารถเกบคาไวไดตลอดเวลา โดยไมสญหายไปทกครงทมการเรยกใชฟงกชน ในกรณนเราจะแจงใชตวแปรใหเปนแบบ static ตามตวอยางตอไปน function MyFunc() { static $num_func_calls = 0; echo "my function\n"; return ++$num_func_calls; }
ทกครงทมการเรยกใชฟงกชนดงกลาว ตวแปรชอ $num_func_calls ซงมคาเรมตนเปนศนยในตอนแรก จะเพมคาทเกบขนทละหนง
การผานคากลบคนมากกวาหนงจากฟงกชน โดยปรกตแลวเราไมสามารถผานคากลบคนจากฟงกชนไดมากกวาหนง แตอยางไรกตาม ยงมวธการหนงทชวยแกปญหาดงกลาวได วธนคอ เกบคาตางๆทตองการจะใชเปนคากลบคนไวใน array แลวใช array นนเปนคากลบคน และผเรยกใชฟงกชนสามารถใชฟงกชน list() อานคาเหลานนได ตวอยางเชน <? function foobar() { return array ("foo", "bar", 0xff);
Page 91
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
} list ($foo, $bar, $num) = foobar(); echo "$foo $bar $num <BR>\n"; ?> จากตวอยาง ฟงกชน foobar() จะใหคากลบคนเปน array ประกอบดวยสามสมาชก คาทไดจากฟงกชนนกจะสงไปยงฟงกชน list() เพอใหเกบแยกลงในตวแปรตามชอทก าหนดคอ $foo, $bar และ $num ตามล าดบ
ฟงกชนและการใชงาน
การสรางและใชงานฟงกชน
ในหวนเราจะไดเรยนรการใชงานฟงกชน ฟงกชนประกอบดวย 2 ประเภทคอ
1.ฟงกชนท php ใหมา สามารถเรยกใชงานไดทนท ซงเราจะเรยนรในหวขอตอไป 2.ฟงกชนทเราสรางขนมาเอง การใชงานฟงกชน - ฟงกชนทไมมการสงคา function_name()
- ฟงกชนทมการสงคา function_name(argument....) การสรางฟงกชนขนมาเอง
- ฟงกชนทไมมการสงคา
Sample1.php
<html> <body> <? echo"จะแทรกใวสวนบนของ Function กได"; Test_function();
Page 92
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
function Test_function() { echo"Hello Word <br>"; echo"Hello Werachai nukitram <br>"; echo"Hello PHP Programming<br>"; echo"Hello The Member Theasp <br>"; }
echo"<br><br>หรอจะแทรกใวสวนลางของ Function กได"; Test_function(); ?> </body> </html>
Out Put
จะแทรกใวสวนบนของ Function กไดHello Word Hello Werachai nukitram Hello PHP Programming Hello The Member Theasp หรอจะแทรกใวสวนลางของ Function กไดHello Word Hello Werachai nukitram Hello PHP Programming Hello The Member Theasp
- ฟงกชนทมการสงคา
Sample2.php
<html> <body> <? function Test_function($a)
Page 93
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
{ return($a * 20 ); } $b=20; echo Test_function($b); ?> </body> </html>
Out Put
400
ฟงกชน Include,Require,Redirect
การใชงาน Function Include , Redirect และ require
- Include เปนการเรยกใชงานไฟลอน เพอท างานรวมกบ ไฟลทก าลงท างานอย รปแบบ
Include("files-name")
Smaple1.php
<? ob_start(); ?> <html> <body> <? Include("sample2.php"); // เปนการเรยกใชงาน sample2.php ?> </body> </html>
Page 94
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
- Redirect เปนการยายการท างานจาก ไฟลหนง ไปยงอกไฟลหนง นยมน ามาใชในระะรกษาความปลอดภย และ การกระโดดไปยงไฟลตาง ๆ โดยเรยกใชฟงกชน headder
รปแบบ header("location : [files-name/URL]");
Sample2.php <? ob_start(); ?> <html> <body> <? header("location : Sample3.php"); // กระโดดไปยง Sample3.php หรอจะใช URL header("Location : http://www.xxx.xx"); ?> </body> </html>
- Require เปนการเรยกใชงานไฟลอน เหมอนกบ Include แตไมสามารถเรยกใชงานไฟลทท างานเปนแบบ Loop ไดเหมอน Include นยมน ามาใชเกยวกบ การประกาศท ทสามารถเรยกใชงานไดทก ๆ ไฟล เชน การตดตอฐานขอมล ซงเราจะไดเรยนรในหวขอตอไปครบ
รปแบบ
require("files-name");
Sample3.php
<? ob_start(); ?>
Page 95
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
<html> <body> <? require("Sample4.php"); ?> </body> </html>
ฟงกชน ทางคณตศาสตร
ฟงกชนเหลานจะมประโยชนในทางคณตศาสตร ซงบางครงกจ าเปนตองใชครบ รใวกวาใสบาแบกหามครบ
ฟงกชน จดมงหมาย ความหมาย
max() ตองการหาคาสงสด min() ตองการหาคาต าสด
number_format() ก าหนดรปแบบการแสดงผลตวเลขหลกพนโดยมเครองหมาย (,) ขน
OctDec() แปลงเลขฐานแปดเปนฐานสบ pi() หาคาคงทของ pi pow() หาคาของเลขยกก าลง rad2deg() แปลงคาเรเดยนเปนองศา rand() สรางตวเลขแบบสม Decbin() แปลงเลขฐานสบเปนฐานสอง DecHex() แปลงเลขฐานสบเปนฐานสบหก DecOct() แปลงเลขฐานสบเปนฐานแปด deg2rad() มมองศาเปนเรเดยน Exp() หาคายกก าลงของ e getrandmax() คาสงสดทไดจากการสมตวเลข HexDec() แปลงเลขฐานสบหกเปนฐานสบ Log() หาคา log ฐานธรรมชาต Log10() หาคา log ฐาน 10
Page 96
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
Cos() หาคาของ Cosine BinDec() แปลงเลขฐานสองเปนฐานสบ Atan() หาคา tan Asin() หาคา sine Acos() หาคา arc cosine Abs() เมองตองการหาคาสมบรณของจ านวนจรง
รปแบบการใชงาน
Function(คาทตองการหา)
เชน max(2,5,9,1,5,3,4) Log(5) Asin(0.5) deg2rad(60) DecBin(256) Sample1.php
<? echo "<br>ทดสอบหาคา max(2,5,9,1,5,3,4) = ".max(2,5,9,1,5,3,4); echo "<br>ทดสอบหาคา log(5) = ".log(5); echo "<br>ทดสอบหาคา Asin(0.5) =".Asin(0.5); echo "<br>ทดสอบหาคา deg2rad(60) = ".deg2rad(60); echo "<br>ทดสอบหาคา DecBin(256) = ".DecBin(256); ?>
Out Put
Page 97
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
Sample2.php แปลงคาตวเลขใหเปนจ านวนเตม
<? $num = 32550.256; settype($num,"integer"); echo "แปลงคาจ านวนเเตมจาก 32550.256 = $num<br>\n"; ?>
Out Put
Sample3.php การแสดงตวอกษรทละตวอกษร
<? $text = "Werachai Nukitram"; echo $text{0}, "<br>"; echo $text{1}, "<br>"; echo $text{2}, "<br>"; echo $text{3}, "<br>";
Page 98
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
echo $text{4}, "<br>"; echo $text{5}, "<br>"; echo $text{6}, "<br>"; echo $text{7}, "<br>"; echo $text{8}, "<br>"; echo $text{9}, "<br>"; echo $text{10}, "<br>"; echo $text{11}, "<br>"; ?>
Out Put
Sample4.php ตรวจสอบคาในตวแปร วาเปน Integer String double
<? $var1 = 125.22; echo gettype($var1) . "<br>"; $var2 = 500; echo gettype($var2) . "<br>"; $var3 = "ทดสอบ";
Page 99
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
echo gettype($var3) . "<br>"; ?>
Out Put
Sample5.php ตวอยางเชน การหาคาสมบรณของตวเลข <? function myabs ($x) { if ($x < 0) return -$x; } echo myabs(-6),"<BR>\n"; echo myabs(-4+2.034),"<BR>\n"; ?>
Out Put
6 1.966 ตวอยาง การหาคามากกวาและนอยกวาจากตวเลขสองตวและสลบทกน สมมตวาเรามตวแปรอยสองตว และเราตองการจะตรวจดวา ตวแปรตวแรกมคานอยกวาตวแปรอกตวหรอไม ถาไม กใหสลบทกน ปญหานเราสามารถแกไขไดโดยเขยนฟงกชนดงน
Page 100
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
Sample6.php <? function minmax (&$a,&$b) { if ($a > $b) { $t=$a; $a=$b; $b=$t; } }
$x=10; $y=3; echo "x=",$x,",y=",$y,"<BR>\n"; minmax($x,$y); echo "x=",$x,",y=",$y,"<BR>\n";
?>
Out Put
x=10,y=3 x=3,y=10 ฟงกชน minmax() เปนตวอยางของฟงกชนทใชหลกการของ call-by-reference โปรดสงเกตทเครองหมาย & ทวางอยหนาตวแปรทเปนอารกวเมนตของฟงกชน การเรยกใชฟงกชนแบบ call-by-reference ชวยใหเราสามารถผานตวแปรไปยงฟงกชน และใหฟงกชนสามารถเปลยนแปลงแกไขคาของตวแปรนนได
ฟงกชน ทางดาน Directory
ฟงกชนเหลานจะมประโยชนในทางจดการทางดาน directory เมอตองการจดการ ก าหนดรปแบบผาน Web Brownser
ฟงกชน จดมงหมาย ความหมาย
Page 101
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
Mkdir() สราง Directory Rmdir() ลบ Directory chdir เมอตองการเปลยน directory Dir() ใชสราง object เกยวกน directory Closedir() ปด directory opendir() เปด directory Readdir() อานขอมลทอยใน Directory
Rewinddir() เลอนตวชเพอท าการเลอก ไฟลหรอขอมลแรกของ Directory
Sample1.php เปนการสราง Folder
<? $path="C:\Appserv\www\"; $folder="Test"; $dir=$path.$folder; $mode="w"; $create_folder=Mkdir($dir,$mode) or die ("ไมสามารถสราง Folder $folder ได"); ?>
// เพมเตม เราสามารถก าหนด $mode ของไฟลตาง ๆ ได โดย r เปดดอานอยางเดยว r+ เปดเพออานและเขยน w , w+ เปดเพอเขยน ถาไมมไฟลจะสรางขนไหม ถามอยแลว จะปรบไฟลนนใหเปน 0 Byte a เปดเพอเขยนอยางเดยว
ส าหรบการลบ Folder กเหมอนกนครบ แคเปลยนตรง Mkdir เปน Rmdir
Sample2.php เปนการแสดงชอไฟล และ Folder
<? $direc = dir("C:\Appserv\www\");
Page 102
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
echo "แสดง Path : ".$direc ->path."<br>"; echo "รายการตางใน Path ".$direc->path." มดงน <Br>"; while($show_dir=$direc -> read()) { echo $show_dir."<br>"; } $direc -> Close(); ?>
// เพมเตมครบ property และ method ของ dir() Handle เกบคาของ Directory Path เกบรายชอของไฟลและ Directory Read อานชอไฟล และ Directory Rewind เปลยนจดชไปยง ไฟลหรอ Folder แรก Close ปดการตดตอกบ Directory
ฟงกชน ทางดานไฟล
ฟงกชน จดมงหมาย ความหมาย รปแบบ
is_dir() ตรวจสอบชอไฟลนนเปน ไดเรกรอรหรอไม is_dir(files-name) is_executable() ตรวจสอบวาไฟลนน เอกซควสไดหรอไม is_executable(files_name) is_file() ตรวจสอบวาไฟลนนเปนไฟลธรรมดาหรอไม is_file(files-name) is_readable() ตรวจสอบวาไฟลนนอานไดหรอไม is_readable(files-name) is_writeable() ตรวจสอบวาไฟลนนเขยนไดหรอไม is_writeable(files-name) Readfile() อานขอมลจากไฟลโดยไมตองเปดไฟล Readfile(files-name) Rename() เปลยนชอไฟล Rename(oldname,newname) Rewind() เลอนตวชไปยงตวแรกหรอตนของ ไดเรคทอร Rewind(file-handdle) Stat() แสดงรายละเอยดของไฟล Stat(filename) Touch() ก าหนดเวลาในการปรบแตงไหล Touch(files-name,[time]) Unlink() ลบไฟลทตองการ Unlink(files-name) Basename() แสดงชอไฟลไมรวม path Basename(path)
Page 103
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
chgrp() เปลยนกลมของไฟล Chgrp(files-name-group) Chmod() เปลยนโหมดของไฟล Chmod(files-name,mode) Clearstatcache() Clear รายละเอยดตางภายใน แคช Clearstatcache() Copy() copy ไฟล Copy(ตนทาง,ปลายทาง) Dirname() แสดงชอ Directory ไมรวม path Dirname(path) Diskfreespace() หาเนอทวางใน Directory Diskfreespace(directory) Fclose() ปดไฟลทเปดอย Fclose(file_handle) Fwrite() เขยนขอความลงไฟล Fwrite(file_hand,text) Ftell() บอกต าแหนงพอยเตอรทอยในไฟล Ftell(file-handle) Fseek() เลอกพอยเตอรไปขางหนา Fseek(file_handle,offset)
Fread() อานขอมลจากไฟล สามารถระบจ านวนความยาวทจะอานได
Fread(file_handle,lenth)
Fputs() เขยนขอความลงไฟล ถาไฟลมอยแลว จะลบไฟลเกาและเขยนทบ
Fputs(files-name,text)
Fopen() เปดไฟล Fopen(files-name,mode) Filetype() ตรวจสอบประเภทไฟล Filetype(files-name) Filesize() ตรวจสอบขนาดไฟล Filesize(files-name) Fileperms() ตรวจสอบการก าหนดสทธของไฟล Fileperms(files-name) Fileowner() ตรวจสอบชอผสรางไฟล Fileowner(files-name) Filemtime() ตรวจสอบวา update ครงลาสดเมอใด Filemtime(files-name) Filegroup() ตรวจสอบกลมของไฟล Filegroup(files-name) Filectime() ตรวจสอบไฟลถกสรางเมอไหร Filectime(files-name) Fileatime() ตรวจสอบไฟลถหใชงานครงสดทายเมอไหร Fileatime(files-name) File_exists() ตรวจสอบไฟลนนมอยจรงหรอไม File_exists(files-name) File() อานไฟลแตละบรรทดลงใน Array File(files-name)
Fgetss() อานขอมลแตละบรรทดหรอแตละอกษร โดยตด แทก Html ออก
Fgetss(file_handle,length)
Fgets() อานขอมลแตละบรรทดหรอแตละอกษร Fgets(file_handle,length) Fgetc() อานขอมลทละอกษร Fgetc(file_handle)
Page 104
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
Feof() ตรวจสอบวา พอยเตอรเลอนไปอยทายไฟลหรอไม
Feof(file_handle)
Sample1.php เปนการแสดงรายละเอยดตาง ๆ ของไฟล index.html อยใน Directory C:\Appserv\www\index.html
<? $files="C:\Appserv\www\index.html"; echo"<br>Dirname คอ ".Dirname($files); echo"<br>Basename คอ ".Basename($files); echo"<br>Filetype คอ ".Filetype($files); echo"<br>Filesize คอ ".Filesize($files); echo"<br>Fileperms คอ ".Fileperms($files); echo"<br>Fileowner คอ ".Fileowner($files); echo"<br>Filemtime คอ ".Filemtime($files); echo"<br>Filegroup คอ ".Filegroup($files); echo"<br>Filectime คอ ".Filectime($files); echo"<br>Fileatime คอ ".Fileatime($files); echo"<br>is_dir คอ ".is_dir($files); echo"<br>is_file คอ ".is_file($files); echo"<br>is_readable คอ ".is_readable($files); echo"<br>is_writeableคอ ".is_writeable($files); ?>
Out Put
Page 105
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
File ตวอยางการสรางไฟล <? $FILE =fopen("thaicreate.txt","w"); fputs( $FILE, "Test Create File\n"); fclose($FILE); echo " สรางไฟลส าเรจ"; ?> ตวอยางตอไปนเปนการเปดไฟลขนมาจากนนใหเขยนตอขอมลทมอยแลว
<? $FILE =fopen("thaicreate.txt","a"); fputs( $FILE, "ในสวนนเปนการเขยนตอจากขอมลเดม\n"); fclose($FILE); ?> <?
Page 106
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
//-----ThaiCreate.Com By @W_IN----// $nome = "นายวระชย นกจรมย"; $address = "กรงเทพมหานคร"; $email = "[email protected] ";
$desc.= " ชอ : $nome "; $desc.= " ทอย : $address"; $desc.= " อเมล : $email "; $filename = "C:\ThaiCreate.txt"; if (!$filename = fopen($filename, "w")) { echo "ไมสามารถเขยนสรางไฟล ($filename)"; exit; } if (!fwrite($filename, $desc)) { print "ไมสามารถเขยนขอมลลงไฟล ($filename)"; exit; } echo "เขยนขอมลลงไฟลส าเรจ"; fclose($filename); ?> ตวอยางนเปนการอานขอมลทมอยใน text มาแสดง
<? $FILE =fopen("thaicreate.txt","r"); while (!feof($FILE)) { $text = fgets($FILE, 4096); echo $text; } fclose($FILE); ?>
ฟงกชน ทางเมล
Page 107
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
สงท php ไดเปรยบกวา asp อกมมหนงกคอ การสงเมลล ซง php ไดเตยมฟงกชนส าหรบการสงเมลลใวใหเรยบรอยแลวครบ สามารถน าไปใชและสงไดแบบงาย ๆ
รปแบบ
mail(To,Subject,Massage,From);
การสงเมลลแบบม header
mail($email,$subject,$messages,$header);
ตวอยาง
$emailto='[email protected] '; $email_from='[email protected] '; $subject='ทดสอบการสงเมลล'; $header="from: $email_from"; $messages.= "สวสดครบ \n"; $messages.= "สบายดหรอเปลา \n"; $messages.= "ขอความอน ๆ "; mail($emailto,$subject,$messages,$header);
เมอ To คอ email ของผรบ Subject คอ หวขอชอเรง Massage คอ ขอความรายละเอยด From คอ header ทจะใชแทน sendmail_from เชน อเมลลผสง ส าเนา จะไมมกได Sample1.php
<? $To="[email protected] "; $Subject="ทดสอบการสงเมลล"; $Massage="ทดสอบการสงเมลลครบ ไดรบแลวตอบดวย"; $From="[email protected] ";
Page 108
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
mail($To,$Subject,$Massage,$From); ?>
** การสงเมลโดยใหสามารถแทรก html ได
$emailto='[email protected] '; $email_from='[email protected] '; $subject='ทดสอบการสงเมลล'; $header.= "Content-type: text/html; charset=windows-874\n"; $header.="from: $email_from"; $messages.= "<b>สวสดครบ</br>"; $messages.= "สบายดหรอเปลา<br>"; $messages.= "ขอความอน ๆ<br> "; mail($emailto,$subject,$messages,$header);
หรอจะประยกตใชกบ Form กไดครบ
Sample2.php
<html> <body bgcolor="#FFFFFF"> <p>ทดสอบการสงเมลลครบ</p> <form name="form1" method="post" action="Sample3.php"> อเมลลผรบ <input type="text" name="To"> <br> ชอเรอง หวขอ <input type="text" name="Subject"> <br> ขอความ <textarea name="Massage" rows="5" cols="50"></textarea> <br> ผสง
Page 109
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
<input type="text" name="From"> <br> <input type="submit" name="Submit" value="สงเมลล"> </form> </body> </html>
Out Put
Sample3.php
<? $send_mail=mail($To,$Subject,$Massage,$From); if(!$send_mail) { echo"ยงไมสามารถสงเมลลไดในขณะน"; } else { echo "สงเมลลส าเรจ";
Page 110
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
} ?>
Out Put
ฟงกชน ทางดานขอความ
ส าหรบฟงกชนเกยวกบขอความ PHP ไดเตรยมใวเหมอนกนครบ ส าหรบหากใครเคยเรยนภาษา C มากอนคงจะคน ๆ ใชไหมครบ รปแบบการใชงานกคลายๆ กบภาษา C ครบ เรามารจกฟงกชนทจะสามารถน าไปใชงานกนดกวาครบ
ฟงกชน จดมงหมาย ความหมาย
strlen() หาความยาวของขอความ
strpos() หาต าแหนงขอความทคนพบอยในขณะนน
strrchr() ตดขอความจากตวสดทายทพบจนถงตวทายสด
str_repeat() แสดงขอความซ า ๆ ตามความตองการ
strrev() เรยงสลบขอความจากหลงไปหนา
strrpos() หาต าแหนงสดทายทคนพบ
strstr() ตดขอความบางสวนตงแตตวแรกทคนพบจนถงตวสดทาย
strtolower() แปลงขอความใหเปนตวพมพเลก
Page 111
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
strtoupder() แปลงขอความใหเปนตวพมพใหญ
str_replace() เปลยนขอความทคนพบดวยขอความใหมทตองการ
strtr() แปลงตวอกษรทแนนอน
substr() ตดตวอกษรทตองการใชออกมา
substr_replace() เปลยนขอความภายในสวนของขอความ
trim() ตดชองวางดานหนาและดานหลงขอความ
ucfirst() เปลยนตวอกษรตวแรกของขอความใหเปนตวพมพใหญ
ucwords() เปลยนอกษรตวแรกของแตละค าในขอความ
stristr() ตดขอความบางสวนตงแตตวแรกทพบจนถงตวสดทาย ทง
ตวพมพเลกกและพมพใหญ
strip_tags() ตดแทก php และ Html ออกจากขอความ
strchr() ตดขอความบางสวนตงแตตวแรกทพบจนถงตวสดทาย
sprintf() ใหคาของขอความทมรปแบบ
similar_text() ค านวณความเหมอนระหวาง 2 ขอความ
setlocale() ปรบคาขอมลทองถน
prinf() แสดงผลขอความทมรปแบบ
prin() แสดงผลขอความ
parse_str() รบคาขอความใวในตวแปร
Ord() แปลงตวอกษรเปนรหส ASCII
Page 112
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
ltrim() ตดขอความดานหนาขอความออกไป
join() รวม Array เปนขอความ
implode() รวม Array เปนขอความ
htmlspecialchars() แสดงแทก Html
flush() เคลยรบฟฟอร
eregi_replace() แทนทขอความทคนพบดวยค าทตองการ โดยไมสนใจวาจะเปน
ตวพมพเลกหรอใหญ
ereg_replace() แทนทขอความทพบดวยค าทตองการ
explode() แยกขอความโดยใชเครองหมายแยก
echo() แสดงผลขอความ
Chr() แปลงรหส ASCII เปนตวอกษร
Chop() ตดชองวางทายขอความออกไป
มาดตวอยางประกอบกนหนอยครบ
Sample1.php เปนการหาความยาวของขอความ
<? $text="My Name is Werachai Nukitram"; echo"ความยาวเทากบ ".strlen($text)." ตวอกษร"; ?>
Out Put
Page 113
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
ความยาวเทากบ 28 ตวอกษร
Sample2.php เปนการแสดงขอความซ าหลายรอบ
<? $text="อยากบอกรกคณซะ 5 ครง"; echo str_repeat($text,5); ?>
Out Put
อยากบอกรกคณซะ 5 ครงอยากบอกรกคณซะ 5 ครงอยากบอกรกคณซะ 5 ครงอยากบอกรกคณซะ 5 ครงอยากบอกรกคณซะ 5 ครง
Sample3.php เปนการแปลงขอความใหเปนตวพมพ และ พมพใหญ
<? $text="My Name is Werachai Nukitram"; echo"ตวพมพเลกจะได ".strtolower($text)."<br>"; echo"ตวพมพใหญจะได ".strtoupper($text)."<br>"; ?>
Out Put
ตวพมพเลกเปน my name is werachai nukitram ตวพมพใหญเปน MY NAME IS WERACHAI NUKITRAM
Sample3.php เปนการสลบขอความจากดานหนามาดานหลง
<? $text="My Name is Werachai Nukitram"; echo"เรยวขอความจากหลงไปหนาจะได ".strrev($text)."<br>"; ?>
Out Put
Page 114
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
เรยงขอความจากหลงไปหนาจะได martikuN iahcareW si emaN yM
Sample4.php เปนการหาต าแหนงของขอความทตองการ
<? $text="My Name is Werachai Nukitram"; echo"หาต าแหนงตวแรกทคนพบ e อยท ".strpos($text,e); echo"<br>หาต าแหนงตวสดทายทคนพบ e อยท ".strrpos($text,e); ?>
Out Put
หาต าแหนงตวแรกทคนพบ e อยท 6 หาต าแหนงตวสดทายทคนพบ e อยท 12 ตวอยางฟงกชนอน ๆ addslahes() จะท าการเพมเครองหมาย \ (Back Slashes) ใหกบ String ทมสญลกษณ ('), ("), (\) ดงตวอยางเชน <? $text = "I'm Win."; echo addslashes($text); ?> Out Put I\'m Win.
====================
chr() <? $text = "65"; echo chr($text); ?> Out Put
Page 115
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
A =====================
ucwords()
<? $text = "what is your name?"; echo ucwords($text); ?> Out Put What Is Your Name?
======================
ucfirst()
<? $text = "what is your name?"; echo ucfirst($text); ?> Out put What is your name?
========================
str_replace()
<? $text = "My Name is win"; $textnew = str_replace("win", "werachai",$text); echo $textnew; ?>
Page 116
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
Out put My Name is weracha
=======================
explode()
<? $a = "A B C D E F G H I"; $b = explode(" ", $a); for($i=0;$i<count($b);$i++) { echo "$b[$i]<br>"; } ?> Out Put
A B C D E F G H I
=========================
ส าหรบฟงกชนอน ๆ สามารถอานและท าความเขาใจถงวธการใชงานไดท PHP Manual ครบ ( Download ไดท http://www.php.net/ )
Page 117
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
ฟงกชน วน-เวลา
Function date การอานคาส าหรบบงบอกวนเดอนปและเวลาในปจจบน เราสามารถใชค าสง date () ตวอยางเชน แสดงวนเดอนปของวนน รปแบบ Function date
<? $today=date("Y-M-d"); ?>
<? $today = date("D d F Y h:i:s"); print "<CENTER>Today is: $today.</CENTER>"; ?>
"Y-m-d" หมายถงสตรงคทก าหนดรปแบบ (formatted string) ของการแสดงวนท ในกรณนคอ ปค.ศ.-เดอน-วน ตามล าดบ จรงๆแลวฟงกชน date() จะตองการอารกวเมนตสองตวคอ สตรงคทก าหนดรปแบบ เชน "Y-m-d" และคาของ TimeStamp (integer) ในหนวยเปนวนาท นบตงแต 1 มกราคม 1970 ในกรณทเราไมไดก าหนด TimeStamp กจะหมายถง TimeStamp เวลาในปจจบน
ถาเราตองการแสดงทงเวลาและวนเดอนป กตองก าหนดรปแบบของสตรงคใหม เชน "D d F Y h:i:s" ซงตวอกษรแตละตวจะมความหมายและเปนตวบงบอกหนาท เชน d ใชแทนทวนในหนงเดอน D ใชแทนชอวนแบบยอในเจดวน F ใชแทนชอเดอนในทงหมด 12 เดอน Y แทนทปค.ศ. เปนเลขสหลก h i s ใชแทนชวโมง นาท และวนาทตามล าดบ <? $today = date("D d F Y h:i:s"); print "<CENTER>Today is: $today.</CENTER>"; ?> ส าหรบรายอนเพมเตมเกยวกบฟงกชน date() สามารถดไดจาก PHP manual
Page 118
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
Description Function date
a แสดงค าวา am หรอ pm ในรปแบบตวพมพเลก A แสดงค าวา AM หรอ PM ในรปแบบตวพมพใหญ d แสดงวนทแบบเลข 2 หลก คอ "01" ถง "31" D แสดงชอวนภาษาองกฤษแบบยอ เชน "Sun" , "Fri" เปนตน F แสดงชอเดอนภาษาองกฤษเชน "January" h แสดงเวลาชวโมงแบบ 2 หลก "01" ถง "12" H แสดงเวลาชวโมงแบบ 2 หลก "00" ถง "23" g แสดงเวลาชวโมงแบบไมมเลข 0 น าหนา "1" ถง "12" G แสดงเวลาชวโมงแบบไมมเลข 0 น าหนา "0" ถง "23" i แสดงเวลานาท "00" ถง "59" j แสดงวนทแบบไมมเลข 0 น าหนา "1" ถง "31" l แสดงชอวนภาษาองกฤษแบบเตม เชน "Monday" L แสดงคาทางตรรกะ คอ มคา 0 หรอ 1 ในปทเปนอธกมาส m แสดงเดอนแบบตวเลขมเลข 0 น าหนา "01" ถง "12" n แสดงชอเดอนภาษาองกฤษแบบยอ 3 ตวอกษร เชน "Feb" s แสดงเวลาวนาท "00" ถง "59" S แสดงสวนตอทายของวนท เชน "th", "nd" t แสดงจ านวนวนใน 1 เดอน w แสดงตวเลขของวนใน 1 สปดาห เชน "0" = Sunday ถง "6" = Saturday Y แสดงป ค.ศ. ตวเลข 4 หลก เชน "1990" y แสดงป ค.ศ. ตวเลข 2 หลก เชน "90" z แสดงล าดบวนใน 1 ป คอตงแต "0" ถง "365"
ตวอยาง Function date
<HTML> <HEAD><TITLE>ตวอยางการ Function date</TITLE></HEAD> <BODY>
Page 119
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
<?
$today1=date("Y-M-d"); $today2=date("Y-m-D"); $today3=date("y-M-D");
print "$today1 <br>"; print "$today2 <br>"; print "$today3 <br>";
?>
</BODY> </HTML>
ผลลพธทได 2000-Apr-17 2000-04-Mon 00-Apr-Mon การบวกหรอลบเวลาจากปจจบน $fullday = date("d M H:i:s", mktime(date("H")[บวก/ลบ][ชม.], date("i")[บวก/ลบ][นาท.])).""; Sample <? $yea = date("Y")+543; $fullday = date("d M $yea H:i:s", mktime(date("H")+11, date("i")+45)).""; // บวกเวลา 11 ชม. กบ 45 นาท echo $fullday; ?>
Page 120
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
getdate()
<? &today = getdate(); $month = $today[month]; $mday = $today[mday]; $year = $today[year]; echo "$month $mday, $year"; ?>
จาก Code ตวแปร $today จะเปนอาเรยทมสมาชก $today[secounds] เกบคาวนาท $today[minutes] เกบคานาท $today[hours] เกบคาชวโมง $today[mday] เกบคาวนท $today[wday] เกบล าดบของวนใน 1 สปดาห เชน "0" ถง "6" $today[weekday] เกบชอวนในสปดาห เชน "Friday" $today[yday] เกบล าดบของวนใน 1 ป คอตงแต "0" ถง "365" $today[mon] เกบคาเดอน $today[month] เกบชอเดอนแบบเตม เชน "January" $today[year] เกบคาป
ลองมาดวนทแบบไทย ๆ บางครบ
Sample
<? // ThaiCreate.Com By @W_IN // $date = date("l");
switch($date) { case "Monday":
Page 121
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
$printdate = "จนทร"; break; case "Tuesday": $printdate = "องคาร"; break; case "Wednesday": $printdate = "พธ"; break; case "Thursday": $printdate = "พฤหสบด"; break; case "Friday": $printdate = "ศกร"; break; case "Saturday": $printdate = "เสาร"; break; case "Sunday": $printdate = "อาทตย"; break; }
$month = date("n");
switch($month) { case "1": $printmonth = "มกราคม"; break; case "2": $printmonth = "กมภาพนธ"; break;
Page 122
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
case "3": $printmonth = "มนาคม"; break; case "4": $printmonth = "เมษายน"; break; case "5": $printmonth = "พฤษภาคม"; break; case "6": $printmonth = "มถนายน"; break; case "7": $printmonth = "กรกฏาคม"; break; case "8": $printmonth = "สงหาคม"; break; case "9": $printmonth = "กนยายน"; break; case "10": $printmonth = "ตลาคม"; break; case "11": $printmonth = "พฤศจกายน"; break; case "12": $printmonth = "ธนวาคม"; break; }
Page 123
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
echo "$printdate ".date("d")." $printmonth ".(date("Y")+543).""; ?> Out Put
ศกร 25 มถนายน 2547
การใชฟงกชนเพอสรางตวเลขแบบสม
การใชฟงกชนเพอสรางตวเลขแบบสม หรอ random number generator จะคลายกบของภาษาซ คอ เรมตนดวย srand () โดยจะตองผานคาทเรยกวา seed ซงเปนเลขจ านวนเตมใดๆกไดกอน โดยทวไปจะใชคาของเวลาในหนวยวนาท หรอ Time Stamp ซงสามารถอานไดจากฟงกชน date("s") (s หมายถง second หรอหนวยวนาท) โดยผานคานเปนคาของ seed จากนนจงคอยเรยกใช rand() ตวอยางการใชงาน <? srand( date("s") ); for ($i=0; $i < 10; $i++) { $x = rand() % 10; echo $x," "; }
?> ค าสงนจะสรางตวเลขโดยการสมเลอกเปนจ านวน 10 ตวเลข และพมพออกทางเอาพต
ตวอยางการใชงานเพมเตมในรปของฟงกชน <? function randInt($low,$high) { srand ( date("s") ); $range = $high - $low; $num = (rand() % $range) + $low; return $num; }
?>
Page 124
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
ตวอยางนจะสรางตวเลขโดยสมทอยระหวางเลขจ านวนเตมสองคา และเงอนไขของการใชฟงกชนนคอ $low จะตองมคานอยกวา $high และทงสองตองเปนเลขจ านวนเตม <? function randStr($len) { srand ( date("s") ); for ($i=0; $i < $len; $i++) { $ret_str .= chr( (rand() % 26)+97 ); } return $ret_str; } echo randStr(40); ?> ตวอยางนจะสรางสตรงคแบบสมทมความยาวตามทก าหนดและสรางขนจากตวอกขระภาษาองกฤษ
การสราง Random Password
การสราง Password Random แบบงาย ๆ
function random_password($len) { srand((double)microtime()*10000000); $chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; $ret_str = ""; $num = strlen($chars); for($i = 0; $i < $len; $i++) { $ret_str.= $chars[rand()%$num]; $ret_str.=""; } return $ret_str; }
Page 125
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
// echo random_password(8); $passw = random_password(7); echo $passw;
<? function randomToken($len) { srand( date("s") ); $chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; $chars.= "1234567890!@#$%^&*()"; $ret_str = ""; $num = strlen($chars); for($i=0; $i < $len; $i++) { $ret_str.= $chars[rand()%$num]; } return $ret_str; }
echo randomToken(13)," ";
?>
การสรางฟงกชนแบบเรยกตวเอง (recursive function)
ตวอยาง การหาคาแฟลทอเรยล n! <? function factorial ($n) { if ( ($n == 0) || ($n == 1) ) return 1; else return $n*factorial($n-1); } echo factorial(4);
Page 126
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
?> เงอนไขกใชฟงกชน factorial() จากตวอยางขางบน คอ $n จะตองเปนตวแปรทเกบคาทเปนเลขจ านวนเตม และไมเปนลบ ถาเราตองการจะเขยนฟงกชนใหมความปลอดภยในการใชงาน เรากอาจจะเพมเงอนไข เพอตรวจเชคดกอนวา ผใชผานคาของตวแปรทตรงตามตองการหรอไม เชน ไมผานคาทเปนสตรงค หรอเปนเลขทศนยม หรอคาทเปนลบ เปนตน
ตวอยาง การคนหาขอมลแบบ Binary Search ในอารเรยทมการเรยงขอมลจากนอยไปมาก <? function binSearch(&$key,&$array, $left, $right) { $mid = ceil( ($left + $right) / 2 );
if ($left > $right) return -1; if ($array[$mid] == $key) return $mid; else if ($key < $array[$mid]) return binSearch($key, $array, $left, $mid-1); // recursive call else return binSearch($key, $array, $mid+1, $right); // recursive call }
$num=100; $key = randInt(0, $num); for($i=0; $i < $num; $i++) { $sorted_array[$i] = $i+1; }
echo binSearch(13, $sorted_array, 0, $num);
?>
Page 127
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
ตวอยาง การสรางสตรงคแบบสมอกแบบหนงซงอาจจะน าไปใชในการสราง one-time password ( OTP) <? function randomToken($len) { srand( date("s") ); $chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; $chars.= "1234567890!@#$%^&*()"; $ret_str = ""; $num = strlen($chars); for($i=0; $i < $len; $i++) { $ret_str.= $chars[rand()%$num]; } return $ret_str; }
echo randomToken(13)," ";
?>
หมายเหต: การก าหนดคา seed ส าหรบฟงกชน srand() นอกจะใช date("s") เปนตวก าหนดคาแลว เราอาจจะใชฟงกชนอนกได เชน srand((double)microtime()*1000000);
ตวอยางฟงกชนทเกยวของกบการท างานของสตรงค
สองฟงกชนแรกทเราจะท าความรจกคอ ฟงกชน strtolower() และ strtoupper() ซงมหนาทคอ เอาไวแปลงตวอกขระภาษาองกฤษใหเปนตวพมพเลก หรอตวพมพใหญทงหมด ตามตวอยางตอไปน <? $answer = "Yes"; if ($answer == "yes") echo "yes...\n"; else echo "error!\n"; $answer = strtolower("Yes"); if ($answer == "yes")
Page 128
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
echo "yes...\n"; else echo "error!\n";
$answer = strtoupper("Yes"); if ($answer == "YES") echo "YES...\n"; else echo "error!\n"; ?> ประโยชนของฟงกชนทงสองทเหนไดชด คอ เอาไวใชแปลงขอความใหเปนตวพมพใหญหรอเลกทงหมด กอนทเราจะใชในการเปรยบเทยบขอความ เชน ผใชอาจจะใสขอความไวใน $answer วา "Yes" "YeS" "yES" หรอ "YES" เปนตน แตเราอยากรวา ผใชใสค าวา yes หรอไม โดยไมสนใจวาจะเปน ตวพมพใหญหรอเลก ในกรณน เรากแปลงใหเปนตวพมพเลกกอน แลวกน ามาเปรยบเทยบ
สมมตวา มสตรงคหรอขอความอยแลวตองการจะแยกออกเปนสวนยอยๆโดยใชตวอกขระ หรอสตรงคทมอยขางในเปนตวแยก เราจะใชฟงกชน explode() ตามตวอยางตอไปน <? $str = "ohh:users:bash"; list($user,$group,$shell) = explode(":",$str); echo "$user $group $shell"; ?> จากตวอยางขางบนเราใช ":" เปนตวแยกสวนของขอความวา "ohh:users:/bash" และคาทไดจากฟงกชน explode() จะเปน array ดงนน เรากสามารถใชฟงกชน list() เกบสวนของขอความทถกแยกแลวได ในกรณนมสามสวนและถกแยกเกบไวในตวแปร $user $group และ $shell ตามล าดบ
ฟงกชนทท างานตรงกนขามกบฟงกชน explode() คอฟงกชน join ตวอยางการใชงานมดงน <? unset($a); $a[]="aaa"; $a[]="bbb"; $a[]="ccc";
Page 129
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
echo join(":",$a)."<BR>\n"; ?> การแปลง \n ใหเปน <BR> ฟงกชน nl2br จะท าหนาทแปลง \n ใหเปน <BR> ส าหรบขนบรรทดใหมในเอกสาร HTML โดยอตโนมต เชน สมมตวา เราเปดไฟลและอานขอความจากไฟลนน แลวตองการจะแทรกขอความเหลานน เปนบรรทดๆ ลงในเอกสาร HTML เนองจากวาในขอความทเปนสตรงคและม '\n' จบทาย และเราตองการจะแปลงใหเปน <BR> เพอจดหนาเอกสารใหเหมาะสม เรากใชฟงกชนดงกลาวชวย <? // convert \n to <br> $br=nl2br("\n\n"); echo $br."hello".$br; ?>
การตวแปรแบบ static ภายในฟงกชน
การตวแปรแบบ static ภายในฟงกชน สมมตวา เราตองการจะใชตวแปรภายในฟงกชน และสามารถเกบคาไวไดตลอดเวลา โดยไมสญหายไปทกครงทมการเรยกใชฟงกชน ในกรณนเราจะแจงใชตวแปรใหเปนแบบ static ตามตวอยางตอไปน function MyFunc() { static $num_func_calls = 0; echo "my function\n"; return ++$num_func_calls; }
ทกครงทมการเรยกใชฟงกชนดงกลาว ตวแปรชอ $num_func_calls ซงมคาเรมตนเปนศนยในตอนแรก จะเพมคาทเกบขนทละหนง
--------------------------------------------------------------------------------
การผานคากลบคนมากกวาหนงจากฟงกชน โดยปรกตแลวเราไมสามารถผานคากลบคนจากฟงกชนไดมากกวาหนง แตอยางไรกตาม ยงมวธการหนงท
Page 130
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
ชวยแกปญหาดงกลาวได วธนคอ เกบคาตางๆทตองการจะใชเปนคากลบคนไวใน array แลวใช array นนเปนคากลบคน และผเรยกใชฟงกชนสามารถใชฟงกชน list() อานคาเหลานนได ตวอยางเชน <? function foobar() { return array ("foo", "bar", 0xff); } list ($foo, $bar, $num) = foobar(); echo "$foo $bar $num <BR>\n"; ?>
จากตวอยาง ฟงกชน foobar() จะใหคากลบคนเปน array ประกอบดวยสามสมาชก คาทไดจากฟงกชนนกจะสงไปยงฟงกชน list() เพอใหเกบแยกลงในตวแปรตามชอทก าหนดคอ $foo, $bar และ $num ตามล าดบ
การสลบคาของตวแปรสองตว swap()
ถาเราตองการสลบคาระหวางสองตวแปร เรากเขยนฟงกชน swap() ขนมา <? function swap(&$a, &$b) { $t = $a; $a = $b; $b = $t; }
$x=10; $y=3; echo "x=",$x,",y=",$y,"\n"; swap($x,$y); echo "x=",$x,",y=",$y,"\n";
?> ตวอยางขางบน กแสดงใหเหนวธการใช call-by-reference อกเชนกน
Page 131
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
มขอสงเกตอยวา การใช call-by-reference ไมจ าเปนตองท าตอนนยามฟงกชนเทานน แตอาจจะท าตอนผานตวแปรเมอเรยกใชงานจรง ตวอยางเชน <? function swap($a, $b) { $t = $a; $a = $b; $b = $t; }
$x=10; $y=3; echo "x=",$x,",y=",$y,"\n"; swap(&$x, &$y); echo "x=",$x,",y=",$y,"\n";
?>
จากตวอยางน เราแกไขฟงกชน swap() ท าใหไมสนบสนน call-by-reference ดงนนเพอจะใชงานไดอยางถกตอง เรากจะตองใช reference ของตวแปรเปนอารกวเมนตของฟงกชน ในเวลาทเรยกใช ซงกคอ swap(&$x,&$y) ถาเราไมท าอยางน เชน เขยนวา swap($x,$y) กจะไมมการสลบคาของตวแปรทงสอง เนองจากวา เมออยภายในฟงกชน swap() แลว เราไมสามารถเปลยนแปลงคาของตวแปรเหลานนได คออานได แตไมสามารถก าหนดคาใหมได
การอานและแปลงแบบขอมลในตวแปรหรอคาคงทแบบเจาะจง
ถาตองการเชคดวา ตวแปรมขอมลแบบใด เราสามารถใชค าสง gettype() ได คาทไดจากฟงกชนกจะเปน "integer" "double" หรอ "string" เปนตน <? echo gettype(0),"\n"; echo gettype(1.1),"\n"; echo gettype(""),"\n"; echo gettype((1==1)),"\n";
Page 132
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
$var="abc"; if ( gettype($var)=="string" ) { echo "this is a string\n"; }
?> เราอาจจะไมใช gettype() กได แตเลอกใชฟงกชน is_long() ส าหรบเชคคาทเปนเลขจ านวนเตม, is_string() ส าหรบเชคคาทเปนสตรงค, is_double() ส าหรบคาทเปนเลขทศนยม, is_array() ส าหรบคาทเปนอารเรย หรอ is_object() ส าหรบคาทเปนออปเจคจากคลาสแทน ซงจะใหคาเทากบ true (1) ถาตวแปรมแบบขอมล ตรงตามทก าหนด <? unset($a); $a="hello"; if (is_string($a) == true) { echo "\$a is a string <BR>\n"; }
unset($a); $a[]="red"; $a[]="green"; $a[]="blue";
if (is_array($a) == true) { echo "\$a is an array of size ",count($a),"<BR>\n"; }
?>
โปรดสงเกตวา เราใชค าสง unset() เพอลบคาทตวแปรเกบอยในขณะนน ในกรณน เราก าหนดให $a เปนสตรงคในตอนแรก ถาเราจะตองการใชตวแปรตวเดยวกนน เปนคาใหมแตเปนอารเรย กจะใชค าสง unset() กอน
Page 133
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
ตวอยางการใช echo เพอแสดงขอความ (เพมเตม) การพมพคาใดๆทเกบอยในตวแปร ถาชอของตวแปรอยในสตรงคระหวาง double quote เวลาสรางเอาพตแลว จะอานคาของตวแปรนนกอนแลวจงแทนทลงในขอความ แตถาน าหนาดวย backslash (\) กจะไมมการอานคาของตวแปร เชน "\$a" จะใหผลตางจาก "$a" สงเกตไดจากตวอยางตอไปน <? $a=1; echo "\$a=$a <BR>\n"; $test = "test"; echo "$test$test$test<BR>\n"; echo $test,$test,$test,"<BR>\n";
$a = 1; $b = 2; echo $a,"+",$b,"=","$a+$b","<BR>\n"; echo $a,"+",$b,"=",$a+$b,"<BR>\n"; ?> ส าหรบขอความในภาษา PHP เราอาจจะใช single qoute แทน double quote ได แตเวลาใชงานรวมกบ echo หรอ print() จะใหผลตางกน ซงสงเกตไดจากตวอยางตอไปน <? $a = "aaa"; $b = 'bbb'; echo "$a $b<BR>\n"; echo '$a $b<BR>\n'; ?> ตวแปลค าสงจะมองขามชอตวแปรและรวมถงพวก escape sequence ตางๆดวยทอยในขอความทใช single quote
Regular Expression (Regex)
Regular Expression หรอเรยกยอๆวา Regex หมายถง รปแบบของล าดบ หรอกลมของสญลกษณ ทใชแทนล าดบ หรอกลมของอกขระตามทตองการ
Page 134
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
เราใชสญลกษณ [ ] (square brackets) เพอก าหนดขอบเขตของกลมตวอกขระหลายตวทใชเปนตวเลอก เชน สมมตวา เราตองการจะเขยนรปแบบทใชแทนตวอกขระหนงตว อะไรกไดจาก {a,e,i,o,u} เรากจะเขยนวา [aeiou] โดยจะเรยงล าดบกอนหลงอยางไรกได เชน [eioua] ใหผลเหมอนกบ [aeoui] หรอ ถาเราตองการเขยน รปแบบเพอใชแทนตวขระหนงตวทเปนตวเลขตวใดตวหนงจาก 0 ถง 9 เรากเขยนวา [0123456789] หรอจะเขยนแบบสนๆใหมไดเปน [0-9] หรออกตวอยางหนง ถาเราตองการจะเขยนนพจนแบบ regex ขนมา เพอใชแทนอกขระตวใดตวหนงทเปนไดทงตวพมพใหญหรอเลกในภาษาองกฤษหรอตวเลขระหวาง 0 ถง 9 เรากเขยนวา [A-Za-z0-9]
[aeiou] ตวอกขระตวหนงจาก {a,e,i,o,u} ตวไหนกได [0-9] ตวอกขระตวหนงจาก {0,1,...,9} ตวไหนกได [A-Za-z0-9] ตวอกขระตวหนงจาก {A,B,..,Z, a, b, ... , z, 0, 1, ... 9} ตวไหนกได
ถาเรามขอความแลวเราตองการจะคนหาอกขระหรอล าดบของอกขระ (หรอ pattern) ในขอความเรานน เราเรยกขนตอนในการคนหาตามรปแบบนวา pattern matching ในภาษา PHP จะมฟงกชนทเราใชในการคนหาล าดบของตวอกขระตามแบบทตองการคอ ereg() และ eregi() และตางกนตรงทวา ฟงกชน eregi() จะเปรยบเทยบโดยไมค านงถงเรองตวพมพเลกหรอใหญ
ตวอยางเชน สมมตวา เรามขอความอยในอารเรยเปนขอความทมแคตวอกขระตวเดยว แลวเราตองการจะหาวา ตวไหนบางทเปนตวเลข 0 ถง 9 บางและตวไหนบางทเปนตวพมพภาษาองกฤษ a, b, หรอ c เรากเขยนสครปตโดยใชฟงกชน ereg() ไดดงน <? $a=array("0","1","2","3","5","7","a","b","c"); for ($i=0; $i < count($a); $i++) { // print only digit if ( ereg("[0-9]",$a[$i]) ) { print ("$a[$i] <BR>\n"); } } ?> <HR> <? for ($i=0; $i < count($a); $i++) { // print only a, b or c if ( ereg("[a-c]",$a[$i]) ) {
Page 135
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
print ("$a[$i] <BR>\n"); } } ?>
ขอความทเราใชในตวอยางขางบนมแคตวอกขระเพยงหนงตว แตอนทจรงแลวฟงกชน ereg() จะใหคาเปนจรง ถาพบวา ขอความทมความยาวมากกวาหนงตวอกขระและมตวอกขระอยางนอยหนงตวทตรงตามรปแบบทก าหนด ฟงกชนกจะใหคาเปนจรงดวย ตวอยางเชน <? $a=array("f","mn", "eU","+5","Y","17","a4","%m","cdef"); for($i=0; $i < count($a); $i++) { if ( ereg("[a-z]",$a[$i]) ) { print ("$a[$i] <BR>\n"); } } ?>
ผลจากการท างานของสครปตในตวอยางนจะไดวา ขอความทตรงตามรปแบบ [a-z] โดยใชฟงกชน ereg() ในการเปรยบเทยบ คอ "f", "mn", "eU", "a4", "%m" และ "cdef" เพราะวาขอความเหลาน มตวอกขระอยางนอยหนงตวทอยระหวาง a ถง z ดงนนจงจะเหนไดวา ขอความทเหลอคอ "+5", "Y" และ "17" ไมตรงตามรปแบบ
จากตวอยางขางบน สมมตวา เราตองการจะหาขอความทมสองตวอกขระและมแคสองตวเทานน เปนตวใดกไดระหวาง a ถง z เรากจะตองก าหนดรปแบบใหการคนหาใหเปน ^[a-z]{2}$ โดยทสญลกษณ ^ หมายถงการเรมตน และ $ หมายถงการลงทาย และเราจะอานวา ใหคนหาขอความทเรมตนดวยตวภาษาองกฤษพมพเลก และจบดวยตวภาษาองกฤษพมพเลก และมอยสองตวเทานน จากตวอยางขางบน ถาเราใชรปแบบใหมนในการคนหา เราจะได "en" เปนขอความเดยวเทานนทตรงตามรปแบบ
สมมตวา เราตองการคนหาค าทขนตนดวยตวพมพใหญภาษาองกฤษและตามดวยสระ {a,e,i,o,u} ถาขอความมมากกวาสองตวอกขระแลวตวทตามมาจะเปนอะไรกได เรากเขยนรปแบบในการคนหาได เปน ^[A-Z][aeiou] ลองตวดอยางตอไปน <? $a=array("f","Monday", "eU","755","Pu","English","Tuesday","for", "Bee");
Page 136
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
for($i=0; $i < count($a); $i++) { if ( ereg("^[A-Z][aeiou]",$a[$i]) ) { print ("$a[$i] <BR>\n"); } } ?> ตวอยางนจะไดวา "Monday", "Pu" ,"Tuesday" และ "Bee" คอขอความทตรงตามรปแบบทก าหนด
ถาตองการจะหาขอความทขนตนดวยตวพมพใหญแลวตามดวยสระเปนตวพมพเลกอยางนอยหนงตว เรากเขยนวา ^[A-Z][aeiou]+$ ซงเครองหมายบวกทอยขางหลง [aeiou] หมายความวา มไดอยางนอยทสดหนงตว จากตวอยางขางบน ถาเราใชรปแบบใหมนในการคนหา กจะไดขอความ "Pu" และ "Bee" เทานนทตรงตามรปแบบ
ถาจะหาขอความทขนตนดวยตวพมพใหญแตตามดวยตวพมพเลกใดๆกไดทไมใชสระ {a,e,i,o,u} เรากเขยนใหมไดเปน ^[A-Z][^aeiou] โปรดสงเกตวา เราใสสญลกษณ ^ ไวระหวาง [ ] และอยขางหนาสด เพอใชก าหนดกรณตรงขาม และจากตวอยางขางบน เราจะไดขอความ "English" เทานนทตรงตามรปแบบใหมน
อกตวอยางหนงทนาสนใจ คอ สมมตวา เรามรายชอไฟลอยหลายๆชอ ตองการจะตรวจดวา ชอไหนลงทายดวย .gif .jpeg .jpg หรอ .png บาง โดยใช eregi() ในการคนหา เราจะตองก าหนดรปแบบของ regex ขนมากอน ซงท าไดดงน (\.gif|\.jpg|\.jpeg|\.png)$ ในกรณนเราไมไดใช [ ] แตใชวงเลบค ( ) แทน และสญลกษณ \. เปน escape sequence ทเราใชแทนจด (.) ถาเขยนอยในระหวางวงเลบค เนองจากวาถาใชจดโดยไมม backslash (\) น าหนากจะหมายถง ตวอกขระใดๆกได ถาเราใชจดระหวาง [ ] กจะหมายถงจด โดยไมตองใส \ ไวเพอก าหนดใหเปน escape sequence <? $files=array("bird.gif","Linux.JPG", "unknown.xbm","icon.Png"); for($i=0; $i < count($files); $i++) { if ( eregi("(\.gif|\.jpg|\.jpeg|\.png)$",$files[$i]) ) { print ("$files[$i] <BR>\n"); } } ?>
Page 137
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
ความแตกตางของการใช ( ) และ [ ] อยทวา ถาเขยน (abc) หมายถงขอความทเรมดวย a ตามดวย b และ c ตามล าดบ ในขณะท [abc] หมายถง a หรอ b หรอ c ซง [abc] จะใหผลเหมอนกบ (a|b|c) และเครองหมาย | ทใชภายในวงเลบค ( ) จะหมายถง "หรอ" ดงนนจากตวอยางขางบน จากรปแบบเดม (\.gif|\.jpg|\.jpeg|\.png)$ เราอาจจะเขยนใหมไดเปน [(\.gif|\.png)(\.jpg|\.jpeg)]$ กจะใหผลเหมอนกน
จากทไดอธบายมากเปนเพยงการใชงานสวนหนงของ Regular Expression ซงยงมลกษณะและการใชงานทนอกเหนอจากทกลาวไป
สญลกษณพนฐานทใชในการเขยน Regular Expression
. ตวอกขระใดๆกได [ ... ] ตวอกขระตวใดๆกไดทอยในกลมของตวอกขระทเปนตวเลอก [^... ] ตวอกขระตวใดๆกไดทไมไดอยในกลมของตวอกขระทเปนตวเลอก ^ ต าแหนงเรมตนของขอความ $ ต าแหนงทายสดของขอความ \< ต าแหนงเรมตนของค า \> ต าแหนงทายสดของค า | สญลกษณทใชแยกตวเลอกระหวาง ( ... ) (...) ใชแทนกลมของตวเลอก
Repetition Quantifiers
? ถามกไมเกนหนงตวหรอไมมกได * มหนงตวหรอมากกวาหนงหรอไมมเลยกได + มหนงตวหรอมากกวาหนงกได แตตองมอยางนอยหนงตว {min,max} ใชก าหนดจ านวนนอยทสดและมากทสดทจะมได
ตวอยางของการใช regular expressions
^be ขอความทขนตนดวย b และถดจาก b ตามดวย e ^[be] ขอความทขนตนดวย b หรอ e [^be] ขอความทไมไดขนตนดวย b และ e
Page 138
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
ion$ ขอความทลงทายดวยหรอจบทายดวย ion [ion]$ ขอความทลงทายหรอจบทายดวย i หรอ o หรอ n \n$ ขอความทมสญลกษณ \n (new line) อยทาย <H[1-6]> ขอความทม <H1> <H2> <H3> <H4> <H5> หรอ <H6> อยดวย <H[^4-6]> ขอความทไมม <H4> <H5> และ <H6> อยดวย [0-9.] ขอความทมตวเลขใดๆระหวาง 0 ถง 9 หรอ จด อยดวย ^Subject$ ขอความทมค าวา Subject เทานน ^(From|Subject|Date): ขอความทมค าวา From: หรอ Subject: หรอ Date: ขนตน ^[0-9]+$ ขอความทมตวเลขเทานนและอยางนอยหนงตว ([0-9]+(\.[0-9]+){3}) ขอความทตรงตามรปแบบของหมายเลข IP เชน 127.0.0.1 ^[-+]?[0-9]+(\.[0-9]*)?$ ขอความทตรงตามรปแบบของตวเลขทศนยม เชน -12.345
การใชงาน regular expression อยางจรงจงนนไมใชเปนเรองงาย ตองท าความเขาใจอยางจรงจง และในเอกสารนกท าไดแคน าเสนอเนอหาพนฐานส าหรบการใชงานเทานน ถาใครสนใจการใชงานอยางจรงจง ในเรองของ regular expression กสามารถหาหนงสอ ส าหรบเรองนโดยเฉพาะมาอานได
PHP กบ Mysql
ตอนท 1 เบองตนดวย Mysql
พดถง Mysql แลว ใครหลาย ๆ คนทยงไมรจก อาจจะไมรวามนคออะไร ใชท าอะไร มประโยชนอยางไร และใชงานอยางไรส าหรบในความคดของผมแลว มนคอ โปรแกรม ฐานขอมลทสดยอดทสดส าหรบ PHP การใชงานคอนขางทจะยากหนอยครบเพราะพนฐานการออกแบบฐานขอมล Mysql จะออกแบบบน Dos แต php ไดเตรยมฟงกชนสามารถออกแบบ และสรางฐานขอมลบน php ไดอยางงาย ๆ และสามารถน าไปใชงานไดทนท ขอดของ Mysql ทผมยอมรบคอ php สามารถท างานบน mysql ไดอยางรวดเรวและมประสทธภาพ
จะท าอยางไรเมอตองการใช Mysql - ส าหรบผทไมไดตดตง Apperv จะตองตดตงโปรแกรม mysql กไมยากครบ คณแคลงโปรแกรม Mysql ซง Downloads ไดจาก http://www.mysql.com/ โดยอาจจะใช mysql-3.23.33-win หรอ mysql-shareware-3.22.34-win หรออาจะใชเวอรชนอน ๆ ตามความสะดวกครบ
Page 139
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
แตกใหเหมาะสม และ Support กบ Os ทคณใชดวยครบ แตเนอหาทผมจะสอน ผมใช mysql-shareware-3.22.34-win
ตดตงอยางไร เมอ Download เสรจแลวกใหตดตงตามปกตครบ Next Next และก Next เปนอนเสรจครบ
ใชงานอยางไร ตองท าความเขาใจกอนครบ วากอนจะตดตอกบฐานขอมล Mysql ได คณตองท าการ Start ฐานขอมลกอนครบ ซงคณจะตอง Start ทกครงทท าการเปดเครองใหม ตามขนตอนตอไปนครบ
- เปด Dos ขนมา
- cd\ - cd mysql\bin
Page 140
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
- mysqld-shareware ( หากคณใช mysql-3.23.33-win จะใช mysqld )
- Mysql
หากขนขอความ Welcome to the Mysql monitor...................................... แสดงวา Mysql พรอมทจะท างานแลว
Page 141
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
- ส าหรบผทไดตดตง Apperv แลวจะสามารถใช Mysql ไดโดยไมตองตดตง Run Program ไดท
Cd\ Cd appserv\mysql\bin
Mysqld
Mysql
ตอนท 2 เรมตดตอกบ Mysql
กอนทจะตดตอกบ Mysql เราจะตองรจกฟงกชนเหลานกอนครบ ซงจ าเปนมาก ๆ ทจะตองรและใชงานเปน
ฟงกชน จดมงหมาย ความหมาย
mysql_connect ตดตอกบฐานขอมล mysql mysql_close ปดการเชอมตวกบ mysql mysql_create_db สรางฐานขอมล mysql mysql_data_seek เลอนพอยเตอรภายใน mysql_db-query สงควรไปยง mysql mysql_drop_db ลบฐานขอมล ใน mysql mysql_errno ใหคา ขอความ ทเกดขอผดพลาดจากการท างาน mysql mysql_error ฝหคา ขอความ ทเปนขอความจากการท างาน mysql mysql_fetch_array เกบคาจาก Reccord ลง Array mysql_fetch_filed ใช object เพอไดคาเกยวกบฟวส mysql_fetch_lengths คาขอบเขตแตละผลลพธ mysql_fetch_object คาทเปน object mysql_fetch_row ระบคาลง Array mysql_field_name แสดงคาเปนชอฟวส
Page 142
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
mysql_filed_seek ก าหนดพอยเตอรชไปยงฟวส mysql_filed_table แสดงคาเปนชอตารางจากชอฟวส mysql_filed_type แสดงคาเปนประเภทของฟวส mysql_filed_len แสดงคาเปนขนาดของฟวส mysql_free_result เปนการก าหนดใหหนอยความจ าวางมากขน mysql_affected_rows หาคาจ านวน Reccord ในการใช Mysql กอนหนาน mysql_change_user เปลยนชอลอกอนส าหรบการตดตอปจจบน mysql_insert_id ก าหนดคา id ไดจากค าสง insert ทผานมา mysql_list_files แสดงชอฟวสของ mysql mysql_list_dbs แสดงชอฐานขอมลของ mysql mysql_list_tables แสดงชอตารางในฐานขอมลของ mysql mysql_num_files นบส านวนฟวส mysql_num_rows นบจ านวน Reccord mysql_pconnect เปดการตดตอกบ mysql ทมอยแลว mysql_query สงค าสงควรไปยง mysql mysql_result result เพอดงขอมล mysql_select_db ใชเมอตองการเลอกฐานขอมลของ mysql mysql_tablename แสดงชอตาราง
ฟงกชนเหลานมความจ าเปน ทจะตองรความหมายและการใชงาน ลองมาดซกตวอยางครบ Sample1.php เปนการตวจสอบวาสามารถตดตอกบฐานขอมลไดหรอไม
<html> <body> <? $host="localhost"; $username=""; $password=""; $connect= mysql_connect( $host,$username,$password); if ( !$connect )
Page 143
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
{ echo "ตดตอกบฐานขอมล Mysql ไมได "; exit(); }else{ echo "สามารถตดตอกบฐานขอมล Mysql ได "; } mysql_close($connect); ?> </body> </html>
Out Put
ตอนท 3 ค าสงพนฐาน
ในหวขอนเราจะไดศกษาเกยวกบค าสงพนฐานในการจดการฐานขอมล Mysql ให Start ฐานขอมลกอนครบ
Page 144
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
1.เกยวกบ Database การสรางฐานขอมล รปแบบ Create database [database-name];
การลบฐานขอมล
รปแบบ Drop database [database-name];
การเลอกใชฐานขอมล
รปแบบ Use [database-name];
Page 145
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
2.เกยวกบ Table การสราง Table
รปแบบ Create Table [Table-name] ( filed-name1 tpye [not null/null], filed-name2 tpye [not null/null], filed-name3 tpye [not null/null], . . . filed-nameN tpye [not null/null] primary key (file-name) //ไมก าหนดกได );
ตวอยางตอไปนเปนการสราง Table Product ประกอบดวย - barcode ชนด INT เกบตวเลขสงสด 7 ตวเลข หามมคาวาง - description ชนด varchar เกบจ านวน 50 ตวอกษร หามมคาวาง - price ชนด Float ก าหนดทศนยม 2 ต าแหนง หามมคาวาง - page ชนด INT เกบตวเลขสงสด 4 ตวเลข หามมคาวาง - writer ชนด varchar เกบจ านวน 70 ตวอกษร หามมคาวาง โดย barcode เปน primary Key
Page 146
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
ชนดของขอมลใน Mysql
ค าสงลบ Table
รปแบบ Drop Table [Table-name];
Page 147
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
ค าสงเรยกดโครงสรางของตาราง
รปแบบ describe [ table-name ]
ตอนท 4 ออกแบบฐานขอมล Mysql ผานฟงกชนของ PHP
นอกจากเราออกแบบฐานขอมล Mysql บน Dos แลว PHP ยงเตรยมฟงกชน ทใหเราสามารถออกแบบฐานขอมลบน PHP ไดเหมอนกน
ค าสงการสรางฐานขอมล
ตวอยาง <html> <body> <? $host="localhost"; $username=""; $password=""; $db="Data"; $connect= mysql_connect( $host,$username,$password); if ( !$connect ) { echo "ตดตอกบฐานขอมล Mysql ไมได "; exit(); }
Page 148
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
else { /* สรางฐานขอมล */ $create_db = mysql_query("CREATE DATABASE $db")or die ("สรางฐานขอมลไมได"); if (!$create_db) { mysql_die(); } else { echo"<b>สรางฐานขอมลส าเรจ ชอฐานขอมล $db</b>"; } } mysql_close($connect); ?> </body> </html>
Out Put
ค าสงการสรางตาราง ( Table )
ตวอยาง
<html> <body> <? $host="localhost"; $username="";
Page 149
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
$password=""; $db="Data"; $tb="Student"; $connect= mysql_connect( $host,$username,$password); if ( !$connect ) { echo "ตดตอกบฐานขอมล Mysql ไมได "; exit(); } else { mysql_select_db($db) or die("เลอกฐานขอมลไมได"); /* ท าการเลอกฐานขอมลกอน */
/* สราง Tables */ $create_tb=mysql_query("CREATE TABLE $tb ( id int(13) NOT NULL, name varchar(50) NOT NULL, old int(2) NOT NULL, address varchar(70) NOT NULL, PRIMARY KEY (id) );") or die("<br>สรางตาราง $tb ไมส าเรจ ");
if (!$create_tb) { mysql_die(); } else { echo"<br><b>สราง Table ส าเรจ ชอ $tb</b> "; } } mysql_close($connect);
Page 150
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
?> </body> </html>
Out Put
ดงตวอยางตอไปนเปนการสราฐานขอมล Cus_product และ Table Product ประกอบดวย Filed - barcode ชนด INT เกบตวเลขสงสด 7 ตวเลข หามมคาวาง - description ชนด varchar เกบจ านวน 50 ตวอกษร หามมคาวาง - price ชนด Float ก าหนดทศนยม 2 ต าแหนง หามมคาวาง - page ชนด INT เกบตวเลขสงสด 4 ตวเลข หามมคาวาง - writer ชนด varchar เกบจ านวน 70 ตวอกษร หามมคาวาง โดย barcode เปน primary Key
Sample1.php
<html> <body> <? $host="localhost"; $username=""; $password=""; $db="Cus_product"; $tb="Product"; $connect= mysql_connect( $host,$username,$password); if ( !$connect ) { echo "ตดตอกบฐานขอมล Mysql ไมได ";
Page 151
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
exit(); } else { /* สรางฐานขอมล */ $create_db = mysql_query("CREATE DATABASE $db")or die ("สรางฐานขอมลไมได"); if (!$create_db) { mysql_die(); } else { echo"<b>สรางฐานขอมลส าเรจ ชอฐานขอมล $db</b>"; } mysql_select_db($db) or die("เลอกฐานขอมลไมได"); /* ท าการเลอกฐานขอมลกอน */
/* สราง Tables */ $create_tb=mysql_query("CREATE TABLE $tb ( barcode int(7) NOT NULL, description varchar(50) NOT NULL, price float(10,2) DEFAULT '0.00' NOT NULL, page int(4) NOT NULL, writer varchar(70) NOT NULL, PRIMARY KEY (barcode) );") or die("<br>สรางตาราง $tb ไมส าเรจ ");
if (!$create_tb) { mysql_die(); } else {
Page 152
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
echo"<br><b>สราง Table ส าเรจ ชอ $tb</b> "; } } mysql_close($connect); ?> </body> </html>
Out Put
ตอนท 5 การ Insert ขอมลลงตารางดวย Mysql,PHP
ใหสรางฐานขอมล Data_customer ดงตอไปน Create Database Data_customer;
เมอใชค าสง Show Databases; จะเหนชอฐานขอมลทเราสรางขนมา
Page 153
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
และสราง Table cus_tomer ดงน
CREATE TABLE cus_tomer ( id int(6) NOT NULL, password varchar(30) NOT NULL, date varchar(30) NOT NULL, name varchar(30) NOT NULL, surname varchar(30) NOT NULL, email varchar(40) NOT NULL, tel varchar(30), address varchar(80) NOT NULL, PRIMARY KEY (id) );
Page 154
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
เมอใชค าสง Show Tables; จะแสดงชอ Table และ ฐานขอมลทเราสรางออกมา
ค าสงการเพมขอมลลงใน Table ดวย Mysql
รปแบบ
Insert Into [Table-name](filed1,filed2,filed3,....,filedN) values ('value1','value2','value3',...,'valueN');
ตวอยาง
INSERT INTO cus_tomer (id, password, date, name, surname, email, tel, address) VALUES ('450001', '001', '15/10/45', 'werachai ', 'nukitram', '[email protected] ', '095827013', 'surin ')
เมอลองใชค าสง Select * From Cus_tomer; จะพบขอมลทเราได Insert ลงไป
Page 155
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
ค าสงการเพมขอมลลงใน Table ดวย ฟงกชน Mysql บน PHP
รปแบบกเหมอนบน Mysql ครบ มาดตวอยางกนหนอยครบ
Sample1.php
<html> <body> <? $host="localhost"; $username=""; $password=""; $db="Data_customer"; $tb="Cus_tomer"; $connect= mysql_connect( $host,$username,$password); if ( !$connect ) { echo "ตดตอกบฐานขอมล Mysql ไมได "; exit(); } else { mysql_select_db($db) or die("เลอกฐานขอมลไมได"); $insert_table=mysql_query("INSERT INTO $tb (id, password, date, name, surname, email, tel, address) values('450002', '002', '15/10/45', 'นายวระชย ', 'นกจรมย', '[email protected] ', '095827013', 'สรนทร ')") or die ("insert ขอมลลง Table ไมได "); if(!$insert_table) { mysql_die(); } else {
Page 156
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
echo"<br>Insert ขอมลลง Tables เรยบรอยแลว"; } } mysql_close($connect); ?> </body> </html>
Out Put
เมอลองใชค าสง Select * From Cus_tomer; จะพบขอมลทเราได Insert ลงไป
ตอนท 6 การแสดงคณสมบตอน ๆ ของตาราง
ออกแบบฐานขอมลดงน Create Database Data_customer;
Page 157
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
CREATE TABLE cus_tomer ( id int(6) NOT NULL, password varchar(30) NOT NULL, date varchar(30) NOT NULL, name varchar(30) NOT NULL, surname varchar(30) NOT NULL, email varchar(40) NOT NULL, tel varchar(30), address varchar(80) NOT NULL, PRIMARY KEY (id) ); Sample1.php เปนการแสดงชอ ตารางจากฐานขอมล
<html> <body> <? $host="localhost"; $username=""; $password=""; $db="Data_customer"; mysql_connect( $host,$username,$password) or die ("ตดตอกบฐานขอมล Mysql ไมได ");
mysql_select_db($db) or die("เลอกฐานขอมลไมได"); /* ท าการเลอกฐานขอมลกอน */
$db_query=mysql_list_tables($db); /* ใชฟงกชน mysql_list_tables เพอหาตาราง */
$num_rows=mysql_numrows($db_query); /* นบจ านวนตารางทพบ */
echo" ฐานขอมล <b>$db</b> มตาราง <b>$num_rows</b> ตาราง ดงน <br>"; $a=0; while($a < $num_rows ) { $tb[$a]=mysql_tablename($db_query,$a);
Page 158
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
echo"<br> $tb[$a]"; $a++; } mysql_close(); ?> </body> </html>
Out Put
Sample2.php เปนการแสดงชอ จ านวน และประเภทของ Fileds
<html> <body> <? $host="localhost"; $username=""; $password=""; $db="Data_customer"; $tb="Cus_tomer"; mysql_connect( $host,$username,$password) or die ("ตดตอกบฐานขอมล Mysql ไมได ");
mysql_select_db($db) or die("เลอกฐานขอมลไมได"); /* ท าการเลอกฐานขอมลกอน */
$sql="Select * From $tb";
Page 159
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
$db_query=mysql_db_query($db,$sql);
$num_fields=mysql_num_fields($db_query); /* นบ Fileds ทพบ */
echo" ตาราง <b>$tb</b> จ านวน Filed เทากบ <b>$num_fields</b> ดงน <br>"; $a=0; while($a < $num_fields ) { $fields_name[$a]=mysql_field_name($db_query,$a); $fields_type[$a]=mysql_field_type($db_query,$a); echo"<br><b> $fields_name[$a] </b> ชนดของขอมลเปน <b> $fields_type[$a] </b>"; $a++; } mysql_close(); ?> </body> </html>
Out Put
Sample3.php เปนการแสดงจ านวน Reccord ( ในฐานขอมล ผมไดท าการเพมขอมลเรยบรอยแลวครบ สามารถศกษาไดจากหวขอทผานมา )
Page 160
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
<html> <body> <? $host="localhost"; $username=""; $password=""; $db="Data_customer"; $tb="Cus_tomer"; mysql_connect( $host,$username,$password) or die ("ตดตอกบฐานขอมล Mysql ไมได ");
mysql_select_db($db) or die("เลอกฐานขอมลไมได"); /* ท าการเลอกฐานขอมลกอน */
$sql="Select * From $tb";
$db_query=mysql_db_query($db,$sql);
$num_rows=mysql_num_rows($db_query); /* นบ Reccord ทพบ */
echo" ตาราง <b>$tb</b> จ านวน Reccord เทากบ <b>$num_rows</b><br>";
mysql_close(); ?> </body> </html>
Out Put
Page 161
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
ตอนท 7 การน าขอมลจากตารางมาแสดง
ออกแบบฐานขอมลดงน Create Database Data_customer; CREATE TABLE cus_tomer ( id int(6) NOT NULL, password varchar(30) NOT NULL, date varchar(30) NOT NULL, name varchar(30) NOT NULL, surname varchar(30) NOT NULL, email varchar(40) NOT NULL, tel varchar(30), address varchar(80) NOT NULL, PRIMARY KEY (id) );
Sample1.php
<html> <body> <? $host="localhost"; $username=""; $password=""; $db="Data_customer"; $tb="Cus_tomer"; mysql_connect( $host,$username,$password) or die ("ตดตอกบฐานขอมล Mysql ไมได ");
mysql_select_db($db) or die("เลอกฐานขอมลไมได"); /* ท าการเลอกฐานขอมลกอน */
$sql="Select * From $tb";
$db_query=mysql_db_query($db,$sql);
Page 162
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
$num_rows=mysql_num_rows($db_query); /* นบ Reccord ทพบ */
?> <table width="91%" border="1" align="center"> <tr> <td width="8%"> <div align="center">Id</div> </td> <td width="11%"> <div align="center">Password</div> </td> <td width="10%"> <div align="center">Date</div> </td> <td width="12%"> <div align="center">name</div> </td> <td width="11%"> <div align="center">Surname</div> </td> <td width="25%"> <div align="center">email</div> </td> <td width="11%"> <div align="center">Tel</div> </td> <td width="12%"> <div align="center">Address</div> </td> </tr> </table> <?
Page 163
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
$a=0; while($a < $num_rows) { $result = mysql_fetch_array($db_query); $id=$result[id]; $password=$result[password]; $date=$result[date]; $name=$result[name]; $surname=$result[surname]; $email=$result[email]; $tel=$result[tel]; $address=$result[address]; ?> <table width="91%" border="1" align="center"> <tr> <td width="8%"> <div align="center"><?echo"$id";?></div> </td> <td width="11%"> <div align="center"> <?echo"$password";?> </div> </td> <td width="10%"> <?echo"$date";?> </td> <td width="12%"> <?echo"$name";?> </td> <td width="11%"> <?echo"$surname";?>
Page 164
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
</td> <td width="25%"> <?echo"$email";?> </td> <td width="11%"> <?echo"$tel";?> </td> <td width="12%"> <?echo"$address";?> </td> </tr> </table> <? $a++; } echo"<center><br>จ านวน Reccord = $num_rows</center>"; mysql_close(); ?> </body> </html>
Out Put
Page 165
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
ตอนท 8 การเพมขอมลลงในตาราง
ออกแบบฐานขอมลดงน Create Database Data_customer; CREATE TABLE cus_tomer ( id int(6) NOT NULL, password varchar(30) NOT NULL, date varchar(30) NOT NULL, name varchar(30) NOT NULL, surname varchar(30) NOT NULL, email varchar(40) NOT NULL, tel varchar(30), address varchar(80) NOT NULL, PRIMARY KEY (id) );
ขนท 1 ออกแบบ From เพอรบคา
Sample1.php
<html> <body bgcolor="#FFFFFF"> <form name="form1" method="post" action="sample2.php"> <p>id <input type="text" name="id"> <br> password <input type="password" name="pass"> <br> date <input type="text" name="date"> <br> name
Page 166
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
<input type="text" name="name"> <br> surname <input type="text" name="surname"> <br> email <input type="text" name="email"> <br> tel <input type="text" name="tel"> <br> address <textarea name="address" cols="35" rows="4"></textarea> </p> <p> <input type="submit" name="Submit" value="บนทกขอมล"> <input type="reset" name="Submit2" value="Clear"> </p> </form> </body> </html>
Page 167
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
Out Put
ขนท 2 ออกแบบ From เพอบนทกขอมลลง Mysql
Sample2.php
<html> <body> <? $host="localhost"; $username=""; $password=""; $db="Data_customer"; $tb="Cus_tomer"; $connect= mysql_connect( $host,$username,$password) or die ("ตดตอกบฐานขอมล Mysql ไมได ");
mysql_select_db($db) or die("เลอกฐานขอมลไมได");
$sql="select * from $tb where id=$id";
Page 168
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
$db_query=mysql_db_query($db,$sql);
$num_rows=mysql_num_rows($db_query);
if($num_rows != 0) /* ตรวจสอบวา Id นมอยหรอยง */ { echo"<center><br>รหส Id นมอยแลว </center>"; exit(); } else { mysql_query("INSERT INTO $tb (id, password, date, name, surname, email, tel, address) values('$id', '$pass', '$date', '$name ', '$surname', '$email', '$tel', '$address ')") or die ("Add ขอมลลง Table ไมได "); echo "Add ขอมลลง Table เสรจเรยบรอยแลว "; } mysql_close($connect); ?> </body> </html>
Out Put
Page 169
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
เมอลองใชค าสง Select * from Cus_tomer where id=450011; จะแสดงขอมลทเราไดท าการ add ลงไป
ตอนท 9 การคนหาขอมลจากตาราง
ออกแบบฐานขอมลดงน Create Database Data_customer; CREATE TABLE cus_tomer ( id int(6) NOT NULL, password varchar(30) NOT NULL, date varchar(30) NOT NULL, name varchar(30) NOT NULL, surname varchar(30) NOT NULL, email varchar(40) NOT NULL, tel varchar(30), address varchar(80) NOT NULL, PRIMARY KEY (id) );
Sample1.php
<html> <body bgcolor="#FFFFFF"> <form name="form1" method="post" action="sample1.php"> ชอทตองการคนหา
Page 170
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
<input type="text" name="keyword" value="<? echo"$keyword"; ?>"> จาก Filed <select name="fields"> <option value="<?echo "$fields"; ?>"><?echo "$fields"; ?></option> <option value="id">id</option> <option value="password">password</option> <option value="date">date</option> <option value="name">name</option> <option value="surname">surname</option> <option value="email">email</option> <option value="tel">tel</option> <option value="address">address</option> </select> <input type="submit" name="Submit" value="คนหา"> </form> <hr> <? if (empty($keyword) or empty($fields)) { echo"กรณาเลอกรายการคนหา ดวยครบ"; exit(); } else { $host="localhost"; $username=""; $password=""; $db="Data_customer"; $tb="Cus_tomer"; mysql_connect( $host,$username,$password) or die ("ตดตอกบฐานขอมล Mysql ไมได ");
mysql_select_db($db) or die("เลอกฐานขอมลไมได"); /* ท าการเลอกฐานขอมลกอน */
Page 171
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
$sql="SELECT * FROM $tb where $fields like '%$keyword%'";
$db_query=mysql_db_query($db,$sql);
$num_rows=mysql_num_rows($db_query); /* นบ Reccord ทพบ */ if(empty($num_rows)) /* ตรวจสอบวามอยหรอยง */ { echo"<center><br>ไมพบขอมล <b>$keyword</b> จาก Filed <b>$fields <b> </center>"; exit(); } else { ?> <div align="center"><? echo " แสดงรายการคนหา <b>$keyword</b> จาก Field <b>$fields</b> พบ <b>$num_rows</b> Reccord "; ?><br><br> </div> <table width="91%" border="1" align="center"> <tr> <td width="8%"> <div align="center">Id</div> </td> <td width="11%"> <div align="center">Password</div> </td> <td width="10%"> <div align="center">Date</div> </td> <td width="12%"> <div align="center">name</div> </td> <td width="11%"> <div align="center">Surname</div>
Page 172
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
</td> <td width="25%"> <div align="center">email</div> </td> <td width="11%"> <div align="center">Tel</div> </td> <td width="12%"> <div align="center">Address</div> </td> </tr> </table> <?
$a=0; while($a < $num_rows) { $result = mysql_fetch_array($db_query); $id=$result[id]; $password=$result[password]; $date=$result[date]; $name=$result[name]; $surname=$result[surname]; $email=$result[email]; $tel=$result[tel]; $address=$result[address]; ?> <table width="91%" border="1" align="center"> <tr> <td width="8%"> <div align="center"><?echo"$id";?></div> </td>
Page 173
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
<td width="11%"> <div align="center"> <?echo"$password";?> </div> </td> <td width="10%"> <?echo"$date";?> </td> <td width="12%"> <?echo"$name";?> </td> <td width="11%"> <?echo"$surname";?> </td> <td width="25%"> <?echo"$email";?> </td> <td width="11%"> <?echo"$tel";?> </td> <td width="12%"> <?echo"$address";?> </td> </tr> </table>
<? $a++; } }
Page 174
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
} ?> </body> </html>
Out Put
ตอนท 10 การแกขอมลในตาราง
ออกแบบฐานขอมลดงน Create Database Data_customer; CREATE TABLE cus_tomer ( id int(6) NOT NULL, password varchar(30) NOT NULL, date varchar(30) NOT NULL, name varchar(30) NOT NULL, surname varchar(30) NOT NULL,
Page 175
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
email varchar(40) NOT NULL, tel varchar(30), address varchar(80) NOT NULL, PRIMARY KEY (id) ); ขนท 1 เราตองออกแบบ From ใวส าหรบเลอกขอมลทจะแกไข อาจจะมาจากการ แสดงขอมลทงหมด จากการคนหา หรอ อน ๆ แตในตวอยางนผมไดออกแบบมากจากการคนหา
Sample1.php
<html> <body bgcolor="#FFFFFF"> <form name="form1" method="post" action="sample1.php"> ชอทตองการคนหา <input type="text" name="keyword" value="<? echo"$keyword"; ?>"> จาก Filed <select name="fields"> <option value="<?echo "$fields"; ?>"> <?echo "$fields"; ?> </option> <option value="id">id</option> <option value="password">password</option> <option value="date">date</option> <option value="name">name</option> <option value="surname">surname</option> <option value="email">email</option> <option value="tel">tel</option> <option value="address">address</option> </select> <input type="submit" name="Submit" value="คนหา"> </form> <hr>
Page 176
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
<? if (empty($keyword) or empty($fields)) { echo"กรณาเลอกรายการคนหา ดวยครบ"; exit(); } else { $host="localhost"; $username=""; $password=""; $db="Data_customer"; $tb="Cus_tomer"; mysql_connect( $host,$username,$password) or die ("ตดตอกบฐานขอมล Mysql ไมได ");
mysql_select_db($db) or die("เลอกฐานขอมลไมได"); /* ท าการเลอกฐานขอมลกอน */
$sql="SELECT * FROM $tb where $fields like '%$keyword%'";
$db_query=mysql_db_query($db,$sql);
$num_rows=mysql_num_rows($db_query); /* นบ Reccord ทพบ */ if(empty($num_rows)) /* ตรวจสอบวามอยหรอยง */ { echo"<center><br>ไมพบขอมล <b>$keyword</b> จาก Filed <b>$fields <b> </center>"; exit(); } else { ?> <div align="center"> <? echo " แสดงรายการคนหา <b>$keyword</b> จาก Filed <b>$fields</b> พบ <b>$num_rows</b> Reccord "; ?>
Page 177
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
<br> <br> </div> <table width="91%" border="1" align="center"> <tr> <td width="8%"> <div align="center">Id</div> </td> <td width="9%"> <div align="center">Password</div> </td> <td width="10%"> <div align="center">Date</div> </td> <td width="13%"> <div align="center">name</div> </td> <td width="12%"> <div align="center">Surname</div> </td> <td width="20%"> <div align="center">email</div> </td> <td width="12%"> <div align="center">Tel</div> </td> <td width="12%"> <div align="center">Address</div> </td> <td width="4%"> <div align="center">edit</div>
Page 178
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
</td> </tr> </table> <?
$a=0; while($a < $num_rows) { $result = mysql_fetch_array($db_query); $id=$result[id]; $password=$result[password]; $date=$result[date]; $name=$result[name]; $surname=$result[surname]; $email=$result[email]; $tel=$result[tel]; $address=$result[address]; ?> <table width="91%" border="1" align="center"> <tr> <td width="8%"> <div align="center"> <?echo"$id";?> </div> </td> <td width="9%"> <div align="center"> <?echo"$password";?> </div> </td> <td width="10%"> <?echo"$date";?>
Page 179
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
</td> <td width="13%"> <?echo"$name";?> </td> <td width="12%"> <?echo"$surname";?> </td> <td width="20%"> <?echo"$email";?> </td> <td width="12%"> <?echo"$tel";?> </td> <td width="12%"> <?echo"$address";?> </td> <td width="4%"> <div align="center"><a href="Sample2.php?id=<?echo"$id"; ?>">edit</a></div> </td> </tr> </table> <? $a++; } }
} ?> </body> </html>
Page 180
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
Out Put
ขนท 2 ท า From เพอรบคาทจะแกไข Sample2.php
<html> <body bgcolor="#FFFFFF"> <? $host="localhost"; $username=""; $password=""; $db="Data_customer"; $tb="Cus_tomer"; $connect= mysql_connect( $host,$username,$password) or die ("ตดตอกบฐานขอมล Mysql ไมได ");
mysql_select_db($db) or die("เลอกฐานขอมลไมได");
$sql="select * from $tb where id=$id";
$db_query=mysql_db_query($db,$sql);
$result = mysql_fetch_array($db_query); $id=$result[id]; $password=$result[password]; $date=$result[date]; $name=$result[name]; $surname=$result[surname];
Page 181
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
$email=$result[email]; $tel=$result[tel]; $address=$result[address];
?> <form name="form1" method="post" action="sample3.php"> <p>แกไขขอมล<br> id <?echo"<b>$id</b>";?> <input type="hidden" name="id" value="<? echo"$id"; ?>"> <br> password <input type="password" name="pass" value="<? echo"$password";?>"> <br> date <input type="text" name="date" value="<? echo"$date";?>"> <br> name <input type="text" name="name" value="<? echo"$name";?>"> <br> surname <input type="text" name="surname" value="<? echo"$surname";?>"> <br> email <input type="text" name="email" value="<? echo"$email";?>"> <br> tel <input type="text" name="tel" value="<? echo"$tel";?>"> <br> address <textarea name="address" cols="35" rows="4"><? echo"$address";?></textarea> </p>
Page 182
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
<p> <input type="submit" name="Submit" value="บนทกขอมล"> <input type="reset" name="Submit2" value="Clear"> </p> </form> <? mysql_close($connect); ?> </body> </html>
Out Put
ขนท 3 ท า From เพอแกไขขอมล
Page 183
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
Sample3.php
<? $host="localhost"; $username=""; $password=""; $db="Data_customer"; $tb="Cus_tomer"; $connect= mysql_connect( $host,$username,$password) or die ("ตดตอกบฐานขอมล Mysql ไมได ");
mysql_select_db($db) or die("เลอกฐานขอมลไมได");
$sql="update $tb set password='$pass',date='$date',name='$name',surname='$surname',email='$email',tel='$tel',address='$address' where id=$id";
$db_query=mysql_db_query($db,$sql);
echo "แกไขขอมล Id=$id เรยบรอยแลว ";
mysql_close();
?>
Out Put
Page 184
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
ตอนท 11 การลบขอมลในตางราง
ออกแบบฐานขอมลดงน Create Database Data_customer; CREATE TABLE cus_tomer ( id int(6) NOT NULL, password varchar(30) NOT NULL, date varchar(30) NOT NULL, name varchar(30) NOT NULL, surname varchar(30) NOT NULL, email varchar(40) NOT NULL, tel varchar(30), address varchar(80) NOT NULL, PRIMARY KEY (id) );
ขนท 1 ท า From เพอ เลอกรายการทจะลบ Sample1.php <html> <body bgcolor="#FFFFFF"> <form name="form1" method="post" action="sample1.php"> ชอทตองการคนหา <input type="text" name="keyword" value="<? echo"$keyword"; ?>"> จาก Filed <select name="fields"> <option value="<?echo "$fields"; ?>"> <?echo "$fields"; ?> </option> <option value="id">id</option> <option value="password">password</option> <option value="date">date</option> <option value="name">name</option>
Page 185
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
<option value="surname">surname</option> <option value="email">email</option> <option value="tel">tel</option> <option value="address">address</option> </select> <input type="submit" name="Submit" value="คนหา"> </form> <hr> <? if ($keyword=="" || $fields=="") { echo"กรณาเลอกรายการคนหา ดวยครบ"; exit(); } else { $host="localhost"; $username=""; $password=""; $db="Data_customer"; $tb="Cus_tomer"; mysql_connect( $host,$username,$password) or die ("ตดตอกบฐานขอมล Mysql ไมได ");
mysql_select_db($db) or die("เลอกฐานขอมลไมได"); /* ท าการเลอกฐานขอมลกอน */
$sql="SELECT * FROM $tb where $fields like '%$keyword%' order by id ASC";
$db_query=mysql_db_query($db,$sql);
$num_rows=mysql_num_rows($db_query); /* นบ Reccord ทพบ */ if(empty($num_rows)) /* ตรวจสอบวามอยหรอยง */ { echo"<center><br>ไมพบขอมล <b>$keyword</b> จาก Filed <b>$fields <b> </center>";
Page 186
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
exit(); } else { ?> <div align="center"> <? echo " แสดงรายการคนหา <b>$keyword</b> จาก Filed <b>$fields</b> พบ <b>$num_rows</b> Reccord "; ?> <br> <br> </div> <table width="91%" border="1" align="center"> <tr> <td width="8%"> <div align="center">Id</div> </td> <td width="9%"> <div align="center">Password</div> </td> <td width="10%"> <div align="center">Date</div> </td> <td width="13%"> <div align="center">name</div> </td> <td width="12%"> <div align="center">Surname</div> </td> <td width="20%"> <div align="center">email</div> </td>
Page 187
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
<td width="12%"> <div align="center">Tel</div> </td> <td width="12%"> <div align="center">Address</div> </td> <td width="4%"> <div align="center">ลบ</div> </td> </tr> </table> <?
$a=0; while($a < $num_rows) { $result = mysql_fetch_array($db_query); $id=$result[id]; $password=$result[password]; $date=$result[date]; $name=$result[name]; $surname=$result[surname]; $email=$result[email]; $tel=$result[tel]; $address=$result[address]; ?> <table width="91%" border="1" align="center"> <tr> <td width="8%"> <div align="center"> <?echo"$id";?> </div>
Page 188
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
</td> <td width="9%"> <div align="center"> <?echo"$password";?> </div> </td> <td width="10%"> <?echo"$date";?> </td> <td width="13%"> <?echo"$name";?> </td> <td width="12%"> <?echo"$surname";?> </td> <td width="20%"> <?echo"$email";?> </td> <td width="12%"> <?echo"$tel";?> </td> <td width="12%"> <?echo"$address";?> </td> <td width="4%"> <div align="center"><a href="Sample2.php?id=<?echo"$id"; ?>">ลบ</a></div> </td> </tr> </table> <? $a++;
Page 189
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
} }
} ?> </body> </html>
Out Put
ขนท 2 ออกแบบ From เพอลบขอมล
Sample2.php
<? $host="localhost"; $username=""; $password=""; $db="Data_customer"; $tb="Cus_tomer"; $connect= mysql_connect( $host,$username,$password) or die ("ตดตอกบฐานขอมล Mysql ไมได ");
mysql_select_db($db) or die("เลอกฐานขอมลไมได");
$sql="delete from $tb where id=$id";
$db_query=mysql_db_query($db,$sql);
Page 190
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
echo "ลบขอมล Id=$id เรยบรอยแลว ";
mysql_close();
?>
Out Put
ตอนท 12 Require เพอใชในการตดตอกบฐานขอมล
หากเราเขยนโปรแกรมทมขนาดใหญ ๆ และหลาย ๆ หนา และทก ๆ หนามการ เรยกใชงาน ฐานขอมล ราจะตองเขยนค าสงทมการตดตอกบฐานขอมลทก ๆ หนาทมการเรยกใชงานซงไมมความจ าเปนอะไรเลยทเราจะตองท าแบบนน เพราะมนจะเปนการยงยากเมอเราไดท าการเปลยนแปลงโครงสรางในการตดตอฐานขอมล จะตองตามแกไปทก ๆ หนาซงเปนปญหาทผมกเคยเจอเหมอนกน แต php ไดเตยมฟงกชน Require ใวส าหรบปญหานแลวครบ
ในหวขอนเราจะไดศกษาเพอการน าไปใชงานจรงครบ
รปแบบ
Require('file-dbconnect');
ออกแบบฐานขอมลดงน Create Database Data_customer; CREATE TABLE cus_tomer ( id int(6) NOT NULL, password varchar(30) NOT NULL, date varchar(30) NOT NULL, name varchar(30) NOT NULL,
Page 191
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
surname varchar(30) NOT NULL, email varchar(40) NOT NULL, tel varchar(30), address varchar(80) NOT NULL, PRIMARY KEY (id) );
ขนท 1 สรางไฟลทมค าสงตดตอกบฐานขอมล ในทนผมสรางชอเปน dbconnect.php
dbconnect.php
<? $host="localhost"; $username=""; $password=""; $db="Data_customer"; $tb="Cus_tomer"; mysql_connect( $host,$username,$password) or die ("ตดตอกบฐานขอมล Mysql ไมได "); mysql_select_db($db) or die("เลอกฐานขอมลไมได"); ?>
ขนท 2 จะเปนการน าไปใชงาน เชมตองการแสดงฐานขอมลจากฐานขอมล
Sample1.php
<html> <body> <? Require('dbconnect.php');
$sql="Select * From $tb";
$db_query=mysql_db_query($db,$sql);
Page 192
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
$num_rows=mysql_num_rows($db_query); /* นบ Reccord ทพบ */
?> <table width="91%" border="1" align="center"> <tr> <td width="8%"> <div align="center">Id</div> </td> <td width="11%"> <div align="center">Password</div> </td> <td width="10%"> <div align="center">Date</div> </td> <td width="12%"> <div align="center">name</div> </td> <td width="11%"> <div align="center">Surname</div> </td> <td width="25%"> <div align="center">email</div> </td> <td width="11%"> <div align="center">Tel</div> </td> <td width="12%"> <div align="center">Address</div> </td> </tr> </table> <?
Page 193
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
$a=0; while($a < $num_rows) { $result = mysql_fetch_array($db_query); $id=$result[id]; $password=$result[password]; $date=$result[date]; $name=$result[name]; $surname=$result[surname]; $email=$result[email]; $tel=$result[tel]; $address=$result[address]; ?> <table width="91%" border="1" align="center"> <tr> <td width="8%"> <div align="center"><?echo"$id";?></div> </td> <td width="11%"> <div align="center"> <?echo"$password";?> </div> </td> <td width="10%"> <?echo"$date";?> </td> <td width="12%"> <?echo"$name";?> </td> <td width="11%"> <?echo"$surname";?>
Page 194
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
</td> <td width="25%"> <?echo"$email";?> </td> <td width="11%"> <?echo"$tel";?> </td> <td width="12%"> <?echo"$address";?> </td> </tr> </table> <? $a++; } echo"<center><br>จ านวน Reccord = $num_rows</center>"; mysql_close(); ?> </body> </html
Out Put
Page 195
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
ตอนท 13 การแสดงผลขอมลแบงออกเปนหนา ๆ
ออกแบบฐานขอมลดงน Create Database member; CREATE TABLE member ( id int(4) NOT NULL auto_increment, user varchar(30) NOT NULL, name varchar(50) NOT NULL, email varchar(50) NOT NULL, tel varchar(50) NOT NULL, PRIMARY KEY (id) ); Sample1.php <html> <head> <body bgcolor="#FFFFFF"> <br> <table width="72%" border="1" align="center" cellspacing="0" cellpadding="0" height="23"> <tr> <td width="8%"> <div align="center">id</div> </td> <td width="14%"> <div align="center">user</div> </td> <td width="30%"> <div align="center">name</div> </td> <td width="26%"> <div align="center">email</div> </td> <td width="22%">
Page 196
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
<div align="center">tel</div> </td> </tr> </table> <? $host="localhost"; $username=""; $pass_word=""; $db="member"; mysql_connect( $host,$username,$pass_word) or die ("ตดตอกบฐานขอมล Mysql ไมได "); mysql_select_db($db) or die("เลอกฐานขอมลไมได");
$sql = "select * From member "; /* ตงคา แสดงผลตอหนา $Per_Page */
$Per_Page =2; if(!$Page) $Page=1;
$Prev_Page = $Page-1; $Next_Page = $Page+1;
$result = mysql_query($sql); $Page_start = ($Per_Page*$Page)-$Per_Page; $Num_Rows = mysql_num_rows($result);
if($Num_Rows<=$Per_Page) $Num_Pages =1; else if(($Num_Rows % $Per_Page)==0) $Num_Pages =($Num_Rows/$Per_Page) ; else $Num_Pages =($Num_Rows/$Per_Page) +1;
Page 197
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
$Num_Pages = (int)$Num_Pages;
if(($Page>$Num_Pages) || ($Page<0)) print "<center><b>จ านวน $Page มากกวา $Num_Pages ยงไมมขอความ<b></center>"; $sql .= " Where 1 Order by id Desc LIMIT $Page_start , $Per_Page"; //สวนแสดงผล $result = mysql_query($sql); While($row= mysql_fetch_array($result)){ $id = $row["id"]; $user = $row["user"]; $name = $row["name"]; $email = $row["email"]; $tel = $row["tel"]; ?> <table width="72%" border="1" align="center" cellspacing="0" cellpadding="0" height="23"> <tr> <td width="8%"> <div align="center"> <?= $id;?> </div> </td> <td width="14%"> <?= $user;?> </td> <td width="30%"> <?= $name;?> </td> <td width="27%"> <?= $email;?> </td> <td width="21%"> <?= $tel;?>
Page 198
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
</td> </tr> </table> <?}?> <div align="center"><br> มจ านวน Recored ทงหมด <?= $Num_Rows;?> รวมทงหมด : <b> <?=$Num_Pages;?> </b> หนา : <?/* สรางปมยอนกลบ */ if($Prev_Page) echo " <a href='$PHP_SELF?Page=$Prev_Page'><< ยอนกลบ </a>"; for($i=1; $i<$Num_Pages; $i++){ if($i != $Page) echo "[<a href='$PHP_SELF?Page=$i'>$i</a>]"; else echo "<b> $i </b>"; } /*สรางปมเดนหนา */ if($Page!=$Num_Pages) echo "<a href ='$PHP_SELF?Page=$Next_Page'> หนาถดไป>> </a>"; ?> </div> </body> </html
Page 199
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
Out Put
ตอนท 14 การ uploads รปภาพลงฐานขอมล Mysql
ออกแบบฐานขอมลดงน Create Database picture; CREATE TABLE picture ( id int(3) NOT NULL auto_increment, images longblob NOT NULL, PRIMARY KEY (id) );
ขนท 1 ท า From เพอ เลอกไฟลทจะ uploads Sample1.php <html> <head> <title>Un title page</title> <meta http-equiv="Content-Type" content="text/html; charset=windows-874"> <style type="text/css"> <!-- body { margin: 0px 0px; padding: 0px 0px} a:link { color: #005CA2; text-decoration: none} a:visited { color: #005CA2; text-decoration: none} a:active { color: #0099FF; text-decoration: underline}
Page 200
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
a:hover { color: #0099FF; text-decoration: underline} --> </style> </head> <body bgcolor="#FFFFFF"> <br> <form method="POST" action="sample2.php" enctype ="multipart/form-data"> <font face="MS Sans Serif" size="2"> แกไข Logo</font> <input type="file" name="files"> <input type="submit" name="Submit" value="uploads"> </form> </body> </html>
Out Put
ขนท 2 ออกแบบ From เพอ uploads ไฟล
Sample2.php
<? $host="localhost"; $username=""; $pass_word=""; $db="picture"; mysql_connect( $host,$username,$pass_word) or die ("ตดตอกบฐานขอมล Mysql ไมได "); mysql_select_db($db) or die("เลอกฐานขอมลไมได");
Page 201
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
$filename =$HTTP_POST_FILES['files']['name']; $filetempname =$HTTP_POST_FILES['files']['tmp_name']; $filesize =$HTTP_POST_FILES['files']['size']; $fp = fopen($filetempname,"r"); $data = fread($fp,filesize($filetempname)); fclose($fp); $data = addslashes($data); $sql="insert into picture(images) values ('$data')"; $db_query=mysql_db_query($db,$sql); echo"Uploads รปภาพเรยบรอยแลว"; ?>
Out Put
ขนท 3 ออกแบบ From เพอ ดงรปภาพมาแสดง
<? $host="localhost"; $username=""; $pass_word=""; $db="picture"; mysql_connect( $host,$username,$pass_word) or die ("ตดตอกบฐานขอมล Mysql ไมได "); mysql_select_db($db) or die("เลอกฐานขอมลไมได"); $sql = "select * from picture where id=1"; // หากตองการดงเฉพาะ Reccord ใด Record หนง ใหใชค าสง where id='$ตวแปร' $result = mysql_query($sql) or die("ไมสามารถ query ขอมลได");
Page 202
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
$images = mysql_fetch_array($result); echo $images['images'] ?>
Sample3.php
การสราง Function เพอลดปรมาณการเขยน Coding
เปนการสราง Function เพอลดปรมาณการเขยน Coding มาดตวอยางกนหนอยนะครบ ชอฐานขอมล mydatabase
รายละเอยดของ Table
CREATE TABLE color ( color_no int(2) NOT NULL default '0',
Page 203
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
color_name varchar(10) NOT NULL default '' ) TYPE=MyISAM;
INSERT INTO color VALUES (1, 'สด า'); INSERT INTO color VALUES (13, 'สครม'); INSERT INTO color VALUES (2, 'สขาว'); INSERT INTO color VALUES (3, 'สฟา'); INSERT INTO color VALUES (4, 'สชมพ'); INSERT INTO color VALUES (5, 'สเหลอง'); INSERT INTO color VALUES (6, 'สเขยว'); INSERT INTO color VALUES (7, 'สน าตาล'); INSERT INTO color VALUES (8, 'สสม'); INSERT INTO color VALUES (9, 'สน าเงน'); INSERT INTO color VALUES (10, 'สแดง'); INSERT INTO color VALUES (11, 'สเทา'); INSERT INTO color VALUES (12, 'สมวง'); connect.php
<? $host="localhost"; $username=""; $pass_word=""; $db="mydatabase"; $tb="color"; mysql_connect( $host,$username,$pass_word) or die ("ตดตอกบฐานขอมล Mysql ไมได "); mysql_select_db($db) or die("เลอกฐานขอมลไมได"); ?> function.php <? //============== insert ============== function insert($field,$value,$table) {
Page 204
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
$sql = "INSERT INTO $table ($field) VALUES ($value)"; $result= mysql_query($sql); return $result; }
//============== delete ============== function delete($table,$condition) { $sql ="delete from $table $condition"; $re = mysql_query($sql); return $result; } //=============== update ================== function update($table,$command,$condition) { $sql = "UPDATE $table SET $command $condition"; $result = mysql_query($sql); return $result; }
//=============== select ================== function select($table,$condition) { $sql = "select * from $table $condition"; $dbquery = mysql_query($sql); $result= mysql_fetch_array($dbquery); return $result; }
//=============== Numrow ================== function num_record($table,$condition) {
Page 205
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
$sql = "select * from $table $condition"; $dbquery = mysql_query($sql); $num_rows = mysql_num_rows($dbquery); return $num_rows; }
//=============== Math Value================= function math($MathRex,$field,$table,$condition) { $sql = "select $MathRex($field) as $field from $table $condition"; $dbquery = mysql_query($sql); $result= mysql_fetch_array($dbquery); $value=$result[$field]; return $value; }
?> Sample1.php ( Insert Record ) <? require("connect.php"); require("function.php"); insert("color_no,color_name","'14','เขยนออน'","color"); ?> Sample2.php ( Update Record ) <? require("connect.php"); require("function.php"); update("color","color_no='15',color_name='ด า ด า'","where color_no='14'"); ?>
Page 206
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
Sample3.php ( Select Record )
<? require("connect.php"); require("function.php"); $result=select("color","where color_no='15'"); echo $result["color_name"]; ?>
Sample4.php ( Delete Record )
<? require("connect.php"); require("function.php"); delete("color","where color_no='15'"); ?> Sample5.php ( Num Record )
<? require("connect.php"); require("function.php"); $result=num_record("color","where 1"); echo $result; ?> Sample6.php ( Math Value คาทางคณตศาสตร เชน max,min,sum,count,avg,cos,sin)
<? require("connect.php"); require("function.php"); $result=math("sum","color_no","color","where 1"); echo $result; ?>
Page 207
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
เทคนคเลก ๆ นอย ๆ ผมไมหวงครบ เอาไปใชกนตามสบายเลยครบ
การสราง Function เพอลดปรมาณการเขยน Coding
เปนการสราง Function เพอลดปรมาณการเขยน Coding มาดตวอยางกนหนอยนะครบ ชอฐานขอมล mydatabase
รายละเอยดของ Table
CREATE TABLE color ( color_no int(2) NOT NULL default '0', color_name varchar(10) NOT NULL default '' ) TYPE=MyISAM;
INSERT INTO color VALUES (1, 'สด า'); INSERT INTO color VALUES (13, 'สครม'); INSERT INTO color VALUES (2, 'สขาว'); INSERT INTO color VALUES (3, 'สฟา'); INSERT INTO color VALUES (4, 'สชมพ'); INSERT INTO color VALUES (5, 'สเหลอง'); INSERT INTO color VALUES (6, 'สเขยว'); INSERT INTO color VALUES (7, 'สน าตาล'); INSERT INTO color VALUES (8, 'สสม'); INSERT INTO color VALUES (9, 'สน าเงน'); INSERT INTO color VALUES (10, 'สแดง'); INSERT INTO color VALUES (11, 'สเทา'); INSERT INTO color VALUES (12, 'สมวง'); connect.php
<? $host="localhost"; $username=""; $pass_word="";
Page 208
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
$db="mydatabase"; $tb="color"; mysql_connect( $host,$username,$pass_word) or die ("ตดตอกบฐานขอมล Mysql ไมได "); mysql_select_db($db) or die("เลอกฐานขอมลไมได"); ?> function.php <? //============== insert ============== function insert($field,$value,$table) { $sql = "INSERT INTO $table ($field) VALUES ($value)"; $result= mysql_query($sql); return $result; }
//============== delete ============== function delete($table,$condition) { $sql ="delete from $table $condition"; $re = mysql_query($sql); return $result; } //=============== update ================== function update($table,$command,$condition) { $sql = "UPDATE $table SET $command $condition"; $result = mysql_query($sql); return $result; }
//=============== select ================== function select($table,$condition)
Page 209
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
{ $sql = "select * from $table $condition"; $dbquery = mysql_query($sql); $result= mysql_fetch_array($dbquery); return $result; }
//=============== Numrow ================== function num_record($table,$condition) { $sql = "select * from $table $condition"; $dbquery = mysql_query($sql); $num_rows = mysql_num_rows($dbquery); return $num_rows; }
//=============== Math Value================= function math($MathRex,$field,$table,$condition) { $sql = "select $MathRex($field) as $field from $table $condition"; $dbquery = mysql_query($sql); $result= mysql_fetch_array($dbquery); $value=$result[$field]; return $value; }
?> Sample1.php ( Insert Record ) <? require("connect.php"); require("function.php"); insert("color_no,color_name","'14','เขยนออน'","color");
Page 210
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
?> Sample2.php ( Update Record ) <? require("connect.php"); require("function.php"); update("color","color_no='15',color_name='ด า ด า'","where color_no='14'"); ?>
Sample3.php ( Select Record )
<? require("connect.php"); require("function.php"); $result=select("color","where color_no='15'"); echo $result["color_name"]; ?>
Sample4.php ( Delete Record )
<? require("connect.php"); require("function.php"); delete("color","where color_no='15'"); ?> Sample5.php ( Num Record )
<? require("connect.php"); require("function.php"); $result=num_record("color","where 1"); echo $result; ?>
Page 211
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
Sample6.php ( Math Value คาทางคณตศาสตร เชน max,min,sum,count,avg,cos,sin)
<? require("connect.php"); require("function.php"); $result=math("sum","color_no","color","where 1"); echo $result; ?>
เทคนคเลก ๆ นอย ๆ ผมไมหวงครบ เอาไปใชกนตามสบายเลยครบ
การสราง Function เพอลดปรมาณการเขยน Coding
เปนการสราง Function เพอลดปรมาณการเขยน Coding มาดตวอยางกนหนอยนะครบ ชอฐานขอมล mydatabase
รายละเอยดของ Table
CREATE TABLE color ( color_no int(2) NOT NULL default '0', color_name varchar(10) NOT NULL default '' ) TYPE=MyISAM;
INSERT INTO color VALUES (1, 'สด า'); INSERT INTO color VALUES (13, 'สครม'); INSERT INTO color VALUES (2, 'สขาว'); INSERT INTO color VALUES (3, 'สฟา'); INSERT INTO color VALUES (4, 'สชมพ'); INSERT INTO color VALUES (5, 'สเหลอง'); INSERT INTO color VALUES (6, 'สเขยว'); INSERT INTO color VALUES (7, 'สน าตาล'); INSERT INTO color VALUES (8, 'สสม'); INSERT INTO color VALUES (9, 'สน าเงน');
Page 212
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
INSERT INTO color VALUES (10, 'สแดง'); INSERT INTO color VALUES (11, 'สเทา'); INSERT INTO color VALUES (12, 'สมวง'); connect.php
<? $host="localhost"; $username=""; $pass_word=""; $db="mydatabase"; $tb="color"; mysql_connect( $host,$username,$pass_word) or die ("ตดตอกบฐานขอมล Mysql ไมได "); mysql_select_db($db) or die("เลอกฐานขอมลไมได"); ?> function.php <? //============== insert ============== function insert($field,$value,$table) { $sql = "INSERT INTO $table ($field) VALUES ($value)"; $result= mysql_query($sql); return $result; }
//============== delete ============== function delete($table,$condition) { $sql ="delete from $table $condition"; $re = mysql_query($sql); return $result; }
Page 213
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
//=============== update ================== function update($table,$command,$condition) { $sql = "UPDATE $table SET $command $condition"; $result = mysql_query($sql); return $result; }
//=============== select ================== function select($table,$condition) { $sql = "select * from $table $condition"; $dbquery = mysql_query($sql); $result= mysql_fetch_array($dbquery); return $result; }
//=============== Numrow ================== function num_record($table,$condition) { $sql = "select * from $table $condition"; $dbquery = mysql_query($sql); $num_rows = mysql_num_rows($dbquery); return $num_rows; }
//=============== Math Value================= function math($MathRex,$field,$table,$condition) { $sql = "select $MathRex($field) as $field from $table $condition"; $dbquery = mysql_query($sql);
Page 214
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
$result= mysql_fetch_array($dbquery); $value=$result[$field]; return $value; }
?> Sample1.php ( Insert Record ) <? require("connect.php"); require("function.php"); insert("color_no,color_name","'14','เขยนออน'","color"); ?> Sample2.php ( Update Record ) <? require("connect.php"); require("function.php"); update("color","color_no='15',color_name='ด า ด า'","where color_no='14'"); ?>
Sample3.php ( Select Record )
<? require("connect.php"); require("function.php"); $result=select("color","where color_no='15'"); echo $result["color_name"]; ?>
Sample4.php ( Delete Record )
<? require("connect.php"); require("function.php");
Page 215
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
delete("color","where color_no='15'"); ?> Sample5.php ( Num Record )
<? require("connect.php"); require("function.php"); $result=num_record("color","where 1"); echo $result; ?> Sample6.php ( Math Value คาทางคณตศาสตร เชน max,min,sum,count,avg,cos,sin)
<? require("connect.php"); require("function.php"); $result=math("sum","color_no","color","where 1"); echo $result; ?>
เทคนคเลก ๆ นอย ๆ ผมไมหวงครบ เอาไปใชกนตามสบายเลยครบ
การสราง Function เพอลดปรมาณการเขยน Coding
เปนการสราง Function เพอลดปรมาณการเขยน Coding มาดตวอยางกนหนอยนะครบ ชอฐานขอมล mydatabase
รายละเอยดของ Table
CREATE TABLE color ( color_no int(2) NOT NULL default '0', color_name varchar(10) NOT NULL default '' ) TYPE=MyISAM;
Page 216
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
INSERT INTO color VALUES (1, 'สด า'); INSERT INTO color VALUES (13, 'สครม'); INSERT INTO color VALUES (2, 'สขาว'); INSERT INTO color VALUES (3, 'สฟา'); INSERT INTO color VALUES (4, 'สชมพ'); INSERT INTO color VALUES (5, 'สเหลอง'); INSERT INTO color VALUES (6, 'สเขยว'); INSERT INTO color VALUES (7, 'สน าตาล'); INSERT INTO color VALUES (8, 'สสม'); INSERT INTO color VALUES (9, 'สน าเงน'); INSERT INTO color VALUES (10, 'สแดง'); INSERT INTO color VALUES (11, 'สเทา'); INSERT INTO color VALUES (12, 'สมวง'); connect.php
<? $host="localhost"; $username=""; $pass_word=""; $db="mydatabase"; $tb="color"; mysql_connect( $host,$username,$pass_word) or die ("ตดตอกบฐานขอมล Mysql ไมได "); mysql_select_db($db) or die("เลอกฐานขอมลไมได"); ?> function.php <? //============== insert ============== function insert($field,$value,$table) { $sql = "INSERT INTO $table ($field) VALUES ($value)"; $result= mysql_query($sql);
Page 217
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
return $result; }
//============== delete ============== function delete($table,$condition) { $sql ="delete from $table $condition"; $re = mysql_query($sql); return $result; } //=============== update ================== function update($table,$command,$condition) { $sql = "UPDATE $table SET $command $condition"; $result = mysql_query($sql); return $result; }
//=============== select ================== function select($table,$condition) { $sql = "select * from $table $condition"; $dbquery = mysql_query($sql); $result= mysql_fetch_array($dbquery); return $result; }
//=============== Numrow ================== function num_record($table,$condition) { $sql = "select * from $table $condition"; $dbquery = mysql_query($sql);
Page 218
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
$num_rows = mysql_num_rows($dbquery); return $num_rows; }
//=============== Math Value================= function math($MathRex,$field,$table,$condition) { $sql = "select $MathRex($field) as $field from $table $condition"; $dbquery = mysql_query($sql); $result= mysql_fetch_array($dbquery); $value=$result[$field]; return $value; }
?> Sample1.php ( Insert Record ) <? require("connect.php"); require("function.php"); insert("color_no,color_name","'14','เขยนออน'","color"); ?> Sample2.php ( Update Record ) <? require("connect.php"); require("function.php"); update("color","color_no='15',color_name='ด า ด า'","where color_no='14'"); ?>
Sample3.php ( Select Record )
<? require("connect.php"); require("function.php");
Page 219
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
$result=select("color","where color_no='15'"); echo $result["color_name"]; ?>
Sample4.php ( Delete Record )
<? require("connect.php"); require("function.php"); delete("color","where color_no='15'"); ?> Sample5.php ( Num Record )
<? require("connect.php"); require("function.php"); $result=num_record("color","where 1"); echo $result; ?> Sample6.php ( Math Value คาทางคณตศาสตร เชน max,min,sum,count,avg,cos,sin)
<? require("connect.php"); require("function.php"); $result=math("sum","color_no","color","where 1"); echo $result; ?>
การสราง Function เพอลดปรมาณการเขยน Coding
เปนการสราง Function เพอลดปรมาณการเขยน Coding ชอฐานขอมล mydatabase
Page 220
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
รายละเอยดของ Table
CREATE TABLE color ( color_no int(2) NOT NULL default '0', color_name varchar(10) NOT NULL default '' ) TYPE=MyISAM;
INSERT INTO color VALUES (1, 'สด า'); INSERT INTO color VALUES (13, 'สครม'); INSERT INTO color VALUES (2, 'สขาว'); INSERT INTO color VALUES (3, 'สฟา'); INSERT INTO color VALUES (4, 'สชมพ'); INSERT INTO color VALUES (5, 'สเหลอง'); INSERT INTO color VALUES (6, 'สเขยว'); INSERT INTO color VALUES (7, 'สน าตาล'); INSERT INTO color VALUES (8, 'สสม'); INSERT INTO color VALUES (9, 'สน าเงน'); INSERT INTO color VALUES (10, 'สแดง'); INSERT INTO color VALUES (11, 'สเทา'); INSERT INTO color VALUES (12, 'สมวง'); connect.php
<? $host="localhost"; $username=""; $pass_word=""; $db="mydatabase"; $tb="color"; mysql_connect( $host,$username,$pass_word) or die ("ตดตอกบฐานขอมล Mysql ไมได "); mysql_select_db($db) or die("เลอกฐานขอมลไมได"); ?>
Page 221
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
function.php <? //============== insert ============== function insert($field,$value,$table) { $sql = "INSERT INTO $table ($field) VALUES ($value)"; $result= mysql_query($sql); return $result; }
//============== delete ============== function delete($table,$condition) { $sql ="delete from $table $condition"; $re = mysql_query($sql); return $result; } //=============== update ================== function update($table,$command,$condition) { $sql = "UPDATE $table SET $command $condition"; $result = mysql_query($sql); return $result; }
//=============== select ================== function select($table,$condition) { $sql = "select * from $table $condition"; $dbquery = mysql_query($sql); $result= mysql_fetch_array($dbquery);
Page 222
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
return $result; }
//=============== Numrow ================== function num_record($table,$condition) { $sql = "select * from $table $condition"; $dbquery = mysql_query($sql); $num_rows = mysql_num_rows($dbquery); return $num_rows; }
//=============== Math Value================= function math($MathRex,$field,$table,$condition) { $sql = "select $MathRex($field) as $field from $table $condition"; $dbquery = mysql_query($sql); $result= mysql_fetch_array($dbquery); $value=$result[$field]; return $value; }
?>
Sample1.php ( Insert Record ) <? require("connect.php"); require("function.php"); insert("color_no,color_name","'14','เขยนออน'","color"); ?>
Page 223
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
Sample2.php ( Update Record ) <? require("connect.php"); require("function.php"); update("color","color_no='15',color_name='ด า ด า'","where color_no='14'"); ?> Sample3.php ( Select Record )
<? require("connect.php"); require("function.php"); $result=select("color","where color_no='15'"); echo $result["color_name"]; ?> Sample4.php ( Delete Record )
<? require("connect.php"); require("function.php"); delete("color","where color_no='15'"); ?> Sample5.php ( Num Record )
<? require("connect.php"); require("function.php"); $result=num_record("color","where 1"); echo $result; ?>
Page 224
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
Sample6.php ( Math Value คาทางคณตศาสตร เชน max,min,sum,count,avg,cos,sin)
<? require("connect.php"); require("function.php"); $result=math("sum","color_no","color","where 1"); echo $result; ?>
ชอฐานขอมล mydatabase
รายละเอยดของ Table
CREATE TABLE color ( color_no int(2) NOT NULL default '0', color_name varchar(10) NOT NULL default '' ) TYPE=MyISAM;
INSERT INTO color VALUES (1, 'สด า'); INSERT INTO color VALUES (13, 'สครม'); INSERT INTO color VALUES (2, 'สขาว'); INSERT INTO color VALUES (3, 'สฟา'); INSERT INTO color VALUES (4, 'สชมพ'); INSERT INTO color VALUES (5, 'สเหลอง'); INSERT INTO color VALUES (6, 'สเขยว'); INSERT INTO color VALUES (7, 'สน าตาล'); INSERT INTO color VALUES (8, 'สสม'); INSERT INTO color VALUES (9, 'สน าเงน'); INSERT INTO color VALUES (10, 'สแดง'); INSERT INTO color VALUES (11, 'สเทา'); INSERT INTO color VALUES (12, 'สมวง');
Page 225
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
connect.php
<? $host="localhost"; $username=""; $pass_word=""; $db="mydatabase"; $tb="color"; mysql_connect( $host,$username,$pass_word) or die ("ตดตอกบฐานขอมล Mysql ไมได "); mysql_select_db($db) or die("เลอกฐานขอมลไมได"); ?> function.php <? //============== insert ============== function insert($field,$value,$table) { $sql = "INSERT INTO $table ($field) VALUES ($value)"; $result= mysql_query($sql); return $result; }
//============== delete ============== function delete($table,$condition) { $sql ="delete from $table $condition"; $re = mysql_query($sql); return $result; } //=============== update ================== function update($table,$command,$condition) { $sql = "UPDATE $table SET $command $condition";
Page 226
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
$result = mysql_query($sql); return $result; }
//=============== select ================== function select($table,$condition) { $sql = "select * from $table $condition"; $dbquery = mysql_query($sql); $result= mysql_fetch_array($dbquery); return $result; }
//=============== Numrow ================== function num_record($table,$condition) { $sql = "select * from $table $condition"; $dbquery = mysql_query($sql); $num_rows = mysql_num_rows($dbquery); return $num_rows; }
//=============== Math Value================= function math($MathRex,$field,$table,$condition) { $sql = "select $MathRex($field) as $field from $table $condition"; $dbquery = mysql_query($sql); $result= mysql_fetch_array($dbquery); $value=$result[$field]; return $value; }
?>
Page 227
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
Sample1.php ( Insert Record ) <? require("connect.php"); require("function.php"); insert("color_no,color_name","'14','เขยนออน'","color"); ?> Sample2.php ( Update Record ) <? require("connect.php"); require("function.php"); update("color","color_no='15',color_name='ด า ด า'","where color_no='14'"); ?> Sample3.php ( Select Record )
<? require("connect.php"); require("function.php"); $result=select("color","where color_no='15'"); echo $result["color_name"]; ?> Sample4.php ( Delete Record )
<? require("connect.php"); require("function.php"); delete("color","where color_no='15'"); ?> Sample5.php ( Num Record )
<? require("connect.php"); require("function.php");
Page 228
การเขยนโปรแกรมบนเวบ ดวยภาษา PHP
$result=num_record("color","where 1"); echo $result; ?> Sample6.php ( Math Value คาทางคณตศาสตร เชน max,min,sum,count,avg,cos,sin)
<? require("connect.php"); require("function.php"); $result=math("sum","color_no","color","where 1"); echo $result; ?>