Welcome

Innovation distinguishes between a leader and a follower.

" นวัตกรรมแยกผู้นำกับผู้ตามออกจากกัน " Steve Jobs


การอ่านข้อมูลจากตารางในฐานข้อมูล MySQL มาแสดง



 ก่อนที่จะทำอะไรต่อไป เราต้องมาเตรียมฐานข้อมูลกันก่อนครับ ...

 ให้ท่านสร้างฐานข้อมูลชื่อ school ใน MySQL ( อาจจะสร้างโดยการใช้ phpMyAdmin หรือจะสร้างผ่าน Command Line ก็ได้ครับ )

 จากนั้นให้ท่านสร้างตารางชื่อ student ลงในฐานข้อมูล school ที่สร้างเมื่อตะกี้ โดยให้มี 2 ฟิลด์ ได้แก่

ชื่อฟิลด์
ประเภท
ขนาด
ความหมาย
stdidvarchar7รหัสนักศึกษา
stdnamevarchar50ชื่อ-สกุลนักศึกษา


 จากนั้นให้ท่านใส่ข้อมูลลงไปซัก 4 - 5 คน (เรคอร์ด) เนื่องจากว่าในบทนี้เราจะยังไม่ได้ว่ากันเรื่องการเขียน PHP ในการเพิ่มข้อมูลครับ ... ใจเย็น ๆ ทีละขั้น นะครับ

 เสร็จแล้วก็เริ่มสร้างเอกสาร PHP เพื่อดึงข้อมูลมาแสดงกันเลยครับ ดู Code กันเลยครับ ...

<html>
<head>
<title> การอ่านข้อมูลจาก MySQL</title>
<meta http-equiv="Content-Type" content="text/html; charset=tis-620">
</head>

<body> 
<?php  //------------ส่วนการเปิด Connection ในการติดต่อกับ MySQL ---------------- $hostname "localhost"$username "<ใส่ Username ของ MySQL>"$password "<ใส่รหัสผ่าน>"$dbname "school";$conn mysql_connect$hostname$username$password );
if ( ! 
$conn 
)
    die ( 
"ไม่สามารถติดต่อกับ MySQL ได้" 
); //----------จบ ส่วนการเปิด Connection ในการติดต่อกับ MySQL ---------------
//----------ส่วนการเลือกฐานข้อมูล school -------------------------------------- 
mysql_select_db $dbname$conn 
)
    or die ( 
"ไม่สามารถเลือกฐานข้อมูล school ได้" 
); //----------จบส่วนการเลือกฐานข้อมูล school -----------------------------------
             
$sqltxt "SELECT * FROM student"
;$result mysql_query $sqltxt$conn );

while (  
$rs mysql_fetch_array $result 
) )
{
    echo 
"$rs[stdid] - $rs[stdname]<br>"
;
}
//----------ส่วนการปิด Connection ในการติดต่อกับ MySQL -------------------- mysql_close $conn ); //----------จบส่วนการปิด Connection ในการติดต่อกับ MySQL------------------ ?> </body>
</html>

 Code นั้นก็จะคล้าย ๆ กับบทที่แล้วครับ แต่จะเพิ่มตรงกลางมา ซึ่งนั่นก็คือส่วนที่ใช้ในการอ่านข้อมูลจากตาราง student มาแสดงครับ ... ผมจะขออธิบายเฉพาะส่วนนี้นะครับ

 เริ่มจากการระบุ Code SQL ที่ใช้ในการเลือกข้อมูลลงในตัวแปรชื่อ sqltxt

 จากนั้นเราจะใช้ฟังก์ชัน mysql_query() ในการดึงข้อมูลทั้งหมดมาเก็บไว้ในตัวแปรชื่อ result

 จากนั้นเพื่อทำให้เราสามารถเลือกเอาข้อมูลในแต่ละฟิลด์ออกมาใช้แบบง่าย ๆ เราจึงนำข้อมูลทั้งหมดในตัวแปร result มาแตกออกในรูปแบบของ Array โดยใช้ฟังก์ชั่น mysql_fetch_array() ซึ่งเราจะใช้ Loop While เข้ามาช่วยเพื่อให้ทำการวนรอบจนหมดข้อมูล

 ภายใน Loop While นั้น เราจะสามารถใช้ชื่อฟิลด์เป็นตัว Index ได้เลยครับ โดยผ่านตัวแปรชื่อ rs ที่ทำการรับค่าการแตกข้อมูล

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

<html>
<head>
<title>การอ่านข้อมูลจาก MySQL ลงตาราง</title>
<meta http-equiv="Content-Type" content="text/html; charset=tis-620">
</head>

<body>
<table width="500" border="1" cellpadding="2" cellspacing="0" bordercolor="#0066FF">
  <tr bgcolor="#0066FF">
    <td><div align="center"><font color="#FFFFFF" face="Tahoma, MS Sans Serif"><strong>รหัสนักศึกษา</strong></font></div></td>
    <td><div align="center"><font color="#FFFFFF" face="Tahoma, MS Sans Serif"><strong>ชื่อ
        - สกุล</strong></font></div></td>
  </tr>
  
<?php
$hostname 
"localhost"
$username "<ใส่ Username ของ MySQL>"$password "<ใส่รหัสผ่าน>"$dbname "school";$conn mysql_connect$hostname$username$password );
if ( ! 
$conn 
)
    die ( 
"ไม่สามารถติดต่อกับ MySQL ได้" 
);
     
mysql_select_db $dbname$conn 
)
    or die ( 
"ไม่สามารถเลือกฐานข้อมูล school ได้" 
);
             
$sqltxt "SELECT * FROM student"
;$result mysql_query $sqltxt$conn );

while (  
$rs mysql_fetch_array $result 
) )
?>   <tr>
    <td><font size="2" face="Tahoma, MS Sans Serif"><?php echo $rs["stdid"?></font></td>
    <td><font size="2" face="Tahoma, MS Sans Serif"><?php echo $rs["stdname"?></font></td>
  </tr>
  
<?php
  
mysql_close $conn ); ?> </table>

</body>
</html>

 จะเห็นว่าเราสามารถแทรก Code ของ PHP ลงใน HTML ได้ทันทีครับ คือแทนที่จะเป็นตัวอักษรธรรมดา ก็เปลี่ยนเป็น Code ของ PHP ที่ระบุชื่อฟิลด์ ก็เท่านั้นเองครับ ... ซึ่งเราจะทำการแทรกลงก่อน <TR> เพื่อทำให้ Loop While ของเราสร้างแถวของตารางใหม่มาให้ด้วยครับ ... ลองแกะ Code ดูนะครับ ... บอกแล้วว่าใจเย็น ๆ

 ให้ข้อสังเกตุนิดนึงครับ สำหรับการแสดงผลของทั้งสองตัวอย่าง
 ตัวอย่างแรกจะใช้ $rs[stdid]
 ตัวอย่างที่ 2 จะใช้ $rs["stdid"]
 ต่างกันตรงไหนน้อ ??? ... ทำไมอันแรกไม่มีเครื่องหมายคำพูด อีกอันนึงมี

 เหตุผลก็คือ แบบแรก เราแสดงอยู่ในเครื่องหมายคำพูดอยู่แล้วไงครับ เป็นเครื่องหมายคำพูดใหญ่ ปิดหัวปิดท้ายอยู่แล้ว ดังนั้นเราจะต้องไม่ใส่อีก >>> echo "$rs[stdid] - $rs[stdname]<br>";

 ส่วนแบบที่สองไม่มีเครื่องหมายคำพูดใหญ่ปิดหัวท้าย ดังนั้นข้างในเราจึงจะต้องใส่ด้วยครับ >>> echo $rs["stdid"]

 แล้วสุดท้าย ก็อย่าลืมปิดการติดต่อฐานข้อมูลซะด้วยละครับ ...

0 ความคิดเห็น :

แสดงความคิดเห็น

 
JUNCTION X © 2013. All Rights Reserved. Powered by Blogger
Top