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

HOME > PHP > PHP Forum > ต้องการ join table 3 ตาราง ทำงัยดีคะ อยากรบกวนพี่ๆ ช่วยเขียนโค้ดตัวอย่างดูให้หน่อยค่ะ



 

ต้องการ join table 3 ตาราง ทำงัยดีคะ อยากรบกวนพี่ๆ ช่วยเขียนโค้ดตัวอย่างดูให้หน่อยค่ะ

 



Topic : 037983



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



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




ต้องการ join table 3 ตาราง ทำงัยดีคะ

คือในระบบมีผู้ใช้ทั้งหมด 3 กลุ่ม (อาจารย์ นักศึกษา และส่วนของผู้ดูแลระบบ)

และอยากให้ล็อกอินที่เดียวกัน (เคยทำล็อกอินแบบมีเช็คบ็อก 3 อันให้เลือก แต่อาจารย์ไม่าอยากได้ checkbox จะทำงัยดีคะ)

มีพี่คนหนึ่งเค้าแนะนำว่าให้ join table แล้วเลือกฟิวค์ที่ต้องการใช้จากสามตารางให้มาอยู่ในตารางเดียว (ในที่นี้ก็เป็น user , password ของผู้ใช้ทั้งสามกลุ่ม)

แต่ไม่มีความรู้เรื่องการเขียนโปรแกรมแบบการ join table มาก่อนเลย (แต่พอมีความรู้บ้างในเรื่องการ join table ในฐานข้อมูล)

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


ขอบคุณค่ะ



Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-01-30 13:16:15 By : iyaness View : 5793 Reply : 16
 

 

No. 1

Guest


3 กลุ่ม table เดียวไม่ได้เหรอคับ แต่เพิ่ม ฟิลด์ เพื่อบอกสถานะว่า

1 เป็นอาจารย์
2 เป็นนักศึกษา
3 ผู้ดูแลระบบ

ไม่ทราบว่านี่คือ ตาราง user เลยหรือเปล่าครับ






Date : 2010-01-30 13:37:02 By : ความรู้เท่าหางอึ่ง
 


 

No. 2

Guest


ถ้าตารางเดียวกันควรจะมี สถานะด้วยว่าเป็น อ. น.ร. หรือ admin อะไรประมาณนี้
Date : 2010-01-30 14:00:40 By : tusscomsci
 

 

No. 3

Guest


ตกลงออกแบบฐานข้อมูลมากี่เทเบิ้ลละเนี้ย ที่พวกคุณแนะนำไปมันก็น่าจะดีกว่า สาม เทเบิ้ลนะ แต่ถ้าเกิดเขาทำงานมาเยอะแล้วเหลือแค่ส่วนนี้ ให้เขาไปเปลี่ยนโครงสร้างคงไม่เหมาะ เดี๋ยวไม่ทัน ถ้าใช้ สาม เทเบิลก็ ใช้การ union กันเอา
Date : 2010-01-30 14:06:46 By : เซ็งตัวเอง
 


 

No. 4



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



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


เทเบิ้ลเดียวไม่ได้หรอกค่ะ (เพราะในแต่ละตารางก็จะมีรายะเอียดอื่นๆอีก และข้อมูลก็มีเยอะมาก)

แล้วจะให้มาเปลี่ยนเป็น เทเบิ้ลเดียวก็คงไม่ได้อย่างที่พี่ ค.ห. 3 บอกค่ะ (เพราะหนูต้องไปแก้โครงสร้าง ซึ่งมันก็เยอะมากเลยทีเดียว)

เอ่อแต่ที่ว่า union พอจะมีโค้ดตัวอย่างป่าวคะ หนูจะได้เอาไปประยุกต์

หน้าตา login

login
Date : 2010-01-30 14:21:44 By : iyaness
 


 

No. 5

Guest


แล้วคุณใช้อะไรละเป็นตัวบ่งบอกว่า อาจารย์ นักศึกษา ผู้ดูแลระบบ ในแต่ละตารางของคุณอ่ะคับ
Date : 2010-01-30 14:37:48 By : ความรู้เท่าหางอึ่ง
 


 

No. 6

Guest


วิธีจอย

http://www.select2web.com/mysql/left-join-3-table.html

http://www.select2web.com/search-results?cx=partner-pub-7642035560727187%3A5csiordpkr4&cof=FORID%3A11&ie=UTF-8&q=join+3+table&sa=&siteurl=www.select2web.com%2F#1067
Date : 2010-01-30 14:40:17 By : ความรู้เท่าหางอึ่ง
 


 

No. 7

Guest


select * from
(
select 1 as `type`, `username`, `password` from student
union
select 2 as `type`, `username`, `password` from teacher
union
select 3 as `type`, `username`, `password` from admin
) as tmp
where `username` = 'abc' and `password` = 'abc'

แค่นี้น่าจะได้แล้วว่ามี username password ที่กรอกไหม จากนั้น fetch data ออกมาจะได้ type
Date : 2010-01-30 16:09:10 By : เซ็งตัวเอง
 


 

No. 8



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



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


ใช้ radio box ค่ะ อาจารย์ นักศึกษา ผู้ดูแลระบบ ในแต่ละตาราง
Date : 2010-01-31 11:07:38 By : iyaness
 


 

No. 9



โพสกระทู้ ( 11,835 )
บทความ ( 10 )

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

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


Code (PHP)
if($_POST["radio_name"] == 1){
$tbl = "admin";
}else if($_POST["radio_name"] == 1){
$tbl = "teacher";
}else{
$tbl = "student";
}

$sql = "select * from " . $tbl . " where `username` = '" . $_POST["username"] . "' and `password` = '" . $_POST["password"] . "'";

Date : 2010-01-31 15:06:57 By : plakrim
 


 

No. 10

Guest


คุณ : iyaness

ไม่ต้องการ radio ไม่ใช่หรอค่ะ พี่PlaKriM
Date : 2010-02-01 17:32:15 By : b
 


 

No. 11



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



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


JOIN ได้แว้วค่ะ แต่ LOGIN ได้เฉพาะนักศึกษา อยากทราบว่าหนูผิดตรงไหน
ขอรบกวนพวกพี่ๆช่วยด้วยนะค่ะ (ฮือๆ หนูผิดตรงไหน โปรเจคนี้ช่างยากจิง)




Code (PHP)
<?
//ถ้า มีการ login เข้ามาให้โชว์module cpanel
if (!empty($_SESSION['adminname'])){
			echo "<meta http-equiv=\"refresh\" content=\"0; URL=?module=cpanel\">"; // Goto read data
}

//ถ้า มีการใส่ user pwd และ กดปุ่ม submit มา 
	if (!empty($_POST['submit']) && ($_POST['name_login']!="") && ($_POST['pass_login']!="") ){
	
	$strsql = "select * from ((p_tbl_users inner join tb_teach on p_tbl_users.teach_name = tb_teach.teach_name)
inner join tb_student on p_tbl_user.std_id = tb_student.std_id and thisform.p_tbl_user1.value = p_tbl_users.user_id);"
	
//	$strsql = "select authority from p_tbl_users where user_id='".querysql($_POST['name_login'])."' and user_pwd='".querysql($_POST['pass_login'])."' ";//


		$db_sql_post= new admin_control();//เริ่มการติดต่อฐานข้อมูล
		$db_sql_post -> send_cmd($strsql); //ดึงข้อมูลมากจากตาราง
		if ($db_sql_post->num_rows() > "0"){ //ถ้าจำนวนแถวมากกว่า 0  (มีข้อมูลในตาราง)
			$rowUser = $db_sql_post->fetch_data();  //ดึงข้อมูลทั้งหมดมา

			$authority = $rowUser['authority'];
			$adminname = $_POST['name_login'];
		//	$isadmin = $rowUser['isadmin'];


			$db_sql_post->close(); //การเชื่อมต่อ 
			session_register("authority"); //ลงทะเบียน session
			session_register("adminname");
		//	session_register("isadmin");

			// ถ้ามีการ ใส่  user pwd ให้แสดง module cpanel
			echo "<meta http-equiv=\"refresh\" content=\"0; URL=?module=cpanel\">";

		}else{ //ถ้า  รหัสผ่านหรือ usernameไม่ถูกต้อง และ ใส่ user pwd ไม่ครบให้ แสดง Login ใหม่ และก็แจ้งเตือน 
echo "<script>alert('ชื่อผู้ใช้ หรือ รหัสผ่าน ไม่ถูกต้อง');</script>";
			echo "<meta http-equiv=\"refresh\" content=\"0; URL=?module=login\">"; 
		}
	}else{ // ถ้า session adminname ไม่มีค่า ให้แสดง login ใหม่
			echo "<meta http-equiv=\"refresh\" content=\"0; URL=?module=login\">"; 
	}
?>
	</td></tr>
</table>

Date : 2010-02-01 23:38:34 By : iyaness
 


 

No. 12

Guest


$strsql = "select * from ((p_tbl_users inner join tb_teach on p_tbl_users.teach_name = tb_teach.teach_name)
inner join tb_student on p_tbl_user.std_id = tb_student.std_id and thisform.p_tbl_user1.value = p_tbl_users.user_id);"

สุดยอด query

ขอทำความเข้าใจก่อนครับ
มี 3 table
1 p_tbl_users
2 tb_teach
3 tb_student
user กับ password เก็บ อยู่ใน table ใหนบ้างครับ

จากการเดา user กับ password เก็บอยู่ใน table p_tbl_users table เดียว
Date : 2010-02-02 00:19:00 By : ผ่านมา
 


 

No. 13

Guest


เดาต่อ
$strsql = " select 'student' as user_type,authority from p_tbl_users inner join tb_student on p_tbl_user.std_id = tb_student.std_id where user_id='".querysql($_POST['name_login'])."' and user_pwd='".querysql($_POST['pass_login'])."'
			union 
			select 'teach' as  user_type,authority from p_tbl_users inner join tb_teach on p_tbl_users.teach_name = tb_teach.teach_name where user_id='".querysql($_POST['name_login'])."' and user_pwd='".querysql($_POST['pass_login'])."'";

Date : 2010-02-02 00:33:17 By : ผ่านมา
 


 

No. 14



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



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


ช่วงนี้เรื่องของอาจารย์กะนักศึกษาจะเยอะมากเลยแฮะ
Date : 2010-02-02 00:43:33 By : mr.v
 


 

No. 15



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



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


ต้องขอทำความเข้าใจก่อนนะคะ
มีตาราง 3 ตาราง
คือ
p_tbl_users
tb_teach
tb_student

ซึ่งตารางทั้งสามจะประกอบไปด้วย user และ password แบบของใครของมันค่ะ (ทั้งสามตารางสามารถใช้ user และ password ของตน ทำการ login เข้ามาได้)

ซึ่งเดิมทีใช้ radio box ในการล้อกอินด้วย ใส่ user และ password พร้อม check radio box โดยถ้าเป็นอาจารย์ก็ไปเช็คที่อาจารย์ นักศึกษาก็ให้ไปเช็คที่นักศึกษา ผู้ดูแลระบบก็จะให้ไปล็อกอินอีกทีหนึ่ง คือตอนทำกะจะแบ่งระบบงานออกเป็นส่วนๆ ค่ะ แต่อาจารย์ไม่เห็นด้วยที่จะให้แยก login คือ อยากให้ Join ตารางทั้งสาม เพื่อที่จะทำการล็อกอินที่เดียวกัน และตัดในส่วนของ radio box ออกค่ะ แต่ที่นี้ก็จะเกิดปัญหาขึ้นมาอีกว่า จำนวนฟิวส์ในแต่ละตารางไม่เท่ากันอีกค่ะ และในขนาดที่ tb_teach และ tb_student คือ นักศึกษาและอาจารย์ทุกคนสามารถเข้ามาใช้งานได้ทั้งหมด ไม่ว่าจะเป็นการเพิ่มลบแก้ไขข้อมูล แต่ p_tbl_user จะกำหนดสิทธิ์การเข้าถึงข้อมูลของเจ้าหน้าที่แต่ละคน ซึ่งตรงนี้เป็นปัญหามากค่ะ

มันอยากมากเลยค่ะ รบกวนพี่ๆช่วยหน่อยนะคะ

ขอบคุณค่ะ
Date : 2010-02-02 02:03:10 By : iyaness
 


 

No. 16

Guest


แล้วทั้งสามตารางมีอะไรเกี่ยวเนื่องกันไหม แล้วคุณจะเช็คว่าใครเป็นอาจารย์ นักศึกษา ผู้ใช้ จาก username passoword อย่างเดียวเลยใช่ป่ะครับ แล้วไม่มีฟิลอื่นบอกสถานะของแต่ละคนเลยเหรอ ถ้าอย่างนั้นคุณก้อต้อง union เอา เหมือนที่คุณ เซ้งตัวเอง แนะนำอ่ะครับ
Date : 2010-02-02 09:11:10 By : ความรู้เท่าหางอึ่ง
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ต้องการ join table 3 ตาราง ทำงัยดีคะ อยากรบกวนพี่ๆ ช่วยเขียนโค้ดตัวอย่างดูให้หน่อยค่ะ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 02
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2025 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่