สร้างหน้าล็อกอินแบบเลือกประเภทผู้ใช้ มี User Teacher Admin แบบแยกตาราง ช่วยแนะนำทีครับ
ผมแนะนำว่า น่าจะรวม Table นะครับ
คือเรามองง่ายๆ ว่า User, Teacher, Admin เนี่ย ทั้ง 3 ตัวมันก็คือ User ทั้งหมด
แต่ให้เรา มองเป็น User Type แทนครับ เราก็จะได้ Table User ดังนี้
Table User
userId int[11] [auto increment]
userName varchar[20]
password varchar[20]
firstName varchar[50]
lastName varchar[50]
userType enum[0,1,2] (User=0 Teacher=1 Admin=2 )
createDate datetime
คือถ้ามี field อะไรอีก ที่ user ทั้ง 3 types ต้องใช้เหมือนกันก็จับยัดมันลงไปในนี้ได้เลย
ส่วน field ที่มีเฉพาะ user บาง type เช่น Teacher อาจจะมี แผนก, วิชาที่สอน, เงินเดือน เป็นต้น เราก็จะสร้าง Table แยกออกมาเป็น
Table TeacherDetail
userId int[11]
section varchar [20]
courseName varchar[20]
salary decimal[10,2]
คร่าวๆ ประมาณนี้นะครับ ถ้าไม่เข้าใจตรงไหนถามได้นะครับ pm มาก็ได้ครับ
ประวัติการแก้ไข 2011-12-06 01:19:48
Date :
2011-12-06 01:18:33
By :
kerb
ครับ ที่หาๆดูใน ThaiCreate ส่วนใหญ่จะมีแบบ รวมเทเบิ้ลเดียวกัน
มันจะเป็น คล้ายๆแบบนี้หรือเปล่าครับ
https://www.thaicreate.com/community/php-mysql-login-form-check-username-password.html
แล้วถ้าหากว่าแยกกัน จะต้องเขียนโค้ดตรวจสอบค่า(0,1,2)ยังไงครับ
Date :
2011-12-06 01:29:14
By :
PEACE
คือ ถ้าแยกเนี่ยมันผิดหลักแน่นอนครับ เพราะเวลาเราจะตรวจสอบว่าใคร login เข้ามา เราต้องเช็คทั้ง 3 Table ครับว่ามันเป็นใครกัน
ทำให้เสียเวลาในการประมวลผล โดยใช่เหตุครับ เพราะเรามีทางเลือกที่ดีกว่าโดยการรวมครับ
Date :
2011-12-06 01:44:19
By :
kerb
อ่อ ครับ
ผมไม่ค่อยเข้าใจ ว่าโค้ดตัวไหนหมายถึงอะไร
พอจะแนะนำโค้ดคร่าวๆได้ไหมครับว่ามันจะต้องเขียนแบบไหน
รบกวนขอตัวอย่างโค้ดที่ใช้ได้ไหมครับ
Date :
2011-12-06 01:51:59
By :
PEAC
link ด้านบน น่ะ เข้าใจง่ายสุดแล้วครับ ถ้าไม่เข้าใจโค้ดนี้ โค้ดอื่นมันจะยากกว่านี้น่ะสิครับ ไม่เข้าใจตรงไหนบ้างล่ะครับ
Date :
2011-12-06 02:02:25
By :
kerb
ครับ พอจะได้เรียนมาบ้าง แต่ไม่ค่อยเข้าใจเท่าไหร่
จากด้านบน มันเป็นแค่2ค่า User กับ Admin
ถ้าหากจะเพิ่มไปอีกค่า ก็เข้าไปเพิ่มในส่วนของ Status ได้เลยใช่ไหมครับ(อิงจาก เทเบิ้ล member ของลิงค์ด้านบน)
ส่วนตรงหน้าเช็ค
มันจะมีแค่2ค่า คือ UserและAdmin
หากเพิ่มไปอีกค่า(Teacher) จะต้องใส่โค้ดอะไรเพิ่มตรงไหนครับ
(โค้ดนี้ยกมาจากลิงค์ด้านบนนะครับ)
check_login.php เป็น Check Login
01.<?
02.session_start();
03.mysql_connect("localhost","root","root");
04.mysql_select_db("mydatabase");
05.$strSQL = "SELECT * FROM member WHERE Username = '".trim($_POST['txtUsername'])."'
06.and Password = '".trim($_POST['txtPassword'])."'";
07.$objQuery = mysql_query($strSQL);
08.$objResult = mysql_fetch_array($objQuery);
09.if(!$objResult)
10.{
11.echo "Username and Password Incorrect!";
12.}
13.else
14.{
15.$_SESSION["UserID"] = $objResult["UserID"];
16.$_SESSION["Status"] = $objResult["Status"];
17.
18.session_write_close();
19.
20.if($objResult["Status"] == "ADMIN")
21.{
22.header("location:admin_page.php");
23.}
24.else
25.{
26.header("location:user_page.php");
27.}
28.}
29.mysql_close();
30.?>
ถ้ามีอะไรผมรบกวน PM ไปได้ไหมครับ
Date :
2011-12-06 02:13:25
By :
PEACE
PM มาได้ตามสบายครับ แต่ผมแนะนำให้ไปอ่าน PHP เบื้องต้นก่อนครับ ไม่งั้นมันจะงงไปจนเสร็จงาน เพราะปัญหาตอนนี้คือ ไม่มี Basic PHP
มันเป็นอุปสรรคครับ ลองสละเวลาซัก 30 นาที อ่าน Basic คร่าวๆครับ http://www.w3schools.com/php/default.asp
แค่ Basic ก็จะช่วยได้เยอะครับ ไม่ยากอย่างที่คิด ขอเพียงตั้งใจครับ ถ้าเริ่มสนุกก็ลุย Advance ไปเลยครับ เว็บนี้สอนดีเข้าใจง่ายครับ มีตัวอย่างประกอบ
Date :
2011-12-07 01:25:30
By :
kerb
ขอบคุณมากครับ
Date :
2011-12-07 01:33:22
By :
PEACE
Load balance : Server 02