 |
ผมทำ union join จาก db (3 ตาราง) เพื่อทำ Login ไม่ผ่าน ช่วยทีครับ |
|
 |
|
|
 |
 |
|
ต้องถามก่อนครับ ว่าทำไมต้องใช้ Union
|
 |
 |
 |
 |
Date :
2012-07-29 11:31:31 |
By :
adaaugusta |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เพราะ 3 ตารางของผม เก็บข้อมูลไม่เหมือนกันอ่ะครับ ที่เหมือนกัน ก็มีแต่ฟิล username,pass,status
บางตารางก็เก็บ address แต่บางตารางไม่ได้เก็บอ่ะครับ
|
 |
 |
 |
 |
Date :
2012-07-29 11:36:51 |
By :
Grammer |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ใช้คำสั่ง join ธรรมดาก็น่าจะได้นิครับ
|
 |
 |
 |
 |
Date :
2012-07-29 12:58:36 |
By :
slurpee55555 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เรื่องใช้คำสั่งพวกการจอยตารางหลาย ๆ รูปแบบผมรูปว่ามีประโยชน์ แต่พอใช้ที่ไรมันจะงงทุกที...
ผมใช้ง่าย ๆ จากที่คุณGrammerบอก เห็นว่ามี ฟิลด์ที่เหมือนกันคือ username คิดง่าย ๆ แบบบ้าน ๆ เลยนะ
เอาค่า trim($_POST['txtpassword']) นี่ไปหาข้อมูลในตารางแรก ได้ค่าออกมาก็เอาค่าที่ได้ เช่น $username=objResult["username"]; ไป
ไปหาค่าในตารางถัดไป ถึงจะช้าไปบ้างแต่ก็ทำงานได้ดีนะ
แต่ถ้ายัง join ต่อไป ลองเอาคำสั่งทั้งหลายไปรันใน SQL ของ phpmyadmin ดูก่อน ถ้าในกรณีนี้คุณต้องเอารูป db ทั้ง 3 ของคุณมาดูจะได้ช่วยกัน join ถูก
|
 |
 |
 |
 |
Date :
2012-07-29 13:41:51 |
By :
apisitp |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ก็ลอง join ดูดีดีตามเงื่อนไข ลองเอาไปรันใน phpmyadmin ดูแต่ผมทำไม่เป็นจริง ๆ อิอิ
แต่ก็อดสงสัยไม่ได้ทำไม ตารางเ็ก็บ username-password ต้องแยกกันเก็บข้อมูลกันด้วยอ่ะ ทำไมไม่ทำตารางเดียวเก็บทั้ง user password status เลยอ่ะ ผมว่าต้องมีเหตุผลแน่ ๆ แบ่งปันหน่อย อยากรู้ ๆ 
|
 |
 |
 |
 |
Date :
2012-07-29 16:36:42 |
By :
apisitp |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
น้องทำ 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 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|