Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > PHP > PHP Forum > ช่วยดู sql หลายตารางเชื่อมกัน หน่อยครับ ผิดตรงไหน



 

ช่วยดู sql หลายตารางเชื่อมกัน หน่อยครับ ผิดตรงไหน

 



Topic : 061196

Guest




ประกอบด้วยตาราง
class
CLID int(5)
CLName varchar(20)
TID int(5)

student
SID int(5)
CLID int(5)
SFirstName varchar(25)
SLastName varchar(25)
Gender varchar(10)
SStatus tinyint(1) // จะทำสถานะ ใช่หรือไม่ใช่ ไม่ร้เลือกตัวนี้หรือป่าว

teacher
TID int(5)
DID int(5)
TFirstName varchar(30)
TLastName varchar(30)
Gender varchar(10)
TStatus tinyint(1)

subject
SubjectID varchar(20)
SubjectName varchar(20)
DID int(5)

course
CSID int(5)
SMID int(5)
SubjectID varchar(20)
FullScore int(5)

course_student
CSID int(5)
SID int(5)
AccScore int(5)
MidScore int(5)
FinalScore int(5)
TotalScore int(5)
Grade int(5)

ที่อยากจะให้แสดงก็คือ
SID, CLName, SFirstName, SLastName, SubjectID, SubjectName, AcedermicYear, semester, Grade
//รหัสนักเรียน ห้อง ชื่อ นามสกุล รหัสวิชา ชื่อวิชา ปีการศึกษา ภาคเรียนที่ ผลการเรียน

เลยเขียน sql ไปแบบนี้

Code
$sql = "select student.SID, class.CLName, student.SFirstName, student.SLastName, subject.SubjectID, subject.SubjectName, semester.AcedermicYear, semester.semester, course_student.Grade from student, class, teacher, subject, course, course_student where student.SID = course_student.SID AND class.CLID = student.CLID AND subject.SubjectID = course.SubjectID AND course.SMID = semester.SMID";


ผลก็ไม่ออกมา ขึ้น

Error
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource


คิดว่าผิดตรง sql แต่ไม่รู้จะทำยังไง ใครก็ได้ช่วยที
ขอบคุณล่วงหน้าๆครับ



Tag : PHP







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2011-06-04 22:50:40 By : sql new View : 1098 Reply : 5
 

 

No. 1



โพสกระทู้ ( 4,720 )
บทความ ( 8 )



สถานะออฟไลน์


select มันควรเป็น
select field from table where ... ไม่ใช่เหรอครับ

ในกรณีเลือกหลายๆตารางให้ใช้ join ต่างๆแทนครับ ไม่ใช่แบบนี้
มันมี inner join, left join, right join...

ตย.
select * from class as t1
inner join student as t2 on t1.CLID = t2.CLID

ลองดูตัวอย่างจากเว็บ mysql
http://dev.mysql.com/doc/refman/5.0/en/join.html






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-06-04 23:25:29 By : mr.v
 


 

No. 2



โพสกระทู้ ( 260 )
บทความ ( 0 )



สถานะออฟไลน์


ใช้ join table
ให้เพิ่ม subjectid ที่ course_student ไปอีกฟิลด์

Code
SELECT ST.SID , CL.CLName , ST.SFirstName , ST.SLastName , S.SubjectID , S.SubjectName , CO.Grade FROM student ST JOIN class C ON ST.CLID=C.CLID JOIN course_student CO ON ST.SID=CO.SID JOIN subject S ON CO.Subjectid=S.Subjectid WHERE sstatus = 'A'

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-06-05 00:21:18 By : pumhonda
 

 

No. 3

Guest


ขอบคุณครับ คุณ vee และ Error ตลอดๆ

ขอเวลาไปทำความเข้าใจใหม่ก่อนครับ เหอะๆ งง T^T
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-06-05 01:27:40 By : sql new
 


 

No. 4



โพสกระทู้ ( 616 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

หาโปรแกรมช่วย query ไม่ดีกว่าเหรอครับ

อย่างผมใช้ Navicat ครับ

ง่ายไม่ต้องเขียน query เอง แค่สร้าง tabal แล้วก็โยงความสัมพันธ์ แล้วก็เลือก ฟิลด์ ที่ต้องการแสดง

แล้วโปรแกรมมันจะเขียน query ให้เองครับ ง่ายมากๆ ดีกว่าไปนั่งไล่ code เหนื่อยป่าวๆ ประหยัดเวลาด้วย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-06-05 11:59:25 By : slurpee55555
 


 

No. 5

Guest


ได้แล้วครับๆ

Code
SELECT student.SID, class.CLName, student.SFirstName, student.SLastName, subject.SubjectID, subject.SubjectName, course_student.Grade
FROM teacher INNER JOIN (subject INNER JOIN ((class INNER JOIN student ON class.CLID=student.CLID) INNER JOIN (course INNER JOIN course_student ON course.CSID=course_student.CSID) ON student.SID=course_student.SID) ON subject.SubjectID=course.SubjectID) ON teacher.TID=class.TID
WHERE student.SID = '10000'


อิอิ

ไม่ให้แสดงรหัส ชั้น ชื่อ นามสกุล เพราะเวลาล็อกอินมันเรียกได้อยู่แล้ว

Code
SELECT subject.SubjectID, subject.SubjectName, course_student.Grade
FROM teacher INNER JOIN (subject INNER JOIN ((class INNER JOIN student ON class.CLID = student.CLID) INNER JOIN (course INNER JOIN course_student ON course.CSID = course_student.CSID) ON student.SID = course_student.SID) ON subject.SubjectID = course.SubjectID) ON teacher.TID = class.TID
WHERE student.SID = '$sess_userid'


ขอบคุณสำหรับทุกคำแนะนำครับ
ปล.ทำตามที่คุณ Error ตลอดๆแนะนำ ผมทำแล้วยังเหมือนเดิม - -*
ปล2.ที่ทำได้ เพราะไปสร้างตารางใน ms access แล้ว ใช้แบบสอบถามเอา เหอะๆ ตามที่ คุณ เบส แนะนำ - -* แต่โปรแกรมนั้นไม่ได้รู้จักที
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-06-05 15:00:37 By : sql new
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ช่วยดู sql หลายตารางเชื่อมกัน หน่อยครับ ผิดตรงไหน
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 01
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่