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 > ผมทำ union join จาก db (3 ตาราง) เพื่อทำ Login ไม่ผ่าน ช่วยทีครับ



 

ผมทำ union join จาก db (3 ตาราง) เพื่อทำ Login ไม่ผ่าน ช่วยทีครับ

 



Topic : 081679



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



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




คิอผมจะเช็คล็อกอิน แต่ล็อกอินผมมี 3 ตาราง sc_admin,sc_user,sc_sw ผมเลยใช้ UNION JOIN แล้วลอง เทสดู แล้วก็ไม่ผ่าน

Warning
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\sc_db2\check_login.php on line 9
Username and Password Incorrect!


ดูเหมือนว่ามัน UNION ไม่สมบูรณ์ ผมนั่งแก้มา 3 วันแล้ว

check_login.php (PHP)
<?
	session_start();
	require("connectdb.php");
	$strSQL = "SELECT username , pass , status FROM sc_admin "
        . " UNION SELECT username , pass , status FROM sc_user "
        . " UNION SELECT username , pass , status FROM sc_sw WHERE username = '".trim($_POST['txtusername'])."' 
	and pass = '".trim($_POST['txtpassword'])."'";
	$objQuery = mysql_query($strSQL);
	$objResult = mysql_fetch_array($objQuery);
	if(!$objResult)
	{
			echo "Username and Password Incorrect!";
	}
	else
	{
			$_SESSION["username"] = $objResult["username"];
			$_SESSION["status"] = $objResult["status"];

			session_write_close();
			
			if($objResult["status"] == "admin")
			{
				header("location:admin_page.php");
			}
			else if($objResult["status"] == "user")
			{
				header("location:user_page.php");
			}
			else if($objResult["status"] == "sw")
			{
				header("location:sw_page.php");
			}
			else
			{
				echo "No Permission";
			}
	}
	mysql_close();
?>





Tag : PHP, MySQL







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2012-07-29 11:25:55 By : Grammer View : 1806 Reply : 9
 

 

No. 1



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

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

สถานะออฟไลน์
Twitter Facebook Hi5 Blogger

ต้องถามก่อนครับ ว่าทำไมต้องใช้ Union






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-07-29 11:31:31 By : adaaugusta
 


 

No. 2



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



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


เพราะ 3 ตารางของผม เก็บข้อมูลไม่เหมือนกันอ่ะครับ ที่เหมือนกัน ก็มีแต่ฟิล username,pass,status

บางตารางก็เก็บ address แต่บางตารางไม่ได้เก็บอ่ะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-07-29 11:36:51 By : Grammer
 

 

No. 3



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

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

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

ใช้คำสั่ง join ธรรมดาก็น่าจะได้นิครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-07-29 12:58:36 By : slurpee55555
 


 

No. 4



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

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

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


เรื่องใช้คำสั่งพวกการจอยตารางหลาย ๆ รูปแบบผมรูปว่ามีประโยชน์ แต่พอใช้ที่ไรมันจะงงทุกที...
ผมใช้ง่าย ๆ จากที่คุณGrammerบอก เห็นว่ามี ฟิลด์ที่เหมือนกันคือ username คิดง่าย ๆ แบบบ้าน ๆ เลยนะ
เอาค่า trim($_POST['txtpassword']) นี่ไปหาข้อมูลในตารางแรก ได้ค่าออกมาก็เอาค่าที่ได้ เช่น $username=objResult["username"]; ไป
ไปหาค่าในตารางถัดไป ถึงจะช้าไปบ้างแต่ก็ทำงานได้ดีนะ

แต่ถ้ายัง join ต่อไป ลองเอาคำสั่งทั้งหลายไปรันใน SQL ของ phpmyadmin ดูก่อน ถ้าในกรณีนี้คุณต้องเอารูป db ทั้ง 3 ของคุณมาดูจะได้ช่วยกัน join ถูก
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-07-29 13:41:51 By : apisitp
 


 

No. 5



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



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


ตอบความคิดเห็นที่ : 4 เขียนโดย : apisitp เมื่อวันที่ 2012-07-29 13:41:51
รายละเอียดของการตอบ ::
ขอบคุณครับ แต่ผมอยาก ใช้ join มากกว่าอ่ะครับ เคยลอง แบบ if ซ้อนกันแล้ว ข้อมูลออกช้าอ่ะครับ

แล้ว join มันประยุกต์ได้เลยะ ผมเลยอยากลองใช้ด้วยครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-07-29 15:35:12 By : Grammer
 


 

No. 6



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

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

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


ก็ลอง join ดูดีดีตามเงื่อนไข ลองเอาไปรันใน phpmyadmin ดูแต่ผมทำไม่เป็นจริง ๆ อิอิ
แต่ก็อดสงสัยไม่ได้ทำไม ตารางเ็ก็บ username-password ต้องแยกกันเก็บข้อมูลกันด้วยอ่ะ ทำไมไม่ทำตารางเดียวเก็บทั้ง user password status เลยอ่ะ ผมว่าต้องมีเหตุผลแน่ ๆ แบ่งปันหน่อย อยากรู้ ๆ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-07-29 16:36:42 By : apisitp
 


 

No. 7



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



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


ตอบความคิดเห็นที่ : 6 เขียนโดย : apisitp เมื่อวันที่ 2012-07-29 16:36:42
รายละเอียดของการตอบ ::
ไม่ได้มีอะไรมากอ่ะครับ แค่เก็บข้อมูลคนละส่วนกัน ผมจะทำเว็บจัดการระบบ ERP อ่ะครับ
มันก็มี 3 ตาราง เหมือนที่บอกไป ตอนแรก ก็เป็น ตาราง Account ที่เอาไว้จัดการเว็บ เหมือนสมาชิกแหล่ะครับ

ตัวอย่าง
1.สมัครสมาชิกเว็บก็จะได้ระดับ Admin ความสามารถของ Admin แค่สามารถเพิ่ม User ได้เฉยๆ
2.User ที่ถูกสร้างขึ้นมาก็สามารถจัดการกับระบบที่เ้ราเตรียมไว้ให้ เช่น อยากให้ ซื้อ-ขาย หรือแลกเปลี่ยนข้อมูล
3.ส่วนตารางสุดท้าย user sw ก็ทำหน้าที่คล้ายงานหลังร้าน หรือพวก CMS // backoffice อ่ะครับ




Code
Table 1 admin

companyid varchar(13) tis620_thai_ci No
companyname varchar(50) tis620_thai_ci Yes NULL
phone varchar(50) tis620_thai_ci Yes NULL
fax varchar(50) tis620_thai_ci Yes NULL
email varchar(50) tis620_thai_ci Yes NULL
address varchar(255) tis620_thai_ci Yes NULL
province varchar(50) tis620_thai_ci Yes NULL
country varchar(50) tis620_thai_ci Yes NULL
zipcode varchar(50) tis620_thai_ci Yes NULL
website varchar(50) tis620_thai_ci Yes NULL
username varchar(50) tis620_thai_ci Yes NULL
pass varchar(50) tis620_thai_ci Yes NULL
status varchar(10) utf8_unicode_ci No

Table 2 user

username varchar(50) tis620_thai_ci No
pass varchar(50) utf8_general_ci No
name varchar(50) tis620_thai_ci No
last varchar(50) tis620_thai_ci No
department varchar(50) tis620_thai_ci No
status varchar(10) utf8_general_ci No
softwarename varchar(50) utf8_general_ci No
mainindustry varchar(50) utf8_general_ci No
subindustry varchar(50) utf8_general_ci No

Table 3 sw เก็บข้อมูลคล้ายๆกับ ตารางแรก ไว้ทำ CMS หรือ ฺBackoffice

companyid varchar(13) tis620_thai_ci No
companyname varchar(50) tis620_thai_ci Yes NULL
phone varchar(50) tis620_thai_ci Yes NULL
fax varchar(50) tis620_thai_ci Yes NULL
email varchar(50) tis620_thai_ci Yes NULL
address varchar(255) tis620_thai_ci Yes NULL
province varchar(50) tis620_thai_ci Yes NULL
country varchar(50) tis620_thai_ci Yes NULL
zipcode varchar(50) tis620_thai_ci Yes NULL
website varchar(50) tis620_thai_ci Yes NULL
username varchar(50) tis620_thai_ci Yes NULL
pass varchar(50) tis620_thai_ci Yes NULL
status varchar(10) utf8_unicode_ci No


ปล.(ผมคงบอกได้แค่นี้ เพราะว่ามันเป็นโปรเจคฝึกงานของบริษัทๆ หนึ่ง เขาให้ผมเขียน แต่ผมก็แค่เพิ่งเริ่มต้น ยังไม่เป็นอะไรมาก ผมใช้ join ไม่เก่งด้วย เลยมาปรึกษาในนี้ดูอ่ะครับ เพราะที่บริษัท มีแต่ Programmer VB กับ SA ไม่มี Web Del เลย ไม่รู้จะหันหน้าไปเพิ่งใครแล้วครับ )

สุดท้าย ผมอยากขอบคุณ เว็บ Thaicreate มากๆครับ ทุกการเรียนรู้ของผมเริ่มต้นจากเว็บนี้ และสมาชิกบนเว็บที่ช่วย


ประวัติการแก้ไข
2012-07-29 19:39:53
2012-07-29 19:43:05
2012-07-29 19:45:09
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-07-29 19:39:09 By : Grammer
 


 

No. 8



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

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

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


น้องทำ 3 ตารางไปแล้วก็ต้องใช้ join แน่นอน ตรงนี้ต้องรอพี่ ๆ ในนี้เข้ามาเสริมให้

แต่ที่ผมจะสื่อคือ ทำไมน้อง Grammer ไม่ก็ทำตาราง user ตารางเดียวนี่ล่ะ เพราะดูแล้วเก็บค่าเหมือนกันแทบทุกอย่าง ตัวไหนไม่เก็บก็ปล่อยว่าง แล้วตัวแปรที่สำคัญเน้นไปที่ ค่า status โดยมีการกำหนดเงื่อนไขว่า

status = 1 เป็น admin
status = 2 เป็น user
status = 3 เป็น sw
เวลาทำการ login เข้ามา ก็เอาค่า username กับ pass ไป select ค่า ถ้าเจอก็แสดงว่า username กับ pass ถูกต้อง
จากนั้นก็ดูค่า status ถ้า เป็น 1 ก็ส่งไปเพจ admin ถ้าเป็น 2 ก็ส่งไปเพจ user ถ้าเป็น 3 ก็ส่งไปเพจ sw เป็นต้น
มันก็จะง่ายกับเราด้วย พี่เข้าใจสไตล์การเขียนของแต่ละคนไม่เหมือนกัน เห็นว่าเพิ่งเริ่มก็เลยแนะนำสิ่งที่ง่าย ๆ ก่อน
Code (PHP)
if ($status==1){
	    echo("<script language='javascript1.2'>");
            echo("window.location='admin.php';");
            echo("</script>"); }
if ($status==2){
	    echo("<script language='javascript1.2'>");
            echo("window.location='user.php';");
            echo("</script>"); }
if ($status==3){
	    echo("<script language='javascript1.2'>");
            echo("window.location='sw.php';");
            echo("</script>"); }


แต่ถ้าเคยใช้วิธีง่าย ๆ แบบนี้ไปแล้วก็ขออภัยด้วยนะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-07-29 19:59:24 By : apisitp
 


 

No. 9



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



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


ตอบความคิดเห็นที่ : 8 เขียนโดย : apisitp เมื่อวันที่ 2012-07-29 19:59:24
รายละเอียดของการตอบ ::
ขอบคุณมากครับพี่ หัวหน้า SA เขาออกแบบบตารางมาให้ผมทำ สมมุติว่า มีตารางผู้ผลิตกับผู้ซื้อ ถึงจะเก็บข้อมูลใกล้เคียงกับ แต่ก็ให้แยกข้อมูลไว้ เวลาเรียกดูจะได้เป้นระเบียบกว่า มันก็เป็นแแบบนี้แหล่ะพี่ เค้าสั่งผมมาอีกที่จะผ่านไม่ผ่านก็ขึ้นอยู่กับโปรเจคนี้แหล่ะ ผมบอกพี่ที่บริษัทแล้วว่าผมเขียนเป็นแค่ insert update delete เรียนมาแค่พื้นฐาน ก็จัดโปรเจคให้ผมซะเต็มที่เลย ทั้งที่บริษทัก็ทำ Oracle ERP แท้ๆ ทำที่นี้ได้ความรู้ Oracle เยอะดี แต่โหดกับเด็กมาก ผมไม่อยากจะ said เรื่องเยอะ แค่อยากให้ผ่านๆ (ขอบคุณพี่มาก ที่คอยแนะนำผม)


นี้แค่ล็อกอินนะพี่ ยังต้้องส่วนจัดการแบนเนอร์ 30 วัน,Report PHP และ contant อื่นๆ เยอะเกิน ผมก็แค่เด็กฝึกงาน เอาไรกับผมมาก (ขอระบายหน่อย ฝึกโหดมาก ให้เเทรนนิ่งตัวเอง)


ประวัติการแก้ไข
2012-07-29 20:47:19
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-07-29 20:44:25 By : Grammer
 

   

ค้นหาข้อมูล


   
 

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