12 Feb
ไม่รู้จะเริ่มจากตรงใหนก่อนดี เอาเป็นว่าเริ่มจากเรื่องเล็กๆก่อนล่ะกัน
ไม่รู้ว่าเพื่อนๆที่เขียนโปรแกรมเจอปัญหาเหมือนผมหรือเปล่าคืออยาก select ข้อมูลจากฐานข้อมูลมาแสดงแค่ field เดียวแต่ต้อง
เขียนโปรแกรมซ่ะยืดยาว ผมเลยลองหาดูว่าพวกผู้เชียวชาญเขาทำยังไงกันบ้าง จริงๆก็มีทั้งการเขียน function เขียน class
(ผมก็ไม่เคยเขียนสักกะทีไอ้ class หนิ) เอาเป็นว่าเอาแบบง่ายแต่ใช้ได้จริงล่ะกันนะครับด้วยการเขียน function
วิธีการ ก็เหมือนที่เราเขียน funtion ทั่วไปแหล่ะครับคือ
เราต้องสร้างไฟล์ที่เก็บ function ที่เราจะเขียนครับตั้งชื่อเป็นอะไรก็ได้(ที่ไม่เป็น Keywords ของ php) ในที่นี้ผมใช้ชื่อว่า
functions.inc.php
ละกันนะครับ พอเราตั้งสร้างไฟล์แล้วก็เริ่มเขียน Code กันเลยครับ
<?
function GetData($_field,$_table,$_wcfield,$_wcvalue){
//เริ่มด้วยการประกาศตัวแปรต่างๆที่ใช้ติดต่อกับฐานข้อมูลเหมือนที่เราเขียนกันทั่วๆครับในที่นี้เป็น MySQL ครับ$_dbhost=”<ใส่ชื่อ host ของเราครับเช่น ‘localhost’>”;
$_dbdbname=”<ใส่ชื่อ Database ของเราครับเช่น ‘MyDB’>”;
$_dbuser=”<ใส่ user ที่จะใช้ติดต่อกับ MySQL เช่น ‘root’>”;//แต่มีผู้คั่กแหน่แนะนำว่าเราควรสร้าง user อื่นขึ้นมาใช้งานนะครับไม่ควรใช้ user root เพื่อความปลอดภัย(โอกาสต่อๆไปจะพูดถึงเรื่องนี้ครับ
$_dbpwd=”=”<ใส่ Password ของ user ที่เราใช้ครับเช่น ‘123456′>”;”;//ต่อไปก็เริ่มติดต่อฐานข้อมูลครับ
if($_dbhost==”" || $_dbuser==”" || $_dbpwd==”" || $_dbdbname==”")
{
die(“ERROR:ข้อผิดพลาดที่เราต้องการแสดงครับ! “);}
else
{
$link=mysql_connect($_dbhost,$_dbuser,$_dbpwd);
if(!$link)
{
die(“ERROR:ไม่สารถติดต่อฐานข้อมูล MySQL ได้ “);
}
else
{
mysql_select_db($_dbdbname,$link);
mysql_query(‘SET CHARACTER SET tis620′);//ตรงนี้เป็นทิปครับ เอาไว้กำหนดให้ character set ของเราเป็น tis620 ทุกครังที่มีการเชื่อมต่อ เพื่อแก้ปัญหาการแสดงภาษาไทยที่เป็น ‘?’ ครับ(ไม่ใสก็ได้นะครับ)
}
}//ติดต่อฐานข้อมูลได้แล้วก็เริ่มเข้าไปเอาข้อมูลที่เราต้องการกันเลย
$_sql=”select $_field from $_table where $_wcfield =$_wcvalue”;
$_result=mysql_query($_sql);
while($vres = mysql_fetch_array($_result)) {
$value= $vres[$_field];
mysql_close($link);//อย่าลืมปิดการเชื่อมต่อฐานข้อมูลด้วยนะครับเพื่อความปลอดภัยเหอๆๆ
}
return $value;//ได้ข้อมูลที่ต้องการแล้วก็ส่งมันออกไปแสดงครับ
}
?>
ต่อไปก็เป็นการนำเอา function ที่เราสร้างไว้ไปใช้ครับ
เช่นเรามี table ที่เก็บข้อมูลคำนำหน้าชื่อไว้ แบบนี้ครับ(ตัวอย่าง)
table ชีอ tbl_title (รูปแบบมาตรฐานตามอาจารย์สอนเป่ะเลยนะนี่ อิอิ..) มีข้อมูลแบบนี้ครับ
ID Title
1 นาย
2 นาง
3 นางสาว
สมมุติไฟล์ชื่อ showtitle.php ครับ
<?
include($app_part.”functions.inc.php”);//เรียกไฟล์ที่เก็บ function เข้ามาครับ
echo $titlename1= GetData(‘title’,'tbl_title’,'ID’,'1′);
echo $titlename2= GetData(‘title’,'tbl_title’,'ID’,'2′);
echo $titlename3= GetData(‘title’,'tbl_title’,'ID’,'3′);?>
แค่นี้เราก็ประหยัดเวลาการเขียน Code ไปได้เยอะเลยครับ
ปล.เพื่อนๆที่ใช้วิธีการนี้อยู่ก็ต้องขออภัยนะครับอาจจะไม่เป็นประโยชน์สำหรับท่านเท่าไหร่แต่ก็ติดติงมาได้ครับ
ปล2.ลองเอาวิธีการเขียน function แบบนี้ไปใช้กับงานอื่นก็ได้นะครับเช่น การแปลงรูปแบบการแสดงผลวันที่ เป็นต้นครับ
ปล3.รอฟังความคิดเห็นจากทุกๆคนอยู่นะครับเพื่อ อนาคตของเว็บเรา และเพื่อเราชาววังดีกรีทุกคน
ส่ำบายดี
3 Responses for "เขียน Functions GetData ไว้ใช้กันดีกว่า(PHP)"
เยี่ยมเลยครับ เดี๋ยวจะลองเอาไปปรับใช้ดูครับ ปกติก็ใช้แต่แบบเดิม ๆ ที่เคยเรียนมา
พวกแกพากันเก่งว่ะ แต่ฉันได้คืนอาจารย์ตอนออกอ่ะ ฮ่า ๆ ๆ ตอนนี้ ตัวเนี้ยว่างเปล่าเลย อิอิ
include($app_part.”functions.inc.php”);
อยากทราบว่าตรง $app_part.คืออะไรเหรอค่ะ
Leave a reply