ช่วยอธิบาย Code ส่วนนี้หน่อยครับผมไม่ค่อยเข้าใจ อยากจะลองเอามาดัดแปลงกับงานตัวเองครับ
เปลี่ยน left outer join
เป็น inner join
ครับ
Date :
2017-09-21 17:03:23
By :
mee079
เนื่องจากไม่รู้ว่าอะไรเป็นอะไร เพราะไม่มีอะไรหรืออะไรมาให้ดู มีแค่ความต้องการคล้ายๆ
เลยทำเป็นต้วอย่างคล้ายๆจะเดามาให้ดู 55555
Code (SQL)
select * from customer where staff_id = $staff_id
Date :
2017-09-21 18:26:34
By :
Chaidhanan
ง่ายๆ มันก็แค่ LEFT OUTER JOIN
2 Table เฉยๆ
Table 1. = meeting_list V
Table 2. = meeting_room R
และ where V.user = '".$_SESSION["member_id"]."'"; // $_SESSION เมื่อ Login เข้ามาเฉยๆ
และ mysql_fetch_array ไม่มีอะไรมาก
Date :
2017-09-22 08:25:52
By :
Hararock
คือผมจะดึงข้อมูลลูกค้าที่พนักงานคนนี้รับผิดชอบว่ามีใครบ้างครับบ้าง ซึ่งตอนนี้คือพนักงานทุกคนบันทึกลงในฟอร์มเดียวกัน คือเอาง่ายๆผมไม่อยากให้พนักงานคนอื่นเห็นข้อมูลลูกค้าที่ตัวเองไม่ได้รับผิดชอบครับ เวลาเปิดดูข้อมูล ต้องเขียนแบบไหนครับ
คือตอนนี้ผมมีฐานข้อมูลแบบนี้ครับพี่
data.sql (SQL)
CREATE TABLE `customer` (
`id` int(11) NOT NULL,
`user` varchar(20) NOT NULL,
`pass` varchar(20) NOT NULL,
`namecus` varchar(50) NOT NULL,
`address` varchar(200) NOT NULL,
`tel` int(10) NOT NULL,
`emai` varchar(50) NOT NULL,
`member_save` varchar(20) NOT NULL,
`date` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
--
-- dump ตาราง `customer`
--
INSERT INTO `customer` VALUES (1, 'cus1', '1234', 'ลูกค้า1', '11111', 1111111111, '[email protected] ', 'มานะ', '2017-09-22 10:50:00');
INSERT INTO `customer` VALUES (2, 'cus2', '1234', 'ลูกค้า2', '222222', 962222222, '[email protected] ', 'มานี', '2017-09-22 10:50:20');
INSERT INTO `customer` VALUES (3, 'cus3', '1234', 'ลูกค้า3', '333333', 333333333, '[email protected] ', 'วันดี', '2017-08-25 10:46:16');
INSERT INTO `customer` VALUES (4, 'cus4', '1234', 'ลูกค้า4', '444444', 444444444, '[email protected] ', 'วาที', '2017-08-25 10:56:30');
CREATE TABLE `merber` (
`id` int(3) NOT NULL,
`username` varchar(20) NOT NULL,
`password` varchar(20) NOT NULL,
`name` varchar(20) NOT NULL,
`level` int(2) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
--
-- dump ตาราง `merber`
--
INSERT INTO `merber` VALUES (1, 'user1', '1234', 'มานะ', 1);
INSERT INTO `merber` VALUES (2, 'user2', '1234', 'มานี', 1);
INSERT INTO `merber` VALUES (3, 'user3', '1234', 'วาที', 1);
INSERT INTO `merber` VALUES (4, 'user4', '1234', 'วันดี', 1);
ประวัติการแก้ไข 2017-09-22 11:19:49
Date :
2017-09-22 11:16:32
By :
Lun2560
Code (SQL)
select * from customer where member_save='มานะ'
น่าจะเก็บ member_save เป็น id ของตาราง member จะเร็วกว่าเก็บเป็น varchar
Date :
2017-09-22 11:31:44
By :
Chaidhanan
พี่ครับ ได้แล้วครับ แต่ตอนนี้เวลา user2,user3,user4 เข้ามายังโชว์เฉพาะของ 'มานะ' อยู่ครับ
Date :
2017-09-22 12:07:27
By :
Lun2560
5555 เปลี่ยนมานะเป็นชื่อที่ถูกต้อง หาวิธีเอาค่ามาจากการ login เองหรือจากการส่งค่า
Date :
2017-09-22 13:05:13
By :
Chaidhanan
ขอแนะนำนิดหนึ่ง
---------------------------
Table customer
ID = customer_id , ID_Customer , CustomerID แบบนี้จะดีกว่า
เพราะ ตั้งแต่ id id มันจะยาก และ เวลา Join และ มันสื่อความหมายไม่ได้ ว่าเป็นของ Table ไหน
--------------------------
Table merber
คุณก็ตั้งแบบเดีม id
-------------------------
มันก็ customer = id // merber = id
------------------------
ถ้ามีเป็น 10 กว่า Table มันจะมี Problems นิดๆเดะ
------------------------
จำนวน `id` int(3) ของ merber
จำนวน `id` int(11) ของ customer
และ PK merber คุณก็ไม่รู้ว่าเป็นตัวไหน ไปดู ชื่อใน DB มาใหม่ครับ แล้วค่อยว่ากัน
merber ก็ไม่ถูก
Member ถูก
Date :
2017-09-22 13:57:25
By :
Hararock
คือมันต้อง apply เอาหน่อนนะครับ คือผมไม่เห็นโค๊ดที่ใช้งาน ก็ทำได้แค่ตัวอย่าง
Code (PHP)
$uname=$_SESSION['username'];
$sql = "select * from customer where member_save='".$uname."'";
ส่วนตัวแปรที่ถูกต้อง ก็ต้องไปโมฯเอาเองนะครับ
Date :
2017-09-22 14:42:03
By :
Chaidhanan
รบกวนอีกครั้งครับพี่ ถ้าผมอยากจะให้เวลา admin ล็อคอินเข้ามาสามารถดูข้อมูลของหน้านี้ทั้งหมด จะเขียนเงื่อนไขยังไงครับ
Date :
2017-09-23 09:04:38
By :
Lun2560
ใส่ where กับ ไม่ใส่
Code (PHP)
$sql = "select ...........................";
$sql.= (isAdmin? "" : " where member_save='.....' ");
Date :
2017-09-23 09:11:24
By :
Chaidhanan
isAdmin คุณต้อง apply เอาหน่อย เป็นแค่ตัวอย่าง คุณต้องทำให้เป็นตัวแปรก่อน
เช่น
Code (PHP)
define( 'isAdmin', $user_type=='Admin');
ถีงจะใช้ได้
$user_type มายังก็ต้องบอกว่า ไม่รู้ ต้องจัดการเอาเองนะครับ
เวลาผมทำตัวอย่าง ช่วยอ่านและทำความเข้าใจก่อน ที่จะใช้งานจริงนะครับ
ปล. ต่อ string ให้ถูก ไวยกรณ์ ของ sql statement ด้วยนะครับ
ประวัติการแก้ไข 2017-09-23 10:11:04
Date :
2017-09-23 10:07:24
By :
Chaidhanan
ขอบคุณครับพี่เดี๋ยวถ้าติดปัญหาจะมาถามอีกทีครับ
Date :
2017-09-23 17:02:02
By :
Lun2560
Load balance : Server 02