การใช้เงื่อนไข if(){}else{}

เงื่อนไข? (if) ผมขออธิบายโดยการยกตัวอย่างเลยนะครับ
"ถ้าวันนี้ฝนไม่ตก ผมจะออกไปซื้อของข้างนอก แต่ถ้าวันนี้ฝนตก ผมจะนอนอยู่บนเตียง"
มองออกไหมครับ ว่าข้อความข้างบน ตรงไหนคือ เงื่อนไข ?

คำว่า "ถ้าวันนี้ฝนไม่ตก" กับ "แต่ถ้าวันนี้ฝนไม่ตก" คือเงื่อนไขครับ ส่วนคำว่า "ผมจะออกไปซื้อของข้างนอก" กับ "ผมจะนอนอยู่บนเตียง" คือ เหตุการณ์ที่เกิดขึ้นเมื่อเป็นไปตามเงื่อนไขที่กำหนดครับ

ตัวแปรที่เกี่ยวกับข้อความที่กล่าวมา มีอะไรบ้าง?

1. ผม คือ ตัวบุคคล หรือ คน
2. ฝน คือ สิ่งกำเนิดเงื่อนไข หมายถึง ฝนตก หรือ ไม่ตก นั้นเอง

เมื่อนำมาเขียนเป็นภาษา PHP จะได้ดังนี้

 <?
$me_sleep = "ผมจะนอนอยู่บนเตียง";
$me_go = "ผมจะออกไปซื้อของข้างนอก";
$rain = "ฝนไม่ตก";
if($rain == "ฝนตก")
{
   echo $me_sleep;
}
else
{
   echo $me_go;
}
?>


จากตัวอย่าง code PHP ข้างบนเป็นเพียงตัวอย่าง ที่แสดงให้เห็นถึงความเกี่ยวข้องระหว่าง เงื่อนไขในชิวิตประจำวัน กับ ภาษา PHP นะครับผมจะยังไม่อธิบายรายละเอียด ของ code นี้ แต่จะแนะนำ สิ่งที่ควรรู้ก่อนที่จะเริ่มเขียน PHP ครับ

ตัวดำเนินการ เปรียบเทียบ กับเงือนไขในภาษา PHP (บางส่วน)

== (เท่ากับ) ตัวอย่าง if($a == $b){ "สิ่งที่ต้องการให้เกิดขึ้นเมื่อตรงตามเงื่อนไข" }
!= (ไม่เท่ากับ) ไม่เท่ากัน ไม่ใช่ ไม่เหมือน ตัวอย่าง if($a != $b) {"สิ่งที่ต้องการให้เกิดขึ้นเมื่อตรงตามเงื่อนไข" }
> (มากกว่า) มีค่ามากกว่า ตัวอย่าง if($a > $b){"สิ่งที่ต้องการให้เกิดขึ้นเมื่อตรงตามเงื่อนไข" }
< (น้อยกว่า) มีค่าน้อยกว่า ตัวอย่าง ($a < $b){"สิ่งที่ต้องการให้เกิดขึ้นเมื่อตรงตามเงื่อนไข" }
and หรือ && (และ) ตัวอย่าง if($a == $b and $a == $c){ "สิ่งที่ต้องการให้เกิดขึ้นเมื่อตรงตามเงื่อนไข" }
or หรือ || (หรือ) ตัวอย่าง if($a == $b or $a == $c){ "สิ่งที่ต้องการให้เกิดขึ้นเมื่อตรงตามเงื่อนไข" }

*มือใหม่หลายคน รวมทั้งผมนะครับ จะสับสน และใช้ผิดบ่อยๆ ระหว่าง การกำหนดตัวแปร กับ การสร้างเงื่อนไข ตอนใช้ = เท่ากับ
เพราะหากเราตั้งตัวแปร เราจะใช้ = (เท่ากับตัวเดียว) แต่หากจะสร้างเงื่อนไข จะใช้ == (เท่ากับ เท่ากับ) อย่าใช้สับสนนะครับ

เอาละครับ ต่อไปจะเป็นการยกตัวอย่าง เงื่อนไขแบบง่ายๆ คือ โปรแกรม แยกตัวเลข คู่ หรือ ตัวเลข คี่ นะครับ

ขั้นที่ 1 สร้าง form เพื่อรับค่าตัวเลขจากผู้ใช้ 1 ค่าแล้วบันทึกไฟล์ไว้ที่ XXX:\AppServ\www\lesson3\test.php ดังรูปตัวอย่าง ที่ 1



  รูปที่ 1 สร้าง form เพื่อรับค่าตัวเลข

<form id="form1" name="form1" method="post" action="test.php">
  <input type="text" name="number" id="number" />
  <input type="submit" name="button" id="button" value="ตัวเลขตัวนี้คือ..." />
</form>


ขั้นที่ 2 เขียนโปรแกรมแยกเลขคู่หรือเลขคี่โดยใช้ % 2(เอาเศษที่เหลือจากการหารด้วย 2) เป็นตัวแยก ดังรูปตัวอย่างที่ 2


  รูปที่ 2 โปรแกรมแยกเลขคู่หรือเลขคี่

<form id="form1" name="form1" method="post" action="test.php">
  <input name="number" type="text" id="number" value="<?=$_POST['number']?>" />
  <input type="submit" name="submit" id="submit" value="ตัวเลขตัวนี้คือ..." />
<?
if($_POST['submit'])
{
  $number = $_POST['number'];
  $ModNumber = $number%2;
  if($ModNumber == 0)
  {
    echo "มีค่าเป็นเลขคู่";
  }
  else
  {
    echo "มีค่าเป็นเลขคี่";
  }
}
?>
</form>


ขั้นที่ 3 ทดลองโปรแกรม โดยการบันทึกไฟล์และเรียกโปรแกรมแยกเลขคู่หรือคี่ ที่ http://localhost/lesson3/test.php



  รูปภาพที่ 3 แสดงผลโปรแกรมแยกเลขคู่หรือเลขคี่

จากรูปที่ 2 โปรแกรมแยกเลขคู่หรือคี่ บรรทัดที่ 10 <input name="number" type="text" id="number" value="<?=$_POST['number']?>" />สังเกตจะมี PHP แทรกมาใน value="<?=$_POST['number']?> ตัวนี้จะเป็นการกำหนดค่าที่อยู่ใน textbox ให้แสดงค่าที่ POST มาครับ เช่นถ้าเรากรอกตัวเลข 13 แล้วกดปุ่ม "ตัวเลขตัวนี้คือ" ในช่องกรอกตัวเลขก็จะแสดงเลข 13 ขึ้นมาครับ
จากรูปที่ 2 โปรแกรมแยกเลขคู่หรือคี่ บรรทัดที่ 12 และ 26 คือการเปิด และ ปิดการทำงานของภาษา PHP
จากรูปที่ 2 โปรแกรมแยกเลขคู่หรือคี่ บรรทัดที่ 13 คือการสร้างเงื่อนไขเมื่อกดปุ่ม "ตัวเลขนี้คือ..." ที่ชื่อ submit
จากรูปที่ 2 โปรแกรมแยกเลขคู่หรือคี่ บรรทัดที่ 15 คือ ตั้งตัวแปร $number ใ้ห้มีค่าเท่ากับ ค่าที่ส่งมาจาก form1 ที่ชื่อ number
จากรูปที่ 2 โปรแกรมแยกเลขคู่หรือคี่ บรรทัดที่ 16 คือ ตั้งตัวแปร $ModNumber ใ้ห้มีค่าเท่ากับ $number%2 ซึ่งถ้ากรอกเลข 13 ในช่อง number ก็จะ ได้ค่า $ModNumber = 13 หารด้วยสอง เหลือ เศษ 1 จะได้ค่าเป็น 1
จากรูปที่ 2 โปรแกรมแยกเลขคู่หรือคี่ บรรทัดที่ 17 คือ การกำหนดเงื่อนไข ตรวจสอบค่า $ModNumber ว่าเท่ากับ 0 หรือไม่
จากรูปที่ 2 โปรแกรมแยกเลขคู่หรือคี่ บรรทัดที่ 18 - 20 คือขอบเขตของเงื่อนไขตามบรรทัดที่ 17 และ แสดงผลคำว่า "มีค่าเป็นเลขคู่"
จากรูปที่ 2 โปรแกรมแยกเลขคู่หรือคี่ บรรทัดที่ 21 - 24 คือขอบเขตที่นอกเหนือจากเงื่อนไขตามบรรทัดที่ 17 และ แสดงผลคำว่า "มีค่าเป็นเลขคี่"

 

จากตัวอย่างที่กล่าวมาบางท่านอาจจะยังไม่เข้าใจ แต่ ไม่เป็นไรครับ ผมมีอีกตัวอย่าง ให้ท่านได้ทำความเข้าใจอีกครับ

ตัวอย่างต่อไปนี้จะเป็นโปรแกรม กำออกเกรดนะครับ การทำงานของโปรแกรมก็ใ้ช้ขั้นตอนง่ายๆโดยการกรอกคะแนนรวม ที่มีตั้งแต่ 0 - 100 เพื่อออกเกรด ซึ่งเกรด ในระดับ มัธยมหรืออดุมส่วนใหญ่ก็จะเป็น 8 เกรด ได้แก่ 0 , 1 , 1.5 , 2 , 2.5 , 3 , 3.5 , 4 แต่ผมคิดว่ามันเยอะไป ขอแค่ 5 พอ ครับ คือ 0 , 1 , 2 , 3 , 4

ขั้นที่ 1 เริ่มต้นจากการสร้าง form ให้รับค่าคะแนน เป็น textbox ให้ชื่อว่า final_score แล้วบันทึกไว้ที่ XXX:\AppServ\www\lesson3\test2.php ดังรูปภาพที่ 4


  รูปภาพที่ 4 สร้าง form รับค่าคะแนน

<form id="form1" name="form1" method="post" action="test2.php">
<input name="final_score" type="text" id="final_score" value="<?=$_POST['final_score']?>" />
<input type="submit" name="submit" id="submit" value="คำนวณเกรด" />
</form>


ขั้นที่ 2 เขียนโปรแกรมคำนวณเกรดโดยใ้ช้ if ดัง รูปตัวอย่าง ที่ 5


  รูปภาพที่ 5 โปรแกรมคำนวณเกรด

<?
if($_POST['submit'])
{
  $final_score = $_POST['final_score'];
  if($final_score < 0)
  {
    echo"กรุณากรอกตัวเลขตั้งแต่ 0 ขึ้นไป";
  }
  else if($final_score < 50)
  {
    echo "คะแนน $final_score ได้เกรด 0";
  }
  else if($final_score < 60)
  {
    echo "คะแนน $final_score ได้เกรด 1";
  }
  else if($final_score < 70)
  {
    echo "คะแนน $final_score ได้เกรด 2";
  }
  else if($final_score < 80)
  {
    echo "คะแนน $final_score ได้เกรด 3";
  }
  else if($final_score <= 100)
  {
    echo "คะแนน $final_score ได้เกรด 4";
  }
  else
  {
    echo "ผิดพลาด กรุณากรอกตัวเลขไม่เกิน 100";
  }

}
?>

ขั้นที่ 3 ทดลองโปรแกรม โดยการบันทึกไฟล์และเรียกโปรแกรมคำนวนเกรด ที่ http://localhost/lesson3/test2.php


  รูปภาพที่ 6 โปรแกรมคำนวณเกรด

ผมขอไม่อธิบายบางบรรทัดที่คล้ายกับตัวอย่างที่แล้วนะครับ ขออธิบายในส่วนที่สำคัญๆเลยดังต่อไปนี้

จากรูปภาพที่ 5 โปรแกรมคำนวณเกรด บรรทัดที่ 12 - 15 คือการสร้างเงื่อนไข โดยตรวจสอบ ค่าจากตัวแปร $final_score ว่าน้อยกว่า 0 หรือไม่ (กรณีที่กรอกค่าติดลบมา) ถ้าหากเป็นค่าที่น้อยกว่า 0 ก็จะแสดง "กรุณากรอกตัวเลขตั้งแต่ 0 ขึ้นไป"
จากรูปภาพที่ 5 โปรแกรมคำนวณเกรด บรรทัดที่ 16 - 19 คือการสร้างเงื่อนไขที่นอกเหนือจากเงื่อนไข บรรทัด ที่ 12 โดยตรวจสอบ ค่าจากตัวแปร $final_score ว่าน้อยกว่า 50 หรือไม่ ถ้าหากเป็นค่าที่น้อยกว่า 50 ก็จะแสดง "คะแนน $final_score ได้เกรด 0"
จากรูปภาพที่ 5 โปรแกรมคำนวณเกรด บรรทัดที่ 20 - 23 คือการสร้างเงื่อนไขที่นอกเหนือจากเงื่อนไข บรรทัด ที่ 16 และ 12 โดยตรวจสอบ ค่าจากตัวแปร $final_score ว่าน้อยกว่า 60 หรือไม่ ถ้าหากเป็นค่าที่น้อยกว่า 60 ก็จะแสดง "คะแนน $final_score ได้เกรด 1"
จากรูปภาพที่ 5 โปรแกรมคำนวณเกรด บรรทัดที่ 24 - 27 คือการสร้างเงื่อนไขที่นอกเหนือจากเงื่อนไข บรรทัด ที่ 12,16 และ 20 โดยตรวจสอบ ค่าจากตัวแปร $final_score ว่าน้อยกว่า 70 หรือไม่ ถ้าหากเป็นค่าที่น้อยกว่า 70 ก็จะแสดง "คะแนน $final_score ได้เกรด 2"
จากรูปภาพที่ 5 โปรแกรมคำนวณเกรด บรรทัดที่ 28 - 31 คือการสร้างเงื่อนไขที่นอกเหนือจากเงื่อนไข บรรทัด ที่ 12,16, 20 และ 24 โดยตรวจสอบ ค่าจากตัวแปร $final_score ว่าน้อยกว่า 80 หรือไม่ ถ้าหากเป็นค่าที่น้อยกว่า 80 ก็จะแสดง "คะแนน $final_score ได้เกรด 3"
จากรูปภาพที่ 5 โปรแกรมคำนวณเกรด บรรทัดที่ 32 - 35 คือการสร้างเงื่อนไขที่นอกเหนือจากเงื่อนไข บรรทัด ที่ 12,16,20,24 และ 28 โดยตรวจสอบ ค่าจากตัวแปร $final_score ว่าน้อยกว่าหรือเท่ากับ 100 หรือไม่ ถ้าหากเป็นค่าที่น้อยกว่าหรือเท่ากับ 100 ก็จะแสดง "คะแนน $final_score ได้เกรด 4"
จากรูปภาพที่ 5 โปรแกรมคำนวณเกรด บรรทัดที่ 36 - 39 หากนอกเหนือจากเงือนไข บรรทัดที่ 12,16,20,24,28 และ 32 ก็จะแสดง "ผิดพลาด กรุณากรอกตัวเลขไม่เกิน 100"



วิธีติดตั้ง PHP+Mysql |  เริ่มต้นกับภาษา PHP |  การคำนวณค่าและแสดงผล  |  การใช้เงื่อนไข if(){}else{} |  Loop while(){} for i |  การใช้ Array ใน PHP |  วิธีสร้างฐานข้อมูล Mysql |  phpMyAdmin เพิ่ม ลบ แก้ไข Mysql |  ส่งออก - นำเข้า ฐานข้อมูล Mysql ด้วย phpMyAdmin |  เชื่อมต่อฐานข้อมูล Mysql |  วิธีแสดงผลข้อมูล Mysql |  การเพิ่มข้อมูลลงในฐานข้อมูล Mysql ด้วย PHP |  วิธีลบข้อมูล Mysql ด้วย PHP |  วิธีแก้ไขข้อมูล Mysql ด้วย PHP |  ตัวอย่างการค้นหาข้อมูล Mysql ด้วย PHP | 

บทความโดย : Admin 2009-06-16 01:02:10 (31871)
แหล่งที่มา : Admin