StepCoding

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

อ่าน [13481] หมวดหมู่: ฟังก์ชัน MySQL ใน PHP

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

ความแตกต่างระหว่าง function ในการดึงข้อมูลใน 4 วิธีแรกนั้นแตกต่างกันเพียงนิดเดียวเท่านั้น ซึ่งผมจะยกตัวอย่างให้ผู้อ่านได้เข้าใจทีละวิธีนะครับ

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

<?php
$query = "SELECT person_id, name, surname FROM tbl_person";
$rs = mysql_query($query);
while($row = mysql_fetch_row($rs)) {
	echo "$row[0] $row[1] $row[2]<br />\n";
}
?>

จากตัวอย่างด้านบนนั้น เราจะสามารถเข้าถึงแต่ละ column (หรือ field) ได้โดยกำหนด key แบบ index เท่านั้น (โดย index แต่ละตัวจะเรียงตาม field ที่ถูกเลือกด้วยคำสั่ง query ดังนั้น index ที่ 0 จะแทน person_id, index ที่ 1 จะแทน name และ index ที่ 2 จะแทน surname)

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

<?php
$query = "SELECT person_id, name, surname FROM tbl_person";
$rs = mysql_query($query);
while($row = mysql_fetch_assoc($rs)) {
	echo $row['person_id'] . " " .  $row["name"] . " " .  $row['surname'] . "<br />\n";
}
?>

ในการดึงข้อมูลโดยวิธีนี้นั้น เราสามารถเข้าถึงข้อมูลแต่ละ field แบบ associative เท่านั้น ซึ่ง key ของ array จะสร้างตามชื่อ field ที่เราได้เลือกไว้ในคำสั่ง query

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

<?php
$query = "SELECT person_id, name, surname FROM tbl_person";
$rs = mysql_query($query);
while($row = mysql_fetch_array($rs)) {
	echo $row[0] . " " .  $row['name'] . " " . $row[2]<br />\n";
}
?>

ในการดึงข้อมูลโดยวิธีนี้ มันจะคืนค่ากลับมาเป็น array ทั้งแบบ associative และแบบ index เลย ดังนั้นเราสามารถเข้าถึงข้อมูลแต่ละ field ได้โดยการอ้าง key หรือกำหนด index ให้มันก็ได้

วิธีสุดท้ายที่แตกต่างจากวิธีอื่น ๆ ก็คือ mysql_result() โดยมันจะคืนค่าเพียง 1 cell เท่านั้น ดังนั้นเราจะต้องกำหนดแถวเรคอร์ด และ field ที่ต้องการดึงมาด้วย ดังนี้

<?php
$query = "SELECT count(*) FROM tbl_person";
$rs = mysql_query($query);
$count_person = mysql_result($rs, 0, 0);
?>

จากตัวอย่างจะเห็นว่า parameter ตัวแรกนั้นจะต้องกำหนดเป็น resource ที่ได้จากการ query ส่วน parameter ตัวที่ 2 จะต้องกำหนดแถวที่ต้องการดึงมา และ parameter ตัวที่ 3 จะต้องกำหนด field ที่ต้องการดึง โดยอาจจะกำหนดเป็น associative ก็ได้

ผู้สนับสนุน