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,037

HOME > PHP > PHP Forum > สอบถามการคิวรี่ข้อมูลสองตาราง ที่มีข้อมูลบางส่วนเหมือนกันสองตาราง



 

สอบถามการคิวรี่ข้อมูลสองตาราง ที่มีข้อมูลบางส่วนเหมือนกันสองตาราง

 



Topic : 110500



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



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




สอบถามการคิวรี่ข้อมูลสองตาราง ที่มีข้อมูลบางส่วนเหมือนกันสองตาราง แต่ต้องการคิวรี่ให้มีข้อมูลเพียงตารางเดียว
ต้องการนำมาทำไฮท์ไลท์ครับ

ลักษณะงาน การลงเพิ่มตารางลงทะเบียนเรียนนักศึกษา

ตารางที่ 1 ตารางเก็บข้อมูลสำหรับลงวิชาเพิ่มของนักศึกษา tb_increase_report
ตารางที่ 2 ตารางเรียนสำหรับนักศึกษา tb_tablestudy

ตารางเรียน

จากรูปครับ
สีแดงคือรายวิชาที่ลงทะเบียนเพิ่ม=ตารางที่1 สีฟ้าคือรายวิชาที่มีอยู่ในตารางเรียนอยู่แร้ว=ตารางที่2
ในกรณีนี้คือ
วันจันทร์และวันศุกร์ที่เป็นสีแดง จริงๆต้องเป็นสีฟ้าครับ คือเป็นตารางเรียนของนักศึกษาอยู่แร้ว แต่ที่เป็นสีแดงเพราะเคยลงทะเบียนเพิ่มไปแล้วก่อนหน้านี้ซึ่งต้องไม่เป็นสีแดงครับครับ
วันอาทิตย์เป็นสีแดงถูกต้องครับ เพราะเพิ่งลงทะเบียนไปในขณะใช้โปรแกรม

ส่วนโค้ดการทำไฮไลท์ คือ
Code (PHP)
$sql = "select * from tb_increase_report where ID = '".$_SESSION["stuid"]."' and SubjectID = '".$value[0]."' and TermFull = '".$_SESSION["termfull"]."' order by pettition_id desc limit 1;";

$query = mysql_query($sql)or die(mysql_error());
$rows = mysql_num_rows($query);
if($rows == 0)
{
	$list .= '<td '.$colspan.' class="'. $highlight .' title" >' . $title . '</td>';
}
else
{
	$list .= '<td '.$colspan.' class="'. $highlight2 .' title" >' . $title . '</td>';
}


ซึ่งจากโค้ดคือการนำ ตารางที่ 1 มาไฮไลท์ ครับ แต่ทำตารางเรียนจากตารางที่ 2 ในข้อมูลตารางที่ 1 มี SubjectID เหมือนกันกับตารางที่ 2 ซึ่งทำให้การไฮไลท์ จากตารางที่ 1 หากมีข้อมูลที่ SubjectID เหมือนกับตารางที่ 2 มันเลยกลายเป็นสีแดงครับ

ถามซะยาวเข้าใจหรือเปล่าไม่รู้ 5555+ อยากถามตอนทำไฮไลท์ ไม่ให้นำตารางที่เคยลงทะเบียนเพิ่มไปแล้ว ไม่ให้ไฮไลท์กับตารางเรียนอ่ะครับ



Tag : PHP, MySQL







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2014-08-08 13:53:46 By : angelkiller9 View : 1705 Reply : 6
 

 

No. 1



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



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


$value[0] คือค่า SubjectID ที่ได้จากตารางที่ 2 ครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-08-08 14:14:03 By : angelkiller9
 


 

No. 2



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



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


ถ้าเป็นผมจะเก็บ วัน ไว้ อ้างอิง
หากยังไม่ข้ามวัน ให้วิชาที่ลงไว้เป็นสีแดง
พรุ้งนี้ ก็เปลี่ยนเป็นสีฟ้า
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-08-08 15:30:45 By : chai19
 

 

No. 3



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



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


ตอบความคิดเห็นที่ : 2 เขียนโดย : chai19 เมื่อวันที่ 2014-08-08 15:30:45
รายละเอียดของการตอบ ::
ตอนแรกผมก็กะทำอย่างงั้น แต่ถ้าสมมติ ผู้ใช้มันทำไป เอ้ย อยากเปลี่ยนใหม่มาทำอีกรอบ ยังไม่ผ่านวันมันก็จายังคงเป็นสีแดงอยู่อ่าใช่ไหมครับ มันเรยมึนไปหมด 555+

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-08-08 15:59:19 By : angelkiller9
 


 

No. 4



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



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


ผมว่าออกแบบผิดตั้งแต่แรกแล้วครับ ไม่เห็นต้องยุ่งยากสร้างสองตารางเลย

สมมุติว่า นศ.คนหนึ่งลงทะเบียนตามแผนที่ฝ่ายทะเบียนตั้งไว้ 5 วิชาบังคับ 2วิชาเลือก
เมื่อนศ.มาลงทะเบียนในรอบแรก ได้4วิชาบังคับ ที่เหลือยังไม่ได้ตัดสินใจ เพราะอาจอยากลง section เดียวกันกันแฟน
ก็จะเหลือ 1วิชาบังคับ 2 วิชาเลือก เมื่อเวลาสองวันผ่านไป นศ.คนนั้นตัดสินใจได้แล้วว่าจะเลือกลง section ไหน
ก็ทำการลงทะเบียนในวิชาที่เหลือ รวม 3วิชา

ทีนี้ผมขอถามว่า เจ้าหน้าที่ จะเก็บเอกสารการลงทะเบียนทั้ง 2 ครั้งของนศ. คนนี้แยกกันมั๊ย หรือเก็บเอามารวมกันในแฟ้มเดียว

คำตอบคือ เค้าเก็บรวมกันในแฟ้มเดียวแต่มีใบปะหน้าเอกสารว่าเป็นการลงทะเบียนครั้งแรก และครั้งที่สอง(ที่เพิ่มเติมเท่านั้น)...

พอจะมองภาพออกหรือยังว่าการที่ จขกท. แยกสองตารางมันเป็นเรื่องยุ่งยากโดยใช่เหตุ เพราะคุณต้องมา left join, right join ....

ผมว่าเก็บลงในตารางเดียวกันไปเลย แล้วสร้างฟิลด์เพิ่มมาหนึ่งฟิวด์ว่าวิชาที่ลงทะเบียน เป็นวิชาที่ลงตามแผน หรือวิชาเลือกเสรี


alter table ชื่อตาราง add remark enum('planned','added') null default null

หรือ

alter table ชื่อตาราง add remark enum('ตามแผน','เลือกเพิ่ม') null default null


แค่นี้แหละครับที่อยากแนะนำ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-08-08 16:00:26 By : cowboycnx
 


 

No. 5



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



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


ตอบความคิดเห็นที่ : 4 เขียนโดย : cowboycnx เมื่อวันที่ 2014-08-08 16:00:26
รายละเอียดของการตอบ ::
ขอบคุณครับ สำหรับคำแนะนำ

แต่ปัญหามันติดอยู่ตรงที่ว่า ตารางเรียนนักศึกษาที่ได้มา เป็นเพียงแค่ตารางตามแผนการเรียนอ่ะครับ ไม่ใช่ตารางที่นักศึกษาลงทะเบียนจริงๆ พอดีสถานศึกษาแห่งนี้ ยังไม่ไปถึงขนาดระดับสูงๆ(งบน้อย) จะทำอะไรต้องทำขึ้นเองอ่ะครับ เขียนเองทำเอง ไม่ได้จ้างจากบุคคลภายนอกทำครับ

ในส่วนที่ผมทำเนี่ยเป็นตารางตามแผนการเรียน (ไม่ใช่ตารางสำหรับลงทะเบียนของนักศึกษาอ่ะครับ) แล้วทีนี้ผมทำจุดนี้มาเพื่อ ให้ลดภาระของเจ้าหน้าที่คนอื่นในการเช็คอ่ะครับ ซึ่งปกติเนี่ย นักศึกษาต้องมากรอกฟอร์ม ลงทะเบียนเพิ่มเอง (ปล. ยื่นกระดาษอ่ะครับ) ซึ่งมันทำให้เด็กเขียนมาผิดๆถูกๆ ไม่เช็คหน่วยกิตบ้างอะไรบ้าง เลือกเวลาผิดบ้าง เวลาชนกันบ้าง ก็เรยมีตารางตามแผนการเรียนไว้เช็คอ่ะครับ ผมเรยทำเพื่อจะได้ดูง่ายๆว่าตารางตามแผนการเรียนกับที่นักศึกษาลงเพิ่มเนี่ย หน่วยกิตเกินไหม หรือเวลาชนกันไหม ประมาณนี้อ่ะครับ

ส่วนตารางอีกอันเนี่ย ผมเอาไว้เก็บข้อมูลการลงทะเบียนครับว่า มีใครมาลงบ้าง ลงวิชาไหน อะไรประมาณนี้ ซึ่งผมทำได้แล้ว แต่ติดตรงไฮไลท์นี้แหละครับ งง 555+

และผมไม่มีสิทธิ์เข้าไปยุ่งกับฐานข้อมูลของทะเบียนครับ จะทำอะไรมันเลยลำบาก ยุ่งได้แค่ฐานข้อมูลของหลักสูตรครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-08-08 16:22:07 By : angelkiller9
 


 

No. 6



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



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


งั้นก็ left join ครับ

ตารางหนึ่ง left join ตารางสอง using(subjectid) where ตารางสอง.subjectid is null
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-08-08 16:34:01 By : cowboycnx
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : สอบถามการคิวรี่ข้อมูลสองตาราง ที่มีข้อมูลบางส่วนเหมือนกันสองตาราง
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 05
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 อัตราราคา คลิกที่นี่