วันเสาร์ที่ 8 กันยายน พ.ศ. 2555

เรื่องเกี่ยวกับฐานข้อมูล select, function ดึงข้อมูลออกมาโชว์

การระบุ Database ในคำสั่ง SELECT
เมื่อเรากำหนดชื่อ table ภายในคำสั่ง SELECT นั้น MySQL จะตรวจสอบ database ที่เราใช้งานอยู่ว่ามี table ที่ระบุมาหรือไม่ เช่น ถ้าเราใช้งาน database Employee อยู่ เมื่อเราต้องการดึงข้อมูลจากตาราง Person ใน database Employee จะต้องใช้คำสั่งดังนี้
# ในกรณีที่เราเลือกใช้งานฐานข้อมูล Employee อยู่ (โดยใช้คำสั่ง use Employee)
SELECT * FROM Person;
แต่ในกรณีที่เราไม่ได้เลือกใช้งาน database ตัวไหนเลย ผลลัพธ์ที่ได้จากคำสั่งด้านบนนั้นจะทำให้เกิด error ดังนี้
# ในกรณีที่เราไม่ได้เลือกใช้งานฐานข้อมูลตัวไหนอยู่เลย
SELECT * FROM Person;
ERROR 1046: No Database Selected
เราสามารถแก้ปัญหาวิธีนี้ได้โดยการกำหนด database ที่มีตารางนั้น ๆ ที่เราต้องการไปด้วยดังนี้
# รูปแบบ SELECT * FROM database_name.table_name
SELECT * FROM Employee.Person;
หรือเราอาจจะทำการเลือกใช้งาน database นั้น ๆ ก็ได้ แล้วจึงสามารถใช้คำสั่งเดิมได้ ดังนี้
# เลือกใช้งานฐานข้อมูล Employee
USE Employee;

# ใช้คำสั่งเดิม โดยไม่ต้องระบุ database
SELECT * FROM Person;





ฟังก์ชันในการดึงข้อมูล (แสดงข้อมูล)

อ่าน [17038] หมวดหมู่: ฟังก์ชัน MySQL ใน PHP
เราจะสามารถดึงข้อมูลมาได้ก็ต่อเมื่อเราทำการ query ไปยังฐานข้อมูล และมันคืนค่ากลับมาเป็น resource โดยใช้ฟังก์ชัน mysql_query() ที่ผมได้กล่าวไว้ในบทความที่แล้ว ซึ่งฟังก์ชันในการดึงข้อมูลจาก resource มีหลายตัวดังนี้
ความแตกต่างระหว่าง function ในการดึงข้อมูลใน 4 วิธีแรกนั้นแตกต่างกันเพียงนิดเดียวเท่านั้น ซึ่งผมจะยกตัวอย่างให้ผู้อ่านได้เข้าใจทีละวิธีนะครับ

วิธีการดึงข้อมูลแบบ mysql_fetch_row()

1.<?php
2.$query = "SELECT person_id, name, surname FROM tbl_person";
3.$rs = mysql_query($query);
4.while($row = mysql_fetch_row($rs)) {
5.    echo "$row[0] $row[1] $row[2]<br />\n";
6.}
7.?>
จากตัวอย่างด้านบนนั้น เราจะสามารถเข้าถึงแต่ละ column (หรือ field) ได้โดยกำหนด key แบบ index เท่านั้น (โดย index แต่ละตัวจะเรียงตาม field ที่ถูกเลือกด้วยคำสั่ง query ดังนั้น index ที่ 0 จะแทน person_id, index ที่ 1 จะแทน name และ index ที่ 2 จะแทน surname)

วิธีการดึงข้อมูลแบบ mysql_fetch_assoc()

1.<?php
2.$query = "SELECT person_id, name, surname FROM tbl_person";
3.$rs = mysql_query($query);
4.while($row = mysql_fetch_assoc($rs)) {
5.    echo $row['person_id'] . " " .  $row["name"] . " " .  $row['surname'] . "<br />\n";
6.}
7.?>
ในการดึงข้อมูลโดยวิธีนี้นั้น เราสามารถเข้าถึงข้อมูลแต่ละ field แบบ associative เท่านั้น ซึ่ง key ของ array จะสร้างตามชื่อ field ที่เราได้เลือกไว้ในคำสั่ง query

วิธีการดึงข้อมูลแบบ mysql_fetch_array()

1.<?php
2.$query = "SELECT person_id, name, surname FROM tbl_person";
3.$rs = mysql_query($query);
4.while($row = mysql_fetch_array($rs)) {
5.    echo $row[0] . " " .  $row['name'] . " " . $row[2]<br />\n";
6.}
7.?>
ในการดึงข้อมูลโดยวิธีนี้ มันจะคืนค่ากลับมาเป็น array ทั้งแบบ associative และแบบ index เลย ดังนั้นเราสามารถเข้าถึงข้อมูลแต่ละ field ได้โดยการอ้าง key หรือกำหนด index ให้มันก็ได้
วิธีสุดท้ายที่แตกต่างจากวิธีอื่น ๆ ก็คือ mysql_result() โดยมันจะคืนค่าเพียง 1 cell เท่านั้น ดังนั้นเราจะต้องกำหนดแถวเรคอร์ด และ field ที่ต้องการดึงมาด้วย ดังนี้
1.<?php
2.$query = "SELECT count(*) FROM tbl_person";
3.$rs = mysql_query($query);
4.$count_person = mysql_result($rs, 0, 0);
5.?>
จากตัวอย่างจะเห็นว่า parameter ตัวแรกนั้นจะต้องกำหนดเป็น resource ที่ได้จากการ query ส่วน parameter ตัวที่ 2 จะต้องกำหนดแถวที่ต้องการดึงมา และ parameter ตัวที่ 3 จะต้องกำหนด field ที่ต้องการดึง โดยอาจจะกำหนดเป็น associative ก็ได้

ที่มา : http://www.stepcoding.com/hot/PHP/ฟังก์ชัน%20MySQL%20ใน%20PHP/ฟังก์ชันในการดึงข้อมูล%20(แสดงข้อมูล)/10-13-127.html

ไม่มีความคิดเห็น:

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