การตรวจสอบข้อมูลหลายตาราง

ผมมีฐานข้อมูลชื่อ 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 ให้ดูหน่อยนะครับ ขอบคุณครับ
26 ส.ค. 2552 10 1,456

ตอบแบบนี้ได้ป่าวครับ ก็เอา student_id ไปหาจาก gradexx ซิครับ   ก็ต้องหาว่า อยุ่ปีอะไร
#1

ยังไม่เข้าใจครับ ลองเขียน code เป็นแนวทางหน่อยครับ
#2

แบบนี้ได้ป่าวครับ

sql="select * from grade50,grade51,grade52  where (student1.id=student2.id)"

ผมมั่วๆ นะ ^^ ก็มือใหม่
#3

<?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 "ไม่มีข้อมูล";
}
?>


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

ลองศึกษาจากหนังสือประกอบด้วยนะครับ
#4

ใช้คำสั่ง UNION เพื่อรวมข้อมูลจากหลายตารางครับ

(SELECT * FROM table1 WHERE id=xxx)
UNION
(SELECT * FROM table2 WHERE id=xxx)
UNION
(SELECT * FROM table3 WHERE id=xxx)
#5

ได้แล้วครับ ขอบคุณสำหรับแนวทางและข้อคิดเห็นนะครับ

#6

อืม ได้แล้ว ได้ยังไง ทำยังไงไว้ ไม่คิดจะเผื่อแผ่คนอื่นเลยรึ
#7

 

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 ;


แล้วก็เอามาตรวจสอบกับฐานข้อมูลครับ

#8

อ้างอิงจาก ความคิดเห็น #8

 

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 ;


แล้วก็เอามาตรวจสอบกับฐานข้อมูลครับ


วิธีนี้ก็ดีครับ เพราะเราจะทราบเลยว่านักศึกษาคนนี้ต้องค้นหาข้อมูลจากตารางไหน
จะได้ไม่ต้องไปเขียนโค้ดเชื่อมตารางให้งง
#9

555++++

ตามไม่ทันเลย ผมดูวิธีที่ทำได้กับคำถาม แล้วก็งงๆ ว่ามันเกี่ยวข้องกันยังหว่า

แต่ก็เอาเถอะ อย่างน้อยก็มี 2 ท่านที่รู้เรื่อง
#10
ความคิดเห็น
ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 1024
^