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,037

HOME > PHP > PHP Forum > ขอถามเรื่องการบันทึกข้อมูลลง database 2ตารางทำอย่างไรหรอครับ



 

ขอถามเรื่องการบันทึกข้อมูลลง database 2ตารางทำอย่างไรหรอครับ

 



Topic : 053873



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



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




ตาราง ของผมมี 2ตารางครับ คือ
ตารางที่ 1. เก็บ ชื่อ ที่อยู่ เบอร์โทร อีเมล์
ตารางที่ 2. เก็บ user passwors status
ต้องการทราบว่าจะทำการบันทึกข้อมูล อย่างไรหรอครับจากหน้า ข้อมูลที่มาก็จะมาจากหน้าฟอร์มสมัครสมาชิก อะครับ
ขอบคุณล่วงหน้าสำหรับคำตอบ ครับ รู้ว่าพี่ๆต้องเข้ามาตอบกันแน่นอน
ผมพึ่งเริ่มศึกษาศึกษายังไม่เก่งเลย



Tag : PHP, MySQL







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-12-31 22:48:46 By : XmatinX View : 1824 Reply : 18
 

 

No. 1



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



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


ก็ในกรณีที่เรามีเก็บ 2 ตารางน่ะครับ เช่น tb_member กับ tb_memberlogin เวลาเรา Sumit ไปก็ใ้ห้มาน insert เข้าสองตารางเลยครับ query สองครั้งน่ะครับผม เช่น

1.insert เข้า tb_member
$sql="Insert into tb_member(ชื่อ,ที่อยู่,เบอร์โทร,อีเมล์) values(.......)";
$result=mysql_query($sql);

2.insert เข้า tb_memberlogin(user,passwors,status) values(...................);
$result=mysql_query($sql);

ประมาณนี้แหละครับท่านอื่นว่าไงครับลองดูน่ะครับน่าจะช่วยได้บ้าง






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-01-01 18:25:34 By : gogo01
 


 

No. 2



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



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


ขอบคุณครับเดียวลองทำดูครับ พี่ๆเว็บนี้ใจดีกันทุกคนเลย ผมเข้ามาอ่านทุกวันเลยครับได้ความรู้ทั้งเข้าใจบ้างและไม่เข้าใจบ้างแต่ก็จะพยายามต่อไปครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-01-02 10:30:12 By : XmatinX
 

 

No. 3



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



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


เอาตั้งแต่ตอน คอนเน็ก ดาต้าเบส เลย ได้ ปะ ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-01-03 18:57:52 By : XmatinX
 


 

No. 4



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



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


<?php
include("../connect/config.inc.php");
$empSQL = "INSERT INTO emp ";
$empSQL .="(name,address,e-mail,tel) ";
$empSQL .="VALUES ";
$empSQL .="('".$_POST["txtname"]."','".$_POST["txtaddress"]."','".$_POST["txtmail"]."','".$_POST["txttel"]."')";
$userSQL = "INSERT INTO user ";
$userSQL .="(user,pass,u_status) ";
$userSQL .="VALUES ";
$userSQL .="('".$_POST["txtuser"]."','".$_POST["txtpass"]."','emp')";
$objQuery = mysql_query($empSQL);
$objQuery = mysql_query($userSQL);

if($objQuery)
{
echo "Save Done.";
}
else
{
echo "Error Save [".$empSQL."] and [".$userSQL."]";
}
?>
-------------------------------
มีแค่ข้อมูล user ที่ถูกบันทึกลงไป อะ ครับ แต่ ตาราง emp ไม่มี ข้อมูลเลย ครับ ขอความรู้ที นะ ครับ ผมเขียน ผิด แน่ๆเลย ใช่ปะครับคุณ พี่ อิอิอิ


ประวัติการแก้ไข
2011-01-03 21:09:42
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-01-03 20:32:30 By : XmatinX
 


 

No. 5



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



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


ลองเปลี่ยนชื่อตัวแปรดูนะครับ
Code (PHP)
$objQueryemp = mysql_query($empSQL);
$objQueryuser = mysql_query($userSQL);

if($objQueryemp)
{
echo "Save Done.";
}
else
{
echo "Error Save [".$empSQL."]";
}


if($objQueryuser)
{
echo "Save Done.";
}
else
{
echo "Error Save [".$userSQL."]";
}



ประวัติการแก้ไข
2011-01-04 01:08:55
2011-01-04 01:09:19
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-01-04 01:07:29 By : ja_14436
 


 

No. 6



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



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


ขอบคุณครับพี่ๆเดียวผมลองทำแล้วได้ผลอย่างไรเดียวมาโพส อีก ที ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-01-04 08:23:13 By : XmatinX
 


 

No. 7



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



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


ตาราง ของผมมี 3ตารางครับ คือ

ตารางที่ 1. เก็บ ID_cus ชื่อ ที่อยู่ เบอร์โทร อีเมล์
ตารางที่ 2. เก็บ ID_emp ชื่อ ที่อยู่ เบอร์โทร อีเมล์
ตารางที่ 3. เก็บ ID_user user passwors status

ผมต้องการ นำ ID_cus และ ID_emp มาบันทึกลงในตาราง ที่ 3 ผมต้องเขียนอย่างไรหรอ ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-01-13 23:50:00 By : XmatinX
 


 

No. 8



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



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

หลังจากใช้คำสั่ง mysql_query แอดข้อมูลไปแล้ว ใช้ mysql_insert_id() เพื่อรับไอดีล่าสุดที่เพิ่งได้แอดไปครับ แต่อันนี้ใช้ได้เฉพาะ Primary Key ของตารางนั้นเป็นแบบ Auto Increment นะครับ

เช่น
ถ้าหลังจากแอดข้อมูลลูกค้าลงตารางแรกไป (สมมุติว่าตารางชื่อ Customer ละกัน) แล้วอยากได้ไอดีลูกค้า(ที่ึพึ่งแอดไปตะกี้นี้อ่ะ) มาเก็บไว้ในตัวแปร $customer_id (สมมุติขึ้นมาครับ) จะมีโค้ดแนวนี้

Code (PHP)
<?php
$sql = sprintf("INSERT INTO customer (name , address , telephone , email) VALUES('%s' , '%s' , '%s' , '%s') ",
                     trim($_POST['txtname']),
                     trim($_POST['txtaddress']),
                     trim($_POST['txttel']),
                     trim($_POST['txtmail']));
mysql_query($sql) or die(mysql_error());
$customer_id = mysql_insert_id();
// เอา $customer_id ไปใช้ต่อเลยครับ
?>


Tip เพิ่มเติม
- คำสั่ง sprintf เอาไว้จัดฟอร์แมทตัวอักษร อาจจะทำให้เขียนโค้ดยาวหน่อย แต่มันช่วยให้ตอนหลังกลับมาอ่าน อ่านง่าย แก้ง่าย ลดความเสี่ยงจากการใช้สัญลักษณ์ ' กับ " อันนี้ใช้หรือไม่ใช้แล้วแต่ความถนัดครับ
- คำสั่ง trim เอาไว้ตัดช่องว่างซ้ายขวาตัวอักษรออก ก่อนบันทึกข้อมูลลงฐานข้อมูล ถ้าข้อมูลประเภทสตริง ควรใช้ trim ครอบนะครับ เพราะบางทีเราไปควบคุมคนพิมพ์เข้ามาไม่ได้ แล้ว TextArea น่ะครับ มันชอบแทรกตัวอักษรเปล่าๆลงไปด้วย อย่าลืม trim มันก่อนนะครับ
- ตอนใช้ mysql_query ใช้ or die(mysql_error()) ตามหลังด้วยก็ดีครับ มันจะบอกข้อความข้อผิดพลาดออกมาชัดเจน บางทีเราแอดข้อมูลมันไม่เข้า ถ้าเราไม่แสดงข้อผิดพลาดออกมา มันก็ยังทำงานได้อยู่ ยังงี้ทำให้การทดสอบทำได้ยากครับ อย่าลืมใส่ทุกครั้งนะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-01-14 00:14:23 By : kenessar
 


 

No. 9



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



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


ขอบคุณสำหรับคำตอบ ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-01-14 00:21:06 By : XmatinX
 


 

No. 10



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



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

อ่อ เพิ่มเติมครับ สำหรับการตรวจสอบว่า เวลาเรารันคำสั่ง SQL จำพวก INSERT , UPDATE และ DELETE ได้ผลหรือไม่ให้ใช้คำสั่ง mysql_affected_rows() เป็นตัวตรวจสอบนะครับ โดยมันจะคืนค่ากลับมาเป็นจำนวนแถวที่กระทำการสำเร็จ

ตัวอย่างโค้ด

Code (PHP)
<?php
$sql = sprintf("INSERT INTO customer (name , address , telephone , email) VALUES('%s' , '%s' , '%s' , '%s') ",
                     trim($_POST['txtname']),
                     trim($_POST['txtaddress']),
                     trim($_POST['txttel']),
                     trim($_POST['txtmail']));
mysql_query($sql) or die(mysql_error());
if(mysql_affected_rows() > 0)
{
     echo "บันทึกสำเร็จแล้ว";
}
else
{
      echo "ไม่มีการบันทึกเกิดขึ้น";
}
?>



ส่วนมากแล้วคำสั่ง INSERT ไม่ค่อยมีเรื่องที่มันแอดไม่เข้าหรอกครับ เพราะถ้ามันผิดพลาดมันจบตั้งแต่ or die(mysql_error()) แล้วครับ
ส่วนมากมักเอาไว้นับผลลัพธ์ในคำสั่งพวก UPDATE กับ DELETE ลองเอาไปใช้ดูครับเผื่อมีประโยชน์
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-01-14 00:23:24 By : kenessar
 


 

No. 11



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



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


<?php
include("../connect/config.inc.php");

$empSQL = "INSERT INTO emp "; //บันทึกลงตาราง emp
$empSQL .="(name,address,mail,tel) ";
$empSQL .="VALUES ";
$empSQL .="('".$_POST["txtname"]."','".$_POST["txtaddress"]."','".$_POST["txtmail"]."','".$_POST["txttel"]."')";

$emp = mysql_query($empSQL);
$emp_id = mysql_insert_id();

$userSQL = "INSERT INTO user "; // บันทึกลงตาราง user
$userSQL .="(u_id,user,pass,u_status) ";
$userSQL .="VALUES ";
$userSQL .="('$emp_id''".$_POST["txtuser"]."','".$_POST["txtpass"]."','emp')";

$user = mysql_query($userSQL);
if($emp and $user)
{
echo "Save Done.";
header ("location:index.php");
}
else
{
echo "Error Save";
header ("location:addemp.php");
}
?>

ผมทำแบบนี้มันบันทึก แต่ ตาราง emp อะครับ แต่ตาราง user ตรง ID มันก็ไม่บันทึก อะครับ ช่วยกรุณาดูให้ที่นะครับผมต้องเขียน ผิดแน่ ๆๆ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-01-14 00:40:42 By : XmatinX
 


 

No. 12



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



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

ตรง $userSQL .="('$emp_id''".$_POST["txtuser"]."','".$_POST["txtpass"]."','emp')"; บรรทัดนี้น่ะครับ ลืมใส่ comma คั่นมัน
ลองเปลี่ยนเป็น $userSQL .="('$emp_id' , '".$_POST["txtuser"]."','".$_POST["txtpass"]."','emp')";
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-01-14 01:16:15 By : kenessar
 


 

No. 13



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



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

อย่างที่แนะนำไปแหละครับ ถ้าใช้คำสั่ง sprintf ได้ จะดีบักง่ายขึนอีกเยอะเลยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-01-14 01:17:43 By : kenessar
 


 

No. 14



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



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


ขอบคุณครับผมจะลองทำอีกทีครับ ถ้าติดตรงไหนเดียวมารบกวนใหม่นะครับ พี่
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-01-14 07:55:18 By : XmatinX
 


 

No. 15



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



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

หลับดึกตื่นเช้านะครับ 555
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-01-14 09:07:31 By : kenessar
 


 

No. 16



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



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


ทำโปรเจค อะ ครับ เลยต้อง หาความรู้เยอะๆๆ ขอบคุณอีกครั้งสำหรับแนว ทาง ครับพี่ๆ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-01-14 09:53:36 By : XmatinX
 


 

No. 17



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



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


ขอบคุณพี่ ~ Kenessar ~ ทำได้แล้ว ครับ หุหุ ตก เครื่องหมายไปตัวเดียว หุหุหุ
เดียวถ้าเจอปัญหาอะไรแล้วทำไม่ผ่านผมจะมาถามอีกนะครับ อิอิอิ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-01-14 22:54:26 By : XmatinX
 


 

No. 18



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



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


แล้วถ้าผมต้องการลบ ผมต้องทำคล้ายๆกัน การบันทึก ปะ ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-01-14 23:51:51 By : XmatinX
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ขอถามเรื่องการบันทึกข้อมูลลง database 2ตารางทำอย่างไรหรอครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 01
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 อัตราราคา คลิกที่นี่