A-AA+then

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

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

10 ความคิดเห็น

ตอบแบบนี้ได้ป่าวครับ ก็เอา 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
^