การตรวจสอบข้อมูลหลายตาราง
ผมมีฐานข้อมูลชื่อ sumgrade
มีตาราง
grade50 (เก็บข้อมูลเกรดปี 50 และ student_id)
grade51 (เก็บข้อมูลเกรดปี 51 และ student_id)
grade52 (เก็บข้อมูลเกรดปี 52 และ student_id)
member (เก็บข้อมูลส่วนบุคคล มี user , password , student_id)
ถ้าผมล็อคอินด้วย user , password แล้วจะสามารถเอาข้อมูลจาก grade50 grade51 grade52 มาแสดงผลโดยตรวจสอบจาก student_id ได้มัยครับ ลองเขียน code ให้ดูหน่อยนะครับ ขอบคุณครับ
มีตาราง
grade50 (เก็บข้อมูลเกรดปี 50 และ student_id)
grade51 (เก็บข้อมูลเกรดปี 51 และ student_id)
grade52 (เก็บข้อมูลเกรดปี 52 และ student_id)
member (เก็บข้อมูลส่วนบุคคล มี user , password , student_id)
ถ้าผมล็อคอินด้วย user , password แล้วจะสามารถเอาข้อมูลจาก grade50 grade51 grade52 มาแสดงผลโดยตรวจสอบจาก student_id ได้มัยครับ ลองเขียน code ให้ดูหน่อยนะครับ ขอบคุณครับ
sql="select * from grade50,grade51,grade52 where (student1.id=student2.id)"
ผมมั่วๆ นะ ^^ ก็มือใหม่
<?php
require_once('../Connections/db.php');
$user = $_POST[user];
$password = $_POST[password];
if($user <> "" and $password <> ""){
$select_tblmember = "select * from member where user = '$user' ";
$send_tblmember=mysql_db_query($database,$select_tblmember);
$rec_tblmember=mysql_fetch_array($send_tblmember);
$student_id = $rec_tblmember[student_id];
$select_tblgrade50 = "select * from grade50 where student_id = '$student_id' ";
$send_tblgrade50=mysql_db_query($database,$select_tblgrade50);
$rec_tblgrade50=mysql_fetch_array($send_tblgrade50);
echo $rec_tblgrade50[.....];
$select_tblgrade51 = "select * from grade51 where student_id = '$student_id' ";
$send_tblgrade51=mysql_db_query($database,$select_tblgrade51);
$rec_tblgrade51=mysql_fetch_array($send_tblgrade51);
echo $rec_tblgrade51[.....];
$select_tblgrade52 = "select * from grade52 where student_id = '$student_id' ";
$send_tblgrade52=mysql_db_query($database,$select_tblgrade52);
$rec_tblgrade52=mysql_fetch_array($send_tblgrade52);
echo $rec_tblgrade52[.....];
} else {
echo "ไม่มีข้อมูล";
}
?>
โค้ดด้านบนเป็นเพียงโค้ดที่ดึงข้อมูลแบบง่ายๆ
ถ้านำไปใช้งานจริง ผมคิดว่าน่าจะใช้วิธีเชื่อมตารางมากกว่าครับ
ลองศึกษาจากหนังสือประกอบด้วยนะครับ
UNION
(SELECT * FROM table2 WHERE id=xxx)
UNION
(SELECT * FROM table3 WHERE id=xxx)
ได้แล้วครับ ขอบคุณสำหรับแนวทางและข้อคิดเห็นนะครับ
if (!$student_id){
die ("ไม่มีข้อมูลนักศึกษา");
}
if ( !$conn)
die ("<b><center><font face = 'MS Sans Serif' color='red'>ไม่สามารถติดต่อกับฐานข้อมูล SQL ได้</b></center>");
mysql_select_db( $dbname,$conn) or
die ("<b><center><font face = 'MS Sans Serif' color='red'>ไม่สามารถเลือกใช้งานฐานข้อมูล $dbname ได้</center></b>");
$subcode2 = substr($student_id,0,2); //ตรวจสอบรหัสที่รับมาจากการล็อกอินจาก user แล้วมาตรวจสอบกับ student_id 2 ตัวแรก
$avgrade = "avgrade".$subcode2 ;
$grade = "grade".$subcode2 ;
แล้วก็เอามาตรวจสอบกับฐานข้อมูลครับ
วิธีนี้ก็ดีครับ เพราะเราจะทราบเลยว่านักศึกษาคนนี้ต้องค้นหาข้อมูลจากตารางไหน
จะได้ไม่ต้องไปเขียนโค้ดเชื่อมตารางให้งง
ตามไม่ทันเลย ผมดูวิธีที่ทำได้กับคำถาม แล้วก็งงๆ ว่ามันเกี่ยวข้องกันยังหว่า
แต่ก็เอาเถอะ อย่างน้อยก็มี 2 ท่านที่รู้เรื่อง