พบกับบทความเกี่ยวกับคอมพิวเตอร์และ programming ได้ที่ http://articles.modoeye.com | บล็อกอาหาร
PHP development / รบกวนเรื่อง Member กับ E-mail คร้าบผม
โอ๋
โอ๋
Mon 27 Feb 2006 16:17:37
รบกวนเรื่อง Member กับ E-mail คร้าบผม
พอดีชื่อล็อกอินของ Member อยู่ใน Table ชื่อ  member_account
ส่วน อีเมล์ของ สมาชิก อยู่ใน Table ชื่อ member_profile
ผมใช้การดึง ชื่อของ   member มาโชว์ คือคำสั่ง
$sql = "SELECT * FROM member_account LIMIT 1;";
$result = mysql_query($sql);
echo "<br>สมาชิก : $mem[name]";
โดยโค้ดข้างบนจะโชว์ชื่อ member ก็ต่อเมื่อ ล็อคอินเข้ามาในระบบแล้วอ่ะครับ
แต่ติดปัญหาตรงที่ เวลาผมจะให้โชว์ อีเมล์ของสมาชิกคนที่ล็อคอินเข้ามามันไม่โชว์ชื่อสมาชิกคนนั้นนะซิครับ มันโชว์สมาชิกคนแรกอย่าเดียวเลย อังโค้ดนี้อ่ะครับ
$sql = "SELECT * FROM mem_profile LIMIT 1;";
$result = mysql_query($sql);
//echo "<br>E-mail : ";
while ($dbarr = mysql_fetch_array($result)) {
$result1 = $dbarr["email"] . "<br>";
echo "$result1";
}
มันเป็นโค้ดที่ให้โชว์สมาชิกทั้งหมดอ่ะครับ
คุณ Admin ช่วยชี้แนะทีครับว่า จะเขียนโค้ดยังไงให้มันเช็คได้ว่าเป็นสมาชิกคนนั้นล็อคอินเข้าระบบแล้วให้มันดึง อีเมล์มาจาก table ชื่อ member_profile ด้วยอ่ะครับ
รวมโค้ดกันก็ได้ครับ หรือแยกโค้ดมาก็ได้ครับ ขอแค่มันดึงมาก็พอครับ
Administrator
Mon 27 Feb 2006 19:34:05
ถ้าใน table "member_account" นั้นใช้ field ชื่อ username และ email นั้น การที่จะนำข้อมูลที่ต้องการในภาษา SQL ใช้ WHERE CLAUSE ครับเช่น SELECT name FROM member_account WHERE username='admin' เป็นการนำชื่อเฉพาะ record ที่มี username เป็น "admin" เท่านั้นครับ

ระบบการ Login นั้นมี 2 แบบครับคือ COOKIE และ SESSION ซึ่งเมื่อมีการ Login แล้วก็ทำการ Set COOKIE หรือ SESSION ในชื่อที่ตั้งไว้ในการตรวจสอบ จากนั้นถ้าต้องการรู้ว่า Login หรือยังนั้นก็ทำการเช็คจากตัวแปรดังกล่าวว่ามีการเซ็ทเป็นค่าตามที่เราตั้งไว้หรือไม่ครับ
โอ๋
โอ๋
Mon 27 Feb 2006 21:48:43

คือผมจะดึง ข้อมูล name  ใน Table  member_account  พร้อมกับ ให้ดึง ข้อมูล email ใน Table  member_profile  ซึ่งเป็นข้อมูลของคนเดียวกัน   มันจะอ้างอิงโดย  ใน table member_account  จะมีฟิลด์  no  และใน table member_profile  ก็จะมีฟิลด์ no  เหมือนกันเพื่อใช้อ้างอิงในการดึงข้อมูล

ก็เลยจะถามว่า เวลามันดึงข้อมูลของ user คน ๆ นี้ ใน  table member_account  แล้วจะให้ไปดึง email ใน table member_profile  ด้วย จะต้องเขียนโค้ดยังไงครับ

โค้ดเดิมที่ผมเขียน ดึงได้แค่สมาชิก แต่ไม่รู้ว่าจะเพิ่มเข้าไปยังไงให้ดึง email มาด้วยอะครับ
$sql = "SELECT * FROM member_account LIMIT 1;";
$result = mysql_query($sql);
echo "<br>สมาชิก : $mem[name]";

รบกวนช่วยด้วยนะครับ ขอโค้ดแบบเต็ม ๆ อ่ะ มึนหมดแล้ว

ขอบคุณล่วงหน้าครับ

Davinci
Davinci
Mon 27 Feb 2006 22:09:11
$strSQL="SELECT T1.Email, T2.Name FROM member_profile AS T1, member_account AS T2 WHERE (T2.Name='$_POST[name]')";
$result=mysql_query($strSQL);

ลองดูครับมั่วเอา
โอ๋
โอ๋
Mon 27 Feb 2006 22:44:01

อะจ๊าก   เหอะ ๆ

จะลองดูครับ

โอ๋
โอ๋
Mon 27 Feb 2006 23:00:51

ไม่ได้อ่ะครับ
จะมีวิธีอื่นอีกไหมครับว่า ถ้าเป็นสมาชิกคนนี้แล้ว ให้ ไปดึงข้อมูลใน Table member_profile คือให้ดึง email มา  แต่ชื่อสมาชิกคนนี้อยู่ใน Table member_account นะครับ
ต้องทำยังไงบ้างครับ

Administrator
Tue 28 Feb 2006 00:04:25
ต้องดูครับว่าความสัมพันธ์ระหว่าง 2 ตารางนี้เป็นอย่างไรครับ เช่น ถ้าเป็น
#member_account
- uid int(6) auto_increment primary_key
- username varchar(50)
- password varchar(50)
- email varchar(50)

#member_profile
- uid int(6)
- fname varchar(50)
- lname varchar(50)
- phone varchar(14)
- address varchar(100)

จากตัวอย่างผมบอกว่าความสัมพันธ์ของ 2 ตารางนี้คือ field uid ดังนั้นเวลาผมต้องการดึงข้อมูลผมก็จะใช้
SELECT acc.email, pro.fname, pro.lname FROM member_account acc INNER JOIN member_profile pro ON acc.uid=pro.uid WHERE acc.username='someone'

อธิบายครับ
ผมทำการเลือกนำข้อมูล email ที่อยู่ในตาราง member_account (ที่ทำการ CAST มาเป็น acc จึงใช้ acc.email) และ fname, lname จากตาราง member_profile (ที่ทำการ CAST มาเป็น pro จึงใช้ pro.fname และ pro.lname) โดยใช้ความสัมพันธ์ที่ตาราง member_account.uid==member_profile.uid โดยเลือกเฉพาะ member_account.username=='someone'

หรือถ้าทั้ง 2 ตารางนั้นไม่มีความสัมพันธ์กันเลยนั้น (ผมว่าไม่น่าจะมี) ก็คงต้องทำการใช้ query 2 ครั้งครับ เช่น นำข้อมูลชื่อก่อนแล้วจึงไปทำการ query นำเอาข้อมูล email ออกมาอีกทีครับ
Reply
Name:
E-mail:
Home | Services | Forum | Classified | Directories | Support | Contact
ATOM feed RSS 0.9 feed RSS 1.0 feed RSS 2.0 feed
Copyright © 2005 - 2007 Modoeye.com, All Rights Reserved.
Disclaimer | Privacy policy | Term of Use | Term of Services
Valid XHTML Valid CSS! PHP: Hypertext Preprocessor MySQL database Apache Powered! FreeBSD Power to serve
Modoeye Sitemap Client login