PHP

วิชา webProgramming

posted on 01 Oct 2008 21:50 by interviewz  in PHP

การเขียนแบบฟอร์ม ด้วยภาษา HTML

การรับส่งข้อมูลในแบบฟอร์มจากไฟล์ HTML ไปยังไฟล์ PHP

การเปิดไฟล์ ปิดไฟล์ อ่านไฟล์ เขียนไฟล์ ด้วย PHP

การเชื่อมต่อกับฐานข้อมูลด้วย PHP

แนวข้อสอบปีนี้

ข้อสอบเก่าของรุ่นพี่

เฉลยข้อสอบเก่า วิชา web programming

รวมอยู่ในนี้แล้วจ้า

จัดไป ๆ ๆ ขอให้ทำได้ทุก ๆ ๆ คนนะจ๊า

 Download เป็นไฟล์ Word

 

 

สิ่งที่ต้องรู้

1.        การเขียนแบบฟอร์ม จะใช้ภาษา html

แบบ text

ที่จำเป็น : <input type=”text” name=”ชื่อตัวแปร”>

Add เพิ่มได้ : size=”ความยาวช่องรับข้อมูล” maxlength=”จำนวนสูงสุดที่รับเข้ามาได้” value=”ข้อความที่แสดงตั้งแต่เริ่ม

 

แบบ password

ที่จำเป็น : <input type=”password” name=”ชื่อตัวแปร”>

Add เพิ่มได้ : size=”ความยาวช่องรับข้อมูล” maxlength=”จำนวนสูงสุดที่รับเข้ามาได้” value=”ข้อความที่แสดงตั้งแต่เริ่ม

!!! สังเกตว่า text กับ password เป็นช่องรับข้อมูลเหมือนกัน ต่างกันตรงที่แบบ password ข้อมูลที่ป้อนเข้ามาจะเห็นเป็น***

 

แบบ radio

ที่จำเป็น : <input type=”radio” name=”ชื่อตัวแปร” value=”ค่า”>

Add เพิ่มได้ : checked

!!! ต้องเลือกอันใดอันนึง ทุกตัวเลือกต้องมีชื่อเหมือนกัน และค่าต้องแตกต่างกัน

 

แบบ checkbox

ที่จำเป็น : <input type=”checkbox name=”ชื่อตัวแปร” value=”ค่า”>

Add เพิ่มได้ : checked

!!! เลือกกี่อันก็ได้ ทุกตัวเลือกต้องมีชื่อต่างกัน อันที่ไม่ถูกเลือกจะไม่ถูกสร้าง อันที่ถูกเลือกจะถูกสร้างเป็นตัวแปร และมีค่าเป็น on

 

แบบ submit

ที่จำเป็น : <input type=”submit” value=”ข้อความที่แสดงบนปุ่ม”>

 

แบบ reset

ที่จำเป็น : <input type=”reset” value=”ข้อความที่แสดงบนปุ่ม”>

 

แบบ select

ที่จำเป็น : <select name=”ชื่อตัวแปร” size=”จำนวนบรรทัดที่แสดงให้เลือก” multiple>

                    ตัวเลือกที่1

                    ตัวเลือกที่2

       </select>

 

แบบ textarea

ที่จำเป็น : <textarea name=”ชื่อตัวแปร” rows=”ขนาดแถว” cols=”ขนาดหลัก”></textarea>

 

 

แบบ hidden

ที่จำเป็น : <input type=”hidden” name=”ชื่อตัวแปร” value=”ค่า”>

แบบ image

ที่จำเป็น : <input type=”image” src=”urlของรูปภาพ”>

โดยทั้งหมดทั้งมวลนี้ต้องอยู่ภายในแท็ก

ชื่อฟอร์ม” method=”วิธีส่งข้อมูล” action=”ไฟล์ที่ได้รับข้อมูลจากฟอร์ม”> และ   !!! get = ส่งข้อมูลทาง Url เห็นกันจะจะ / post = ส่งข้อมูลแบบแอบ แนบไปไม่มีใครเห็น

 

 

 


2.        การรับค่าจากแบบฟอร์ม นำไปคำนวณ หรือแสดงผล จะใช้ภาษา php

เริ่มต้นด้วย และจบด้วย ?> และตรงกลางจะเป็นคำสั่งในภาษา PHP

รูปแบบ :  $ชื่อตัวแปร

หากต้องการพิมพ์ข้อความออกมา :  echo "$ชื่อตัวแปร";

 

sample1.html

 

 

 

post" action="sample2.php">

 

ชื่อ

name">


นามสกุล

surname">



 

 

 

 

 

 

 

 

sample2.php

 

 

ชื่อ "$name"; ?>


นามสกุล $surname"; ?>

 

 

 

 
 

Counter.html

 

counter

 

 

กรุณากดปุ่ม

  value ="press now">

 

 

 

 

 

Counter.php

$filename = "enter.txt";                                          กำหนดชื่อไฟล์ว่า enter.txt

if( file_exists($filename) )                      เช็คว่าไฟล์นี้มีหรือไม่

{ $fp = fopen($filename,"r");                                ถ้ามี สร้าง $fp เป็น pointer ชี้ไปที่ไฟล์นั้น ทำการเปิดแบบอ่าน

  $counter = fgets($fp,99);                     อ่านค่ามาใส่ใน $counter

  fclose($fp);                                                           อ่านเสร็จ ปิดตัวชี้ $fp

}

else

{  $counter=0;                                                        ถ้าไม่มี กำหนดให้ $counter เป็น 0

}

$fp = fopen($filename,"w");                  ให้ $fp ชี้ไปที่ไฟล์ ทำการเปิดแบบเขียน               

$counter = $counter+1;                                          เพิ่มค่าให้ counter 1 ค่า

fwrite($fp,$counter);                                             เขียน $counter ลงไปในไฟล์

fclose($fp);                                                             เขียนเสร็จปิดตัวชี้

echo “counter = $counter";                   และแสดงผล $counter

?>

 

 

 
 

จากโปรแกรมข้างบน จะเกิดไฟล์ enter.txt ขึ้นมาในคอมพิวเตอร์เราด้วย

การเปิดไฟล์   fopen(ชื่อไฟล์,โหมดของการเปิด) -> fopen($filename,"r");

โหมดการเปิดมี 6 โหมด  r=read / w=write / a=attend

R             เปิดเพื่ออ่าน โดย pointer ชี้ที่จุดเริ่มต้นของไฟล์

R+           เปิดเพื่ออ่านและเขียน โดย pointer ชี้ที่จุดเริ่มต้นของไฟล์

W            เปิดเพื่อเขียนอย่างเดียว เขียนครั้งใหม่ทับของเก่าทุกครั้ง โดย pointer ชี้ที่จุดเริ่มต้นของไฟล์

W+          เปิดเพื่ออ่านและเขียน เขียนครั้งใหม่ทับของเก่าทุกครั้ง โดย pointer ชี้ที่จุดเริ่มต้นของไฟล์

A             เปิดเพื่อเขียนอย่างเดียว โดย pointer ชี้ที่จุดสิ้นสุดของไฟล์

A+           เปิดเพื่ออ่านและเขียน โดย pointer ชี้ที่จุดสิ้นสุดของไฟล์

การปิดไฟล์  fclose(ตัวแปรที่ชี้ไฟล์) -> fclose($fp);

 

การอ่านข้อมูลจากไฟล์ มีฟังก์ชั่น

fread(ตัวแปรที่ชี้ไฟล์,จำนวนไบต์ที่ต้องการอ่าน) อ่านเท่าความยาวที่ระบุ -> fread($fp,99);

fgets(ตัวแปรที่ชี้ไฟล์,จำนวนไบต์ที่ต้องการอ่าน) อ่านทีละบรรทัด ถ้าจะอ่านหลายๆบรรทัดก็วน loop เอา -> fgets($fp,99);

fpassthru(ตัวแปรที่ชี้ไฟล์) อ่านหมดทั้งไฟล์ -> fpassthru($fp);

 

การเขียนข้อมูลลงไฟล์  ใช้อันไหนก็ได้ ผลลัพธ์เหมือนกันจ้า

fputs(ตัวแปรที่ชี้ไฟล์,ข้อมูลที่จะเขียนลงไฟล์)   -> fputs($fp,$counter);

fwrite(ตัวแปรที่ชี้ไฟล์,ข้อมูลที่จะเขียนลงไฟล์)  -> fwrite($fp,$counter);

 

 

สู้ ๆ ๆ  http://interviewz.exteen.com

 

การเชื่อมต่อฐานข้อมูล ทำได้ 2 แบบ

แบบแรก  มี prepare และใช้ odbc_execute

$conn = odbc_connect("ชื่อDSN","username","password");

$stmt = odbc_prepare($conn,”select* from customer ");

$cur = odbc_execute($stmt)

แบบสอง ไม่มี prepare และใช้ odbc_exec  !!! ใช้แบบนี้ง่ายกว่าป่าว

$conn = odbc_connect("mydb","username","password");

$cur = odbc_exec($cx,"select* from customer");

 

การเลื่อนตัวชี้ข้อมูล ไปทีละรายการ

while(odbc_fetch_row($cur)) มักจะใส่ใน loop while เพื่อวนอ่านให้มันหมดไฟล์ วนloopทีละ 1 record

 

การแสดงข้อมูล ดึงข้อมูลจาก record นั้นมาใส่ไว้ในตัวแปร

$name1 = odbc_result($cur,1);  เลข 1 คือลำดับเลขที่ของ filed  หรือจะใส่ชื่อ field name ก็ได้

จากนั้นถ้าอยากแสดงผลออกมาก็ echo “$name”; ได้ตามปกติ

 

การปิดฐานข้อมูล

odbc_close($conn)


select.php

  $conn = odbc_connect("mydb","","");

$cur = odbc_exec($conn,"select * from customer order by custNo");

$counter=0;

echo "

               

         ";

while(odbc_fetch_row($cur))

{   $name1 = odbc_result($cur,1);

                $name2 = odbc_result($cur,2);

                $name3 = odbc_result($cur,3);

                $name4 = odbc_result($cur,4);

                $name5 = odbc_result($cur,5);

                $counter+=1;

  echo "

                     

                    

                     

"; }

                       else

                         { echo"ชาย

"; }

  echo   "  

                    

        

";

}

echo "

No.

                               

รหัส

                               

ชื่อ

                               

เพศ

                               

ที่อยู่

                               

เบอร์โทรศัพท์

 

$counter $name1 $name2 ";

                       if($name3=='F')

                         { echo"หญิง

$name4 $name5
";

echo "

จำนวนลูกค้าทั้งหมด $counter คน";

 

?>

 

 

 

 

 

ข้อสอบ 5-6 ข้อ

-        ให้โปรแกรมมา หาที่ผิด

-        ให้เขียนโปรแกรม

-        เขียน form กับ php ให้ทำงานได้

-        odbc ออกแน่ อาจารย์ว่างี้

-        พิเศษสุดๆ ข้อสุดท้ายต้องทำ ถ้าไม่ทำจะหักคะแนน ในโจทย์จะไม่บอกว่าให้เขียน session แต่อาจารย์สั่งในห้องว่าต้องเขียน session ด้วย ห้ามลืม !!!

 

เกร็งงงงข้อสอบ

1.ให้ภาพหน้า html มาเป็นเกี่ยวกับการคิดแบบเครื่องคิดเลข(ฟอร์มเดียวกับที่เขียนกลางภาคของปี 50) จะมี ช่องรับตัวเลข 2 ช่อง แล้วก็มี radio box 4 ตัว ซึ่งจะเป็น บวก ลบ คูณ หาร แล้วก็มีปุ่ม submit กะ reset หน้าจอประมาณนี้ (20 คะแนน)

TEST1.HTML

                                การคำนวณแบบเครื่องคิดเลข

                          ตัวเลขตัวแรก    : (ข่อง input )

                          ตัวเลขตัวที่สอง : (ช่อง input)

    (Radio) บวก    (Radio) ลบ    (Radio) คูณ     (Radio) หาร

                                (ปุ่ม Submit) (ปุ่ม Reset)

 

ให้เขียนโปรแกรม .html ที่เป็นฟอร์มตามรูปดังกล่าว แล้วก็ให้ผลลัพธ์ไปออกที่ ไฟล์ .php

ผลลัพธ์เช่น

 

TEST1.PHP

                                                ตัวแรกตัวแรก  : 20

                                                ตัวเลขตัวที่สอง : 50

                                                20 + 50 = 70

 

2. ให้ตารางฐานข้อมูลมา ในตารางประกอบด้วย รหัส (Code) ชื่อ(Name) ภาษี(TAX) เงินเดือน(Salary) ตารางชื่อ Personal ส่วนชื่อ DSN คือ persondb ให้เขียนโปรแกรมเพื่อดึงข้อมูลจากฐานข้อมูลมาแสดง โดยให้ เงินสุทธิ = เงินเดือน - ภาษี

แสดงข้อมูลที่ประกอบด้วย รหัส ชื่อ และเงินเดือนสุทธิ โดยเรียงตามจำนวนเงินเดือนสุทธิ จากน้อยไปมาก ดังนี้ (10 คะแนน)

TEST2.PHP

    รายงานเงินเดือนพนักงาน

                รหัส        ชื่อ           เงินเดือนสุทธิ

                01            ปป           10

                02            กก           15

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

 

                จำนวนพนักงานทั้งหมด 6 คน ยอดเงินเดือนรวมทั้งหมด 10000 บาท

3. ให้เขียนโปรแกรม .html รับข้อมูลชื่อผู้ใช้ระบบเข้ามา จากนั้นบันทึกข้อมูล ชื่อ และเวลาในการใช้ระบบลงใน TEST3.TXT แล้วจึงแสดงผลลัพธ์ออกมา

(20 คะแนน)

TEST3.HTML

                                ชื่อผู้ใช้ : (ช่อง input)

                                 (submit)   (reset)

 

TEST3.PHP

                ผู้เข้าใช้ระบบ          : นาย.......

                วันเวลา    : 19 January 2007

                                (กลับสู่หน้าหลัก)

 

ตรง กลับสู่หน้าหลัก เป็นปุ่มที่เมื่อคลิกแล้วจะกลับไปหน้า TEST3.HTML

 

4. เค้าให้โปรแกรม php มาแล้วให้จับผิดอ่ะ เป็นเรื่องของการติดต่อฐานข้อมูล ส่วนใหญ่ที่ผิดนะ ก็เป็นพวก " ; แล้วก็ " ที่ซ้อนอยู่ใน echo แล้วก็ตัวแปรบางตัวที่ใช้ชื่อผิด หรือเป็นตัวแปรแต่ไม่มี $ นำหน้า จำได้ว่าบรรทัดรองสุดท้าย ตรงการ close database อ่ะ มันเขียน obdc_close อันนี้ผิดนะ (10 คะแนน)

 

5. ให้โดเมนมาแล้วออกแบบฐานข้อมูลและโปรแกรมที่ใช้ในระบบ

มีบริษัทที่ทำการให้บริการให้เช่าที่จอดรถ ที่จดรถจะมี 10*20 หรือก็คือ 200 ที่ หมายเลขที่จอดจะบอกถึง แถวและหลักของที่จอดรถ ในการเข้ามาใช้ช่องจอด จะได้รับบัตรจอด ที่จะมีข้อมูล วันที่ เวลา และหมายเลขที่จอดรถให้ โดยระบบจะเป็นคนหาที่จอดรถที่ว่างให้ ที่จอดมีทางเข้าออกทางเดียว เมื่อมีคนเช่าช่องจอดใดๆ ช่องจอดนั้นจะมีสถานะ ไม่ว่าง  เมื่อเวลาคืนบัตรก็ให้เปลี่ยนสถานะช่องจอดนั้นๆ เป็นช่องจอดว่าง

นอกจากนี้ระบบยังต้องสามารถบอกสิ่งต่างๆ ดังนี้

- จำนวนช่องจอดที่ว่างทั้งหมด

-จำนวนรถเฉลี่ยที่เข้ามาใช้ช่องจอดในแต่ละชั่วโมง

-ถ้าไม่มีช่องจอดว่างจะไม่อนุญาตให้เข้าใช้ช่องจอดได้

-จำนวนรถที่เข้ามาใช้ช่องจอดนานเกิน 10 ชั่วโมง

(20 คะแนน)

 

 

 

เฉลยข้อสอบข้อแรก

form.html

 

 

ข้อสอบข้อ1

 

 

 

 

การคำนวณแบบเครื่องคิดเลข

ตัวเลขตัวแรก

ตัวเลขตัวที่สอง

บวก

ลบ

คูณ

หาร

>

 

 

 

 

 

calculate.php

 

echo "ตัวแรกตัวแรก = $a
ตัวเลขตัวที่สอง = $b
";

if($operation=="add")

{ $c = $a+$b;

  echo "$a + $b = $c "; 

}

elseif($operation=="minus")

{ $c = $a-$b;

  echo "$a - $b = $c "; 

}

elseif($operation=="multiply")

{ $c = $a*$b;

  echo "$a * $b = $c "; 

}

elseif($operation=="devide")

{ $c = $a / $b;

  echo "$a / $b = $c "; 

}        

 

                                                                               

 

สู้ ๆ ๆ

 http://interviewz.exteen.com