วันพุธที่ 26 พฤศจิกายน พ.ศ. 2557

บทความเกี่ยวกับ PHP

ECHO() ,Exit() ฟังก์ชั่นเล็ก ๆ ที่ไม่ธรรมดา เครื่องมือ DEBUG ชั้นยอด

   หลาย ๆ คนคงจะคุ้นเคยกันดี สำหรับฟังก์ชั่น ECHO() ซึ่งเป็นฟังก์ชั่นเล็ก ๆ ที่ใช้แสดงข้อความต่าง ๆ
สามารถนำมาประยุคใช้ได้หลากหลายรูปแบบตามแต่ความถนัดและความเคยชินของผู้เขียน เช่น 
       การแสดงข้อความ รุปแบบการใช้ <? echo "ข้อความ" ?>  การแสดงค่าของตัวแปร รุปแบบการใช้ <? echo $ตัวแปร ?และอื่น ๆ อีกมากมาย มาว่ากันเรื่อง ECHO() กับการ DEGUG 


  สำหรับการเขียนระบบที่มีการเชื่อมต่อกับฐานข้อมูลนั้น เมื่อมีความผิดพลาดเกิดขึ้น
              - ฟังก์ชั่น ECHO() สามารถช่วยได้อย่างดีทีเดียว เช่น เวลาเพิ่มข้อมูลแล้วเกิด Error ให้สันนิฐานได้เลยว่าต้องมีการผิดพลาดที่คำสั่ง SQL แน่ ๆ ขั้นแรกก็ให้ทำการ ECHO() ตัวแปรที่เก็บคำสั่ง SQL นั่นก่อนเลย เช่น

        if($submit=="ADD"){
       $sql="INSERT INTO tbl_sex set sex_id='".$sex_id."'"',sex_name='".$sex_name."' ";
       echo $sql;
       exit();
       mysql_query($sql); // โดยมากมักจะ Error ตรงบรรทัดหรือคำสั่ง mysql_query(); นี้บ่อยมาก
}
               
                echo $sql; // แค่นี้เราก็จะรู้ว่ามันติดอะไร ตรงไหน และจะแก้ไขอย่างไรต่อไป เช่น ตัวแปรต่าง ๆ มีค่าหรือไม่ รูปแบบคำสั่งถูกต้องหรือไม่ เราก็สามารถ Copy โค้ดที่ได้ไปทดสอบที่ Mysql ได้เลย
                 
                exit(); // คำสั่งนี้จะเป็นการให้จบการทำงานครับ คือ ไม่ต้องประมวลผลบรรทัดต่อไป หรือ แสดงผล อีกต่อไป เพื่อเป็นการไม่เสียเวลาครับ เพราะเราแค่ต้องการทราบว่าตัวแปรนั้น มีค่าอะไร
                 
   สองคำสั่งนี้ เป็นเครื่องมือ Debug ที่ผมใช้บ่อยมาก ถือว่าจะขาดไม่ได้เลยทีเดียว
   ลองเอาไปใช้ดูนะครับ คิดว่าคงจะเป็นประโยชน์อยู่บ้าง ไม่มาก ก็น้อยนะครับ
                 
   เอาเป็นว่า ไม่รู้ ไม่แน่ใจ ก็ "ECHO" โลด รับรองจะไม่ผิดหวัง

Confirm() Function JavaScript การยืนยันการดำเนินการ ง่าย ๆ แต่สำคัญ

Confirm() Function JavaScript การยืนยันการดำเนินการ ง่าย ๆ แต่สำคัญ

    JavaScript นับเป็นเครื่องมือที่สำคัญและจำเป็นอยู่มากสำหรับการเขียนเว็บด้วย PHP เนื่องจาก PHP ยังไม่มีฟังก์ชั่นที่สนับสนุน เพราะ PHP จะทำงานเฉพาะที่ฝั่ง Server คือ การจะทำงานได้นั้นจะต้องส่งค่าไปยังเครื่อง Server เท่านั้น จึงจะสามารถประมวลผลต่าง ๆ ได้ ซึ่งคำสั่ง และลูกเล่นต่าง ๆ คิดว่าหลาย ๆ คนคงจะเคยเห็น เคยใช้งานกันมาบ้างแล้ว
ในบทความนี้ จะขอนำเสนอฟังก์ชั่น Javascript ที่ใช้บ่อยๆ อาจจะไม่ใช่ฟังก์ชั่นที่ซับซ้อนมากมาย แต่ก็สำคัญและจำเป็นต้องใช้

Confirm Function : ฟังก์ชั่นสำหรับยืนยันการดำเนินการ รูปแบบเป็นดังนี้
แบบที่ 1 แบบมาตราฐาน ใช้กันทั่วไป
<script language="JavaScript">
       function chkdel(){
       if(confirm(' กรุณายืนยันการลบอีกครั้ง !!! ')){
       return true; // ถ้าตกลง OK โปรแกรมก็จะทำงานต่อไป
      }else{
        return false; // ถ้าตอบ Cancel ก็คือไม่ต้องทำอะไร
              }
       }
</script>
รูปแบบการเรียกใช้ฟังก์ชั่น
<a href="sex.php?submit=DEL&id_delete=1" OnClick="return chkdel();">
<img src="style/images/del.png"></a>


แบบที่ 2 สั้น ๆ ง่าย ๆ กว่ากันเยอะ
< a href="sex.php?submit=DEL&id_delete=1" onclick="return confirm('กรุณายืนยันการลบอีกครั้ง !!!')" >
Delete </ a >

โค้ดตัวอย่างนี้เป็นการยืนยันการลบข้อมูล



ทั้งสองแบบ ก็ได้ผลเหมือนกัน ใครชอบแบบไหนก็แล้วแต่จะเลือก
 เมื่อผู้ใช้งานกดที่ปุ่ม Delete ( จะเป็นปุ่ม หรือ เป็นแบบปุ่มรูปภาพก็ได้ )
 ก็จะเข้าเหตุการ Onclick ที่เราเขียนโค้ดไว้
 Javascript ก็จะทำงานล่ะ คือ แสดงหน้าจอยืนยัน ดังรูปนะครับ เพื่อให้ผู้ใช้เลือก
 หากผู้ใช้งานตกลงยืนยันการลบนี้ ( กดที่ปุ่ม OK ) ระบบก็จะดำเนินการต่อไป ตามที่เราต้องการ
 ในที่นี้คือ sex.php?submit=DEL&id_delete=1 (ส่งตัวแปร submit และตัวแปร id_delete ไปที่หน้า sex.php )

เราก็ไปเขียนโค้ดที่หน้า sex.php ไว้ดังตัวอย่างนี้ครับ

<?
       if ($submit=="DEL"){
              $sql="delete from tbl_sex where sex_id =".$id_delete;
              mysql_query($sql);
       }
?>

การแทรก Javascript ใน PHP เรื่องกล้วย ๆ ที่จำเป็นต้องรู้

การแทรก Javascript ใน PHP เรื่องกล้วย ๆ ที่จำเป็นต้องรู้

   หลายคนอาจจะกำลังเจอกับปัญหานี้อยู่ และหลายคนอาจจะค้นคว้าหามาได้และผ่านมาได้เรียบร้อยแล้ว แต่ยังไงก็ตาม เมื่อก่อนผมเองก็ไม่รู้วิธีเหมือนกัน ก็เลยอยากจะแบ่งปัน และเผยแพร่ ไว เผื่อคนอื่น ๆ ที่มีปัญหา จะได้สามารถสืบค้นได้ต่อไปในอนาคต
ที่จริงนั้น การแทรกโค้ด Javascript ไว้ใน PHP ก็มีอยู่หลายวิธี ซึ่งแต่ละวิธีก็จะยาก ง่าย ต่างกันไป        
ตามแต่ผู้เขียนโค้ดแต่ละคนจะถนัด
บทความนี้จะขอกล่าวถึงรูปแบบที่ผมใช้เขียนบ่อย ๆ นะครับ
 จะแทรกลงตรงกลางระหว่างโค้ด PHP จริง ๆ หลาย ๆ คนอาจจะไม่ได้ใช้แบบนี้
สมมุติว่า เราจะค้นหา หรือ เรียกดูข้อมูล แล้วไม่มีข้อมูลที่ต้องการอยู่จริง ก็อยากจะให้แสดงผลว่า ไม่พบข้อมูล
เป็นหน้าต่างโต้ตอบขึ้นมาแจ้งให้ผู้ใช้งานทราบ ตามรูปนะครับ
<?
     $Qtotal = mysql_query("select * from tbl_admin");
     $total = mysql_num_rows($Qtotal);
     if($total==0){
?>
     <script language="JavaScript">alert("ไม่พบข้อมูลที่ค้นหา ข้อมูลดังกล่าวอาจไม่มีอยู่ในระบบ \r\n\r\n      กรุณาลองใหม่อีกครั้งครับ");</script>
     <script language="JavaScript">window.location.href = "student.php";</script>

<? } ?>



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

การแทรก PHP ใน Javascript เรื่องกล้วย ๆ ที่อาจจะต้องได้ใช้

การแทรก PHP ใน Javascript เรื่องกล้วย ๆ ที่อาจจะต้องได้ใช้

       การแทรก PHP ใน Javascript นี้ หลายคนอาจจะไม่เคยได้ใช้ หรืออาจจะไม่เคยรู้มาก่อน แต่ในความเป็นจริง มันก็ไม่ค่อยได้ใช้กันเท่าไหร่หรอก เพราะว่ามันค่อนข้างจะยุ่งยากสำหรับหลาย ๆ คน  เช่น ถ้าเราอยากจะส่งตัวแปรของ PHP ไปแสดงในฟังก์ชั่น Alert(); ของ Javascript เพราะว่าจะได้ดูดี หรือ สวยงาม กว่า การแสดงผลแบบธรรมดา ๆ
เหตุผลแค่นี้หล่ะครับ เป็นที่มาของการแทรก PHP ใน Javascript แต่มันก็ไม่ใช่เรื่องยากเย็นอะไร ผมก็รู้มาแค่งู ๆ ปลา ๆ เหมือนกัน
               
         ตัวอย่างโค้ด


<?
     $msg="Code-Father.com";
     $msg=$msg."ยินดีต้อนรับ ทุก ๆ ท่าน";
     $msg=$msg."ขอให้ทุกท่านโชคดี มีตังค์ใช้ และมีสุขภาพแข็งแรง ๆนะครับ ";


?>

แบบที่ 1

     <script type="text/javascript">
          var strMessage = '<?=$msg?>' ;// สร้างตัวแปรมารับก่อน          alert (strMessage);
     </script>


แบบที่ 2

     <script type="text/javascript">
          alert ('<?=$msg?>'); // แบบนี้ก็ใช้ 
     </script>



จากตัวอย่างจะเห็นได้ว่าข้อความยังไม่มีการขึ้นบรรทัดใหม่ มองดูแล้วก็ไม่สวยงามเท่าใดนัก
จากการลองใช้ \r\n ดูแล้ว แต่มันไม่แสดงผลอะไรเลย ก็เลยสรุปว่า \r\n นั้น ใช้ไม่ได้

\r ก็คือสั่งให้ cursor return กลับไปยังต้นบรรทัด รหัส ascii = 10
\n ก็คือให้ขึ้นบรรทัดใหม่ รหัส ascii = 13

                ก็เลยต้องหาวิธีใหม่ ต้องใช้ฟังก์ชั่น "ค้นหา" และ "แทนที่" เข้ามาช่วย ดังตัวอย่างด้านล่างนี้
การที่เราจะค้นหาได้นั้น เราก็ต้องสร้างคำที่จะค้นหา เพื่อที่จะได้แทนที่ขึ้นมาก่อน
จึงเลือกใช้ XX (ไม่ได้โรคจิตนะครับ) จากนั้นก็ใช้ฟังก์ชั่น replace() มาทำการค้นหาและแทนที่ด้วย "\r=n"

<?
     $msg="Code-Father.com XX ";
     $msg=$msg."ยินดีต้อนรับ ทุก ๆ ท่าน XX ";
     $msg=$msg."ขอให้ทุกท่านโชคดี มีตังค์ใช้ และมีสุขภาพแข็งแรง ๆ นะครับ ";

?>
     <script type="text/javascript">
          var strMessage = '<?=$msg?>' ; // สร้างตัวแปรมารับก่อนนะครับ
          alert (strMessage.replace(/x/ig,"\r\n"));
     </script>

* การสร้างตัวแปรมารับนั้น เพื่อที่จะสามารถนำตัวแปรใหม่ไปใช้งานต่อได้อีก หากใช้ตัวแปรของ PHP โดยตรง
* จะไม่สามารถทำได้ จึงต้องสร้างตัวแปรของ Javascript ขึ้นมารองรับอีกทีนึง




PHP Function Date การแปลงวันที่จาก ค.ศ. เป็น พ.ศ. ( วันที่แบบไทย ๆ สำหรับคนไทย )

 PHP Function Date การแปลงวันที่จาก ค.ศ. เป็น พ.ศ. ( วันที่แบบไทย ๆ สำหรับคนไทย )

 หลาย ๆ คน คงจะเคยเจอปัญหาและหลายคนอาจจะกำลังมีปัญหาเกี่ยวกับเรื่องวันที่ไม่ว่าจะเป็นการเขียนโปรแกรมด้วยภาษาอะไร ก็ต้องเจอปัญหาเดียวกันนี้ทั้งนั้น ถ้ารู้เทคนิคและวิธีการก็จะผ่านมันไปได้ แต่ละคนก็จะมีเทคนิคที่แตกต่างกันออกไป  ซึ่งทั้งหมดนี้สามารถค้นหาได้จากอินเตอร์เน็ต
                 บทความนี้จะพูดถึงการแปลงวันที่จาก ค.ศ. เป็น พ.ศ. เอาแบบง่าย ๆ นี่หล่ะ ถ้าใครไม่เข้าใจอะไรตรงไหน ก็อย่าเก็บเอาไว้คนเดียว
               
                ตัวอย่างโค้ด เป็นดังนี้ครับ (สามารถเอาไปไว้ใช้งานได้เลย)
<?
     $thaiweek=array("วันอาทิตย์","วันจันทร์","วันอังคาร","วันพุธ","วันพฤหัส","วันศุกร์","วันเสาร์");

     $thaimonth=array("มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","      มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม");

     echo $thaiweek[date("w")] ,"ที่",date(" j "), $thaimonth[date(" m ")-1] , " พ.ศ. ",date(" Y ")+543;
     // ผลลัพธ์จะได้ดังนี้ครับ วันเสาร์ที่ 26 กันยายน พ.ศ. 2552
?>


อธิบายโค้ดกันเล็กน้อย เพื่อความเข้าใจที่ถูกต้อง ตรงกัน
$thaiweek เป็นตัวแปรที่ใช้เก็บวันครับ จะเก็บแบบ array() ข้อมูลแรกจะเริ่มจากศูนย์(0) เสมอ
หากต้องการทดสอบว่า array() ตัวไหนเก็บค่าอะไรไว้ ก็ลอง Echo() ดูกันได้ ดังนี้

echo $thaiweek[0]; จะได้ผล = วันอาทิตย์
echo $thaiweek[1]; จะได้ผล = วันจันทร์
echo $thaiweek[2]; จะได้ผล = วันอังคาร
echo $thaiweek[3]; จะได้ผล = วันพุธ
echo $thaiweek[4]; จะได้ผล = วันพฤหัส
echo $thaiweek[5]; จะได้ผล = วันศุกร์
echo $thaiweek[6]; จะได้ผล = วันเสาร์

หากต้องการรู้ว่า เราส่งค่าอะไรเข้าไปในฟังก์ชั่น thaiweek ก็ให้ลอง Echo date("w"); ดูครับ
สำหรับตัวอย่างนี้จะได้ค่า 6 จากโค้ด $thaiweek[date("w")] จะเป็นการส่งค่า คือ 6 เข้าไปเช็ค
ในฟังก์ชั่น thaiweek ก็จะได้ค่าเป็น วันเสาร์
ส่วนฟังก์ชั่น thaimonth นั่นก็มีหลักการทำงานเช่นเดียวกันกับฟังก์ชั่น thaiweek ครับ
สิ่งที่แตกต่างก็จะอยู่ที่ตอนส่งค่าเข้าไปตรวจเช็ค $thaimonth[date(" m ")-1] จะสังเกตุเห็นว่า จะมี -1 อยู่ด้วย
อันนี้ก็เพราะว่าฟังก์ชั่น date(" m ") จะได้ค่าตัวเลขเดือนออกมา ในที่นี้คือ 09 (เดือนกันยายน) ซึ่งบางคนอาจจะบอกว่า
"อ้าว ไม่ก็ถูกแล้วนี่ ทำไมไม่ส่งค่าเข้าไปตรง ๆ เลยหล่ะ"
ถ้าส่งค่า 9 เข้าไปเช็ค ผลที่ได้จะเป็นเดือนตุลาคม  เพราะอะไรนะหรอ
ก็เพราะว่าในตัวแปร array() ที่ชื่อว่า thaimonth() นั้น ข้อมูลแรกมันจะเริ่มต้นที่ศูนย์ (0)
จึงเป็นเหตุที่เราต้องมีการ -1 เข้าไป เพื่อให้ได้ผลลัพธ์ที่ถูกต้องนั่นเอง
ส่วนโค้ดตรงส่วน date(" Y ")+543; นั้น ก็อธิบายได้ว่า
เมื่อเราลอง Echo date(" Y ") ค่าที่ได้จะเป็นปี ค.ศ. นะครับ ซึ่งเราไม่ต้องการครับ
และจากการคำนวณ ปี ค.ศ. กับปี พ.ศ. นั้นจะห่างกันอยู่ 543 ปี
จึงเป็นที่มาของการ +543 เข้าไปในโค้ดอย่างที่เห็นครับ จะได้เป็น 2009+543 = 2552 ตามความต้องการ

การค้นหาข้อมูลในฐานข้อมูล ตามชื่อฟิลด์ Code PHP Search In Mysql Database By Fields

การค้นหาข้อมูลในฐานข้อมูล ตามชื่อฟิลด์ Code PHP Search In Mysql Database By Fields



  การค้นหาข้อมูลในฐานข้อมูล ตามรายชื่อฟิลด์ที่ต้องการนั้น หลาย ๆ คนคงจะเคยพบเจอกันมาบ้างแล้ว
ซึ่งผู้ใช้งานจะสามารถค้นหาและใช้งานได้สะดวก รวดเร็ว และถูกต้องตรงตามความต้องการมากกว่าการไม่ระบุฟิล์
ที่จะค้นหา อาจจะไม่ใช่เทคนิค "ขั้นเทพ" อะไร แต่คนธรรมดาอย่างเรา ๆ ก็ใช้ได้ ไม่มีปัญหา

         ตัวอย่างนี้จะเป็นการค้นหาข้อมูลนักเรียน จะมีค้นหาตามรหัสนักศึกษา ตามชื่อ ตามนามสกุล และตามกลุ่มเรียน
โค้ดในส่วนของฟอร์มค้นหา

<form name="form1" method="post" action="student.php?show=OK&strSearch=Y">
<table width="100%" >
<tr>
<td width="36%">
<div align="right">ค้นหา : 
<select name="Search2">
     <option value="Student_ID" <? if($Search2=="Student_ID"){ ?>selected<? }?>>รหัสนักศึกษา</option>
     <option value="FirstName" <? if($Search2=="FirstName"){ ?>selected<? }?>>ชื่อ</option>
     <option value="LastName" <? if($Search2=="LastName"){ ?>selected<? }?>>นามสกุล</option>
     <option value="Group_Study" <? if($Search2=="Group_Study"){ ?>selected<? }?>>กลุ่มเรียน</option>
</select></div>
</td>
<td width="64%">
     <input name="Search" type="text" size="20" value="<? echo $Search?>"> 
     <input type="submit" name="submit" value="Search"> ตามรหัสนักศึกษา,ชื่อ, นามสกุล, กลุ่มเรียน 
</td>
</tr>
</table>
</form>

$Search = ตัวแปรที่ใช้เก็บข้อความที่เราค้นหาครับ เมื่อส่งค่าไปค้นหาแล้วก็จะนำค่าตัวแปรนี้ไปแสดงไว้ในช่องค้นหาตามโค้ดนี้ <input name="Search" type="text" size="20" value="<? echo $Search?>"> เพื่อให้ผู้ใช้ได้รู้ว่าเขาค้นหาอะไร
$Search2 = เป็นตัวแปรที่ใช้เก็บชื่อฟิล์ดที่เราค้นหา เมื่อส่งค่าไปค้นหาก็จะนำตัวแปรนี้ไปตรวจสอบ ตามโค้ดนี้
<option value="Student_ID" <? if($Search2=="Student_ID"){ ?>selected<? }?>>รหัสนักศึกษา</option>
<option value="FirstName" <? if($Search2=="FirstName"){ ?>selected<? }?>>ชื่อ</option>
<option value="LastName" <? if($Search2=="LastName"){ ?>selected<? }?>>นามสกุล</option>
<option value="Group_Study" <? if($Search2=="Group_Study"){ ?>selected<? }?>>กลุ่มเรียน</option>

เพื่อให้ผู้ใช้ได้รู้ว่าเขาได้เลือกค้นหาตามเงื่อนไขได เช่น ถ้าผู้ใช้เลือกค้นหาตาม ชื่อ เมื่อค้นหาเสร็จระบบก็จะตรวจเช็ค
และทำการโฟกัส หรือ Selected ไว้ที่ ชื่อ

* * * ถ้าไม่ส่งค่าตัวแปรทั้ง 2 ตัวนี้ ผู้ใช้ก็จะไม่ทราบว่าตัวเองได้ค้นหาอะไร ตามเงื่อนไขอะไร 

การทำระบบล๊อคอิน ล๊อคเอ้า และป้องกันการลักไก่ PHP Code LOGIN LOGOUT

        การทำระบบล๊อคอิน ล๊อคเอ้า และป้องกันการลักไก่ PHP Code LOGIN LOGOUT


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


 กระบวนการ การทำงานของระบบนี้

ผู้ใช้กรอกชื่อและรหัสผ่าน สำหรับเข้าใช้งาน คลิกที่ปุ่ม LOG - IN
ระบบจะทำการตรวจเช็คว่าผู้ใช้นี้ และรหัสผ่านนี้ มีอยู่ในระบบหรือไม่
ถ้าไม่มีก็แจ้งให้สมัครสมาชิก
ถ้ามีก็ให้เข้าใช้งานได้ โดยระบบจะจดจำสมาชิกไว้ด้วย โดยตัวแปร _SESSION
ผู้ใช้ยังไม่ล๊อกอินเข้าสู่ระบบ จะไม่สามารถเข้าใช้งานหน้านั้น ๆ ได้ (ถ้าไม่เขียนโค้ดดักไว้ บางคนก็จะ Bookmark หน้านั้นไว้
แล้วก็เข้ามาดูได้ในภายหลัง โดยไม่สมัีครสมาชิก)
หากผู้ใช้ต้องการออกจากระบบก็ให้ทำการ ล๊อกเอ้า
<? // เมื่อกรอกชื่อ รหัส แล้วคลิกปุ่ม LOG - IN ก็จะเข้าเงื่อนไขการตรวจเช็ค

if($OK==" LOG - IN " ){ // ถ้ามีการคลิกปุ่ม LOG - IN
     ob_start();
     SESSION_START(); // ประกาศตัวแปรไว้สำหรับจำผู้ใช้งาน
     SESSION_REGISTER("user"); // ตั้งชื่อตัวแปร
     $sql="Select * from user Where user_name ='".$username."' and pwd='".$password2."' and status_use='Y'"; // เลือกดูข้อมูลผู้ใช้ ตามชื่อ และรหัสผ่านที่ส่งมา
     $rstTemp=mysql_query($sql);
     if(mysql_num_rows($rstTemp)==0){ // ถ้าได้ค่า rows =0 แสดงว่าชื่อ หรือ รหัสผ่าน ไม่มีอยู่ในระบบ หรือไม่ถูกต้อง
          $_SESSION["user"]=""; // เซ็ตค่าตัวแปร=ค่าว่าง
?>


<script language="JavaScript">alert("User Name หรือ Password ไม่ถูกต้อง หรืออายุการใช้งานหมด \r\n\r\nกรุณาลองใหม่อีกครั้ง หรือติดต่อเว็บมาสเตอร์ \r\n\r\nเพื่อสมัครสมาชิกใหม่ หรือต่ออายุการใช้งาน ...... ^_^\r\n\r\n ");</script> // แจ้งให้ผู้ใช้ทราบว่า การล๊อกอินไม่สำเร็จ
<?
     }else{ // ถ้าได้ค่า rows=1 แสดงว่าชื่อและรหัสผ่านถูกต้อง
          $_SESSION["user"]=$username; // เซ็ตค่าผู้ใช้ให้กับตัวแปร
          $_SESSION["user_name"]=mysql_result($rstTemp,0,"name"); // สร้างตัวแปรเพื่อเก็บชื่อจริงของผู้ใช้
          $uName=mysql_result($rstTemp,0,"name"); // ตัวแปรเก็บชื่อจริงอีกตัว เอาไว้ใช้งานข้างล่างนี้หล่ะ
?>

<script language="JavaScript">alert("สวัสดีครับคุณ <?=$uName?> \r\n\r\nยินดีต้อนรับเข้าสู้เว็บไซต์ ( www.สูตรหวย.com ) \r\n\r\nขอให้โชคดี นะครับ ...... ^_^\r\n\r\n ");
</script> // แจ้งให้ผู้ใช้ทราบว่า การล๊อกอินได้เสร็จสมบูรณ์แล้ว
<?
     }
}?>
               
โค้ดป้องกันการลักไก่ เข้าใช้งานโดยไม่ได้รับอนุญาติ เช่น หน้าโพส เราจะให้เฉพาะสมาชิกเท่านั้นที่จะสามารถโพสได้
แต่ถ้าเราไ่ม่ป้องกันเอาไว้ พวกหัวใสเขาก็จะพิมพ์ ที่อยู่ของหน้านั้น ๆ เข้าใช้งานได้สบายอุราเลยทีเดียว
ดังนั้นเราจึงจำเป็นต้องป้องกันหน้านั้น ๆ ไว้ โดยอาจจะสร้างเป็นไฟล์ Check_User.php ขึ้นมาก็ได้ เพราะถ้าเผื่อมีหลายหน้า
โค้ดมันจะซ้ำซ้อน และเวลาปรับเปลี่ยนจะยุ่งยากมาก หากวางไว้ทุก ๆ ไฟล์


  โค้ดตรวจสอบ


<?
session_start();
if($_SESSION['user'] ==""){ // ถ้า $_SESSION['user'=ค่าว่าง แสดงว่าเขากำลังจะมาลักไก่เรา
?>
<script type="text/javascript">
alert ('สงวนสิทธิ์การใช้งานเฉพาะสมาชิกเท่านั้น หรือ \r\n \r\n ถ้าคุณเป็นสมาชิกอยู่แล้ว กรุณาล๊อกอินเข้าสู่ระบบก่อนนะครับ\r\n \r\nหรือ ถ้าคุณยังไม่สมัครเป็นสมาชิก\r\nกรุณาติดต่อสมัครสมาชิก เพื่อใช้งานด้วยนะครับ\r\n \r\n ...ขอบคุณครับ'); // เราก็แจ้งเลยว่า หยุด อย่าขยับ เจ้าหน้าที่ล้อมไว้หมดแล้ว
window.location="index.php"; // แล้วก็ส่งเขากลับไปหน้าแรก หรือหน้าสำหรับสมัครสมาชิกเลย
</script>
<? } ?>


   โค้ดส่วนของการล๊อกเอ้า Log-OUt



<?
if($Logout=="Y"){ // เช็คว่าผู้ใช้ได้คลิกล๊อกเอ้าหรือไม่ ถ้าใช่ก็ต่อเลย
session_start();
session_destroy(); // ล้างค่าตัวแปร Session
$_SESSION["user"]=""; // กำหนดค่าว่างเปล่าให้กับตัวแปร
?>
<script language="JavaScript">alert("คุณได้ออกจากระบบเรียบร้อยแล้วครับ \r\n\r\n ขอบคุณที่สละเวลาแวะเข้ามาเยี่ยมชมเว็บไซต์เรา\r\n\r\n โอกาสหน้ามาใหม่นะครับ...... ^_^\r\n\r\n ");
</script> // แล้วก็แจ้งว่าผู้่ใช้ออกจากระบบแล้ว
<? }?>

วันพุธที่ 5 พฤศจิกายน พ.ศ. 2557

ความหมายของฐานข้อมูล ระบบฐานข้อมูล เเละชนิดของข้อมูล


    ความหมายของฐานข้อมูลเเละระบบฐานข้อมูล


       ฐานข้อมูล หมายถึง แหล่งที่ใช้สำหรับเก็บรวบรวมข้อมูลซึ่งอยู่ในรูปแฟ้มข้อมูลมารวมไว้ที่เดียวกัน รวมทั้งต้องมีส่วนของพจนานุกรมข้อมูล (data dictionary) เก็บคำอธิบายเกี่ยวกับโครงสร้างของฐานข้อมูล และเนื่องจากข้อมูลที่จัดเก็บนั้นต้องมีความสัมพันธ์ซึ่งกันและกันทำให้สามารถสืบค้น (retrieval) แก้ไข (modified) ปรับปรุงเปลี่ยนแปลงโครงสร้าง ข้อมูล (update) และจัดเรียง (sort) ได้สะดวกขึ้นโดยในการกระทำการดังที่กล่าวมาแล้ว ต้องอาศัยซอฟต์แวร์ประยุกต์สำหรับจัดการฐานข้อมูล
     
        ระบบฐานข้อมูล หมายถึง ระบบการรวบรวมแฟ้มข้อมูลหลายๆ แฟ้มข้อมูลเข้าด้วยกัน โดยขจัดความซ้ำซ้อนของข้อมูลออก แล้วเก็บข้อมูลไว้ที่ศูนย์กลาง เพื่อการใช้งานร่วมกันในองค์กร ภายในระบบต้องมีส่วนที่เป็นโปรแกรมประยุกต์ที่สร้างขึ้นเพื่อเชื่อมโยงและใช้งานข้อมูลในฐานข้อมูล (database) และจะต้องมีการดูแลรักษาความปลอดภัยของข้อมูลเหล่านั้น มีการกำหนดสิทธิของผู้ใช้งานแต่ละคนให้แตกต่างกัน ตามแต่ความต้องการในการใช้งาน
     

        จากความหมายที่กล่าวมาข้างต้น ระบบฐานข้อมูลจะประกอบด้วยแฟ้มข้อมูลจำนวนหลายๆ แฟ้มดังตัวอย่างในรูป แฟ้มข้อมูลเหล่านี้ต้องมีการจัดระบบแฟ้มไว้อย่างดี กล่าวคือ ข้อมูลในแฟ้มข้อมูลเดียวกันต้องไม่มีการซ้ำซ้อนกัน แต่ระหว่างแฟ้มข้อมูลอาจมีการซ้ำซ้อนกันได้บ้าง และต้องเปิดโอกาสให้ผู้ใช้สามารถเข้าถึงข้อมูล และค้นหาได้ง่าย นอกจากนี้ยังสามารถ เพิ่มเติม หรือลบออกได้โดยไม่ทำให้ข้อมูลอื่นเสียหาย 


ชนิดของข้อมูล

ข้อมูลที่ต้องการจัดเก็บนั้นอาจจะมีรูปแบบได้หลายอย่าง รูปแบบสำคัญ ๆ ได้แก่
      
      1 ข้อมูลแบบรูปแบบ (formatted data) เป็นข้อมูลที่รวมอักขระซึ่งอาจหมายถึงตัวอักษร ตัวเลข ซึ่งเป็นรูปแบบที่แน่นอน ในแต่ละระเบียน ทุกระเบียนที่อยู่ในแฟ้มข้อมูลจะมีรูปแบบที่เหมือนกันหมด ข้อมูลที่เก็บนั้นอาจเก็บในรูปของรหัสโดยเมื่ออ่านข้อมูลออกมาอาจจะต้องนำรัหสนั้นมาตีความหมายอีกครั้ง เช่น แฟ้มข้อมูลประวัตินักศึกษา
      2 ข้อมูลแบบข้อความ (text)เป็นข้อมูลที่เป็นอักขระในแบบข้อความ ซึงอาจหมายถึงตัวอักษร ตัวเลข สมการฯ แต่ไม่รวมภาพต่าง ๆ นำมารวมกันโดยไม่มีรูปแบบที่แน่นอนในแต่ละระเบียน เช่น ระบบการจัดเก็บข้อความต่าง ๆ ลักษณะการจัดเก็บแบบนี้จะไม่ต้องนำข้อมูลที่เก็บมาตีความหมายอีก ความหมายจะถูกกำหนดแล้วในข้อความ
      3 ข้อมูลแบบภาพลักษณ์ (images) เป็นข้อมูลที่เป็นภาพ ซึ่งอาจเป็นภาพกราฟที่ถูกสร้างขึ้นจากข้อมูลแบบรูปแบบรูปภาพ หรือภาพวาด คอมพิวเตอร์สามารถเก็บภาพและจัดส่งภาพเหล่านี้ไปยังคอมพิวเตอร์อื่นได้ เหมือนกับการส่งข้อความ โดยคอมพิวเตอร์จะทำการแปลงภาพเหล่านี้ ซึ่งจะทำให้คอมพิวเตอร์สามารถที่จะปรับขยายภาพและเคลื่อนย้ายภาพเหล่านั้นได้เหมือนกับข้อมูลแบบข้อความ
     4 ข้อมูลแบบเสียง (audio) เป็นข้อมูลที่เป็นเสียง ลักษณะของการจัดเก็บก็จะเหมือนกับการจัดเก็บข้อมูลแบบภาพ คือ คอมพิวเตอร์จะทำการแปลงเสียงเหล่านี้ให้คอมพิวเตอร์สามารถนำไปเก็บได้ ตัวอย่างได้แก่ การตรวจคลื่นหัวใจ จะเก็บเสียงเต้นของหัวใจ
     5 ข้อมูลแบบภาพและเสียง (video) เป็นข้อมูลที่เป็นเสียงและรูปภาพ ที่ถูกจัดเก็บไว้ด้วยกัน เป็นการผสมผสานรูปภาพและเสียงเข้าด้วยกัน ลักษณะของการจัดเก็บข้อมูล คอมพิวเตอร์จะทำการแปลงเสียงและรูปภาพนี้ เช่นเดียวกับข้อมูลแบบเสียงและข้อมูลแบบภาพลักษณะซึ่งจะนำมารวมเก็บไว้ในแฟ้มข้อมูลเดียวกัน

โปรเเกรมฐานข้อมูลที่นิยมใช้

โปรแกรมฐานข้อมูลที่นิยมใช้

        โปรแกรมฐานข้อมูล เป็นโปรแกรมหรือซอฟแวร์ที่ช่วยจัดการข้อมูลหรือรายการต่าง ๆ ที่อยู่ในฐานข้อมูล ไม่ว่าจะเป็นการจัดเก็บ การเรียกใช้ การปรับปรุงข้อมูล
        
        โปรแกรมฐานข้อมูล จะช่วยให้ผู้ใช้สามารถค้นหาข้อมูลได้อย่างรวดเร็ว ซึ่งโปรแกรมฐานข้อมมูลที่นิยมใช้มีอยู่ด้วยกันหลายตัว เช่น Access, FoxPro, Clipper, dBase, FoxBase, Oracle, SQL เป็นต้น โดยแต่ละโปรแกรมจะมีความสามารถต่างกัน บางโปรแกรมใช้ง่ายแต่จะจำกัดขอบเขตการใช้งาน บ่งโปรแกรมใช้งานยากกว่า แต่จะมีความสามารถในการทำงานมากกว่า
        
        โปรแกรม Access นับเป็นโปรแกรมที่นิยมใช้กันมากในขณะนี้ โดยเฉพาะในระบบฐานข้อมูลขนาดใหญ่ สามารถสร้างแบบฟอร์มที่ต้องการจะเรียกดูข้อมูลในฐานข้อมูล หลังจากบันทึกข้อมูลในฐานข้อมูลเรียบร้อยแล้ว จะสามารถค้นหาหรือเรียกดูข้อมูลจากเขตข้อมูลใดก็ได้ นอกจากนี้ Access ยังมีระบบรักษาความปลอดภัยของข้อมูล โดยการกำหนดรหัสผ่านเพื่อป้องกันความปลอดภัยของข้อมูลในระบบได้ด้วย
      
        โปรแกรม FoxPro เป็นโปรแกรมฐานข้อมูลที่มีผู้ใช้งานมากที่สุด เนื่องจากใช้ง่ายทั้งวิธีการเรียกจากเมนูของ FoxPro และประยุกต์โปรแกรมขึ้นใช้งาน โปรแกรมที่เขียนด้วย FoxPro จะสามารถใช้กลับ dBase คำสั่งและฟังก์ชั่นต่าง ๆ ใน dBase จะสามารถใช้งานบน FoxPro ได้ นอกจากนี้ใน FoxPro ยังมีเครื่องมือช่วยในการเขียนโปรแกรม เช่น การสร้างรายงาน
      
        โปรแกรม dBase เป็นโปรแกรมฐานข้อมูลชนิดหนึ่ง การใช้งานจะคล้ายกับโปรแกรม FoxPro ข้อมูลรายงานที่อยู่ในไฟล์บน dBase จะสามารถส่งไปประมวลผลในโปรแกรม Word Processor ได้ และแม้แต่ Excel ก็สามารถอ่านไฟล์ .DBF ที่สร้างขึ้นโดยโปรแกรม dBase ได้ด้วย
    
       โปรแกรม SQL เป็นโปรแกรมฐานข้อมูลที่มีโครงสร้างของภาษาที่เข้าใจง่าย ไม่ซับซ้อน มีประสิทธิภาพการทำงานสูง สามารถทำงานที่ซับซ้อนได้โดยใช้คำสั่งเพียงไม่กี่คำสั่ง โปรแกรม SQL จึงเหมาะที่จะใช้กับระบบฐานข้อมูลเชิงสัมพันธ์ และเป็นภาษาหนึ่งที่มีผู้นิยมใช้กันมาก โดยทั่วไปโปรแกรมฐานข้อมูลของบริษัทต่าง ๆ ที่มีใช้อยู่ในปัจจุบัน เช่น Oracle, DB2 ก็มักจะมีคำสั่ง SQL ที่ต่างจากมาตรฐานไปบ้างเพื่อให้เป็นจุดเด่นของแต่ละโปรแกรมไป

การสร้างฐานข้อมูล

การสร้างฐานข้อมูล


  หลังจากที่เราได้ทำการติดตั้ง appserv ในเครื่องของเราเรียบร้อยแล้ว ต่อมาก็จะมาพูดถึงการสร้างฐานข้อมูลเพื่อใช้สำหรับติดตั้ง WordPress ซึ่งเราจะสร้างโดยผ่านทาง phpMyAdmin ให้กับเว็บไซต์ของเรา โดยมีขั้นตอนดังนี้

 1. เปิดเว็บเบราเซอร์เข้าลิ้งค์ แล้วก็พิมพ์คำว่า http://localhost  หรือ  http://127.0.0.1 ก็จะได้หน้าตาแบบนี้ขึ้นมา




2. คลิกที่ phpMyAdmin หรือเข้าที่ลิ้งค์ http://localhost/phpmyadmin




3.3. ให้ใส่ชื่อผู้ใช้และหรัสผ่าน
o     ชื่อผู้ใช้งาน ใส่ root
o    -รหัสผ่าน อันเดียวกับตอนที่ติดตั้ง appserv ในตอนแรก




4. ให้ทำตามขั้นตอนดังต่อไปนี้
o    หมายเลข ให้เลือกเป็นแบบ utf8_genneral_cl
o    หมายเลข ให้ตั้งชื่อฐานข้อมูล ชื่ออะไรก็ได้แต่ต้องเป้นภาษาอังกฤษ
o    หมายเลข เมื่อทำ ข้อ และ เสร็จแล้วก็ให้ทำตามคลิกสร้างได้เลย


ตัวอย่างฐานข้อมูล

ตัวอย่างฐานข้อมูล


1. ฐานข้อมูลในโรงเรียน จะเป็นการรวบรวมข้อมูลเกี่ยวกับนักเรียน ครู ภารโรง พัสดุ    สิ่งของ ฯลฯ อาจบันทึกข้อมูลลงกระดาษ แบบฟอร์มหรือจัดเก็บลงคอมพิวเตอร์ เมื่อมีการจัดเก็บข้อมูลอย่างเป็น ระเบียบ การค้นหาก็ทำได้ง่าย

2. ฐานข้อมูลของร้านค้า เมื่อมีการจัดเก็บข้อมูลเกี่ยวกับสินค้าและลูกค้าอย่างเป็นระบบดีแล้ว การ จัดการก็ง่าย สินค้ามีกี่รายการ ต้นทุน กำไรเท่าไร ก็ดูได้ทันที ในโลกธุรกิจ การมีข้อมูลจำนวนมากและมี การจัดการที่ดี มีผลต่อความได้เปรียบในการทำธุรกิจและการประสบความสำเร็จ

3. ฐานข้อมูลบัญชีครัวเรือน จะเป็นการรวบรวมข้อมูลเกี่ยวกับรายรับ-รายจ่ายในการใช้เงินในแต่ละวันของครัวเรือน ค่าใช้จ่ายที่เกี่ยวข้อง ฯลฯ อาจบันทึกข้อมูลลงกระดาษ แบบฟอร์มหรือจัดเก็บลงคอมพิวเตอร์ เมื่อมีการจัดเก็บข้อมูลอย่างเป็น ระเบียบ การค้นหาก็ทำได้ง่าย

4. ฐานข้อมูลสมาชิกสหกรณ์ จะเป็นการรวบรวมข้อมูลเกี่ยวกับเงินที่ได้รับจากการออมเงินของสมาชิกในแต่ละวัน และจะมีการบันทึกอย่างต่อเนื่อง หากมีค่าใช้จ่ายเกี่ยวกับสหกรณ์ก็จะมีการลงบันทึกไว้และมีการเก็บใบเสร็จไว้เป็นหลักฐาน ฯลฯ อาจบันทึกข้อมูลลงกระดาษ แบบฟอร์มหรือจัดเก็บลงคอมพิวเตอร์ เมื่อมีการจัดเก็บข้อมูลอย่างเป็น ระเบียบ การค้นหาก็ทำได้ง่าย

5. ฐานข้อมูลระบบห้องสมุด ยืม-คืน จะเป็นการจัดการเกี่ยวกับการยืม-คืนหนังสือ ให้ง่ายต่อการค้นหา จะมีข้อมูลที่เกี่ยวข้อง เัช่น ข้อมูลหนังสือ ข้อมูลการยืม ข้อมูลการคืน 
รหัสและประเภทหนังสือ ฯลฯ ทำให้ค้นหาได้ง่ายขึ้น 

ตัวอย่างการออกแบบฐานข้อมูลการสั่งซื้อสินค้า

ตัวอย่างการออกแบบฐานข้อมูลการสั่งซื้อสินค้า


ขั้นตอนที่ 1  กำหนด Entity  ทั้งหมดของระบบ










ขั้นตอนที่ 2  กำหนด Attribute  ต่าง ๆ ของ Entity และกำหนด Primary key (คีย์หลัก)  B  




             











































ขั้นตอนที่  3  การกำหนดความสัมพันธ์ระหว่าง Entity แต่ละ Entity







ขั้นตอนที่
  4    ทำการเปลี่ยน Entity  ที่ได้อยู่ในรูปตาราง

ตารางลูกค้า (Customer)
รหัสลูกค้า
ชื่อลูกค้า
นามสกุล
ที่อยู่
จังหวัด
หมายเลขโทรศัพท์
CU-001
นางลูกไก่
กายสิทธิสกุลสูง
122/3 หมู่ 4   ต. เขาสามยอด  อ.เมือง
ลพบุรี
082-9523341
CU-002
นางกุ๊กกิ๊ก
ตั้งใจซื่อตรง
123 หมู่ ต.ถนนใหญ่ อ.เมือง
ลพบุรี
086-1245896
CU-003
นายมาดแมน
แสนกุศลแรงกล้า
2354 /1 หมู่ ต.วังจั่น อ.โคกสำโรง
ลพบุรี
085-1245311
CU-004
นายสุดหล่อ
เสี้ยวความดี
2356/251 เทศบาลเมือง
ลพบุรี
086-2541255

 

ตารางใบสั่งซื้อ (Order)
รหัสใบสั่งซื้อ
วันที่สั่งซื้อ
 รหัสลูกค้า
รหัสสินค้า
 จำนวนสินค้าที่สั่ง
OR-001
12/02/2550
CU-002
001001
2
OR-001
12/02/2550
CU-002
005
5
OR-001
12/02/2550
CU-002
003
3
OR-002
14/02/2550
CU-001
001
10
OR-002
14/02/2550
CU-001
002
5
OR-003
25/02/2550
CU-004
003
6
OR-003
25/02/2550
CU-004
004
4

ตารางสินค้า (Product)
รหัสสินค้า
ชื่อสินค้า
รหัสประเภทสินค้า
ประเภทสินค้า
ยี่ห้อสินค้า
รุ่นสินค้า
ราคาต่อหน่วย
จำนวนในสต๊อก
001
ปลากระป๋อง
PR-001
เครื่องกระป๋อง
สามแม่ครัว
AL_0041
20.00
100
002
ซอสมะเขือเทศ
PR-002
ซอส
ภูเขาทอง
SO_120
56.00
150
003
บะหมี่กึ่งสำเร็จรูป
PR-003
บะหมี่
ยำยำ
ND_003
5.50
200
004
บะหมี่กึ่งสำเร็จรูป
PR-003
บะหมี่
ไวไว
ND_023
5.50
50
005
น้ำตาลทราย
PR-004
น้ำตาล
มิตรผล
SU_542
22.00
250