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

HOME > PHP > PHP Forum > ตารางที่มีความสัมพันธ์กัน ใช้ยังไงหรอคะ อันที่จริงเคยถามแล้ว แต่ยังไม่มีคนตอบให้ชัดเจน



 

ตารางที่มีความสัมพันธ์กัน ใช้ยังไงหรอคะ อันที่จริงเคยถามแล้ว แต่ยังไม่มีคนตอบให้ชัดเจน

 



Topic : 035368



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



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




อันที่จริงเคยถามแล้ว แต่ยังไม่มีคนตอบให้ชัดเจน

คือมีตารางสองตาราง โดยมีตาราง

1.ตาราง Locationtype
ฟิลด์ loctype_id, loctype_name
2.ตาราง Location
ฟิลด์ locCode, loctype_id, loctype_name, locName, locLatlng, locIcon, locAddress...++

ที่ต้องการก็คือ เดิมทีหนูทำเป็นตารางเดียวกัน ก็สามารถใช้ได้ปกติ เพราะเขียนไม่ยากนัก แต่มาปรับปรุงออกแบบ
ฐานข้อมูลใหม่ เพื่อง่ายต่อการจัดการ จึงแยกตารางประเภทสถานที่ออก เพื่อให้เป็นข้อมูลหลัก โดยข้อมูลหลักนี้
จะมีความสัมพันธ์กับข้อมูลสถานที่ Location โดยในฟอร์มรับข้อมูลนั้น จะมี listbox ไว้เลือกข้อมูลประเภทสถานที่
และข้อมูลอื่นๆของตาราง location

เลือกประเภทสถานที่ listbox
ชื่อสถานที่ textbox
ไอคอน textbox
ที่อยู่ textbox
เลือกตำแหน่ง div map

อันนี้เป็นโค้ดเดิมนะคะ(PHP)
		if(isset($_REQUEST["del_loc"])){ 
		$sql_loc  = "DELETE FROM location WHERE  locCode=".$_REQUEST["locCode"]." and admin_id=".$_SESSION["admin_id"]; 
		mysql_query($sql_loc)or  die(mysql_error());
		?>
		
<?php
	}
	if(isset($_POST["add_loc"]))
	{
		$result_loc = mysql_query( "SELECT * FROM location where locName='".$_POST["locName"]."'");
		if(mysql_num_rows($result_loc)<=0){
		$locIcon = uploadIcon($_FILES['locIcon']['name'],$_FILES['locIcon']['tmp_name'],$_FILES['locIcon']['size'],$_FILES['locIcon']['type']);
		$locImage = uploadImage($_FILES['locImage']['name'],$_FILES['locImage']['tmp_name'],$_FILES['locImage']['size'],$_FILES['locImage']['type']);

		$latlng = str_replace("(","",$_POST["locLatLng"]);
		$latlng = str_replace(")","",$latlng);

		$sql = "INSERT INTO location(admin_id ,locIcon,locImage,locLatLng,locName,locAddress,locTel,loc_bus,locDetail,locType) VALUES('".$_SESSION["admin_id"]."','".$locIcon."','".$locImage."','".$latlng."','".$_POST["locName"]."','".$_POST["locAddress"]."','".$_POST["locTel"]."','".$_POST["loc_bus"]."','".$_POST["locDetail"]."','".$_POST["locType"]."')";
		mysql_query($sql)or  die(mysql_error());
		?>
			<script type="text/javascript">
				$.prompt('เพิ่มตำแหน่งสำเร็จ');
			</script>
		<?php
		}else
			{
		?>
			<script type="text/javascript">
				$.prompt('กรุณาตรวจสอบชื่อตำแหน่งใหม่');
			</script>
		<?php
			}
	}
	
	if(isset($_POST["edit_loc"]))
	{
		$editname = "";	
		if($_POST["locName"]!=$_POST["loc_name_old"])
		{
			$result_loc = mysql_query( "SELECT * FROM location where locName='".$_POST["locName"]."' ");
			if(mysql_num_rows($result_loc)<=0)
			{
				$editname .= " locName='".$_POST["locName"]."',";
			}else
				{
		?>
				<script language="javascript">
					alert("ชื่อสถานที่ซ้ำ กรุณาป้อนชื่อใหม่");
				</script>
				<?php
				}
		}

		$locIcon = uploadIcon($_FILES['locIcon']['name'],$_FILES['locIcon']['tmp_name'],$_FILES['locIcon']['size'],$_FILES['locIcon']['type']);
		$locImage = uploadImage($_FILES['locImage']['name'],$_FILES['locImage']['tmp_name'],$_FILES['locImage']['size'],$_FILES['locImage']['type']);

		if($locIcon!=""){
			$editname .= "  locIcon='".$locIcon."',";
		}	
		if($locImage!=""){
			$editname .= "  locImage='".$locImage."',";
		}	
		$latlng = str_replace("(","",$_POST["locLatLng"]);
		$latlng = str_replace(")","",$latlng);
				
		$sql = "UPDATE location SET ".$editname." locLatLng='".$latlng."',locName='".$_POST["locName"]."',locAddress='".$_POST["locAddress"]."', locTel='".$_POST["locTel"]."',loc_bus='".$_POST["loc_bus"]."',locDetail='".$_POST["locDetail"]."',locType='".$_POST["locType"]."' WHERE locCode=".$_POST["locCode"].$userupdate;
		mysql_query($sql)or  die(mysql_error());
		?>
						<script language="javascript">
										alert("แก้ไขข้อมูลสำเร็จ");
										window.location = "?";
						</script>
		<?php	
}
?>


ในส่วนนี้เป็นโค้ดเดิมนะคะ โดยจะเปลี่ยน locType ที่อยู่ในตาราง location เปลี่ยนเป็น loctype_name ซึ่งเปลี่ยนตาราง
เป็นตาราง locationtype แทนนะคะ ช่วยหน่อยนะ ลองมาหลายวันแล้ว ตอนนี้โปรเจคใกล้สำเร็จแล้ว เหลือเพียงแค่ปรับปรุงให้ดียิ่งขึ้นคะ

ขอเป็นโค้ดตัวอย่างก็ได้นะ ที่ดูแล้วเข้าใจง่าย



Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2009-12-06 17:36:34 By : KhemTiD View : 1083 Reply : 8
 

 

No. 1



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



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


เงียบจัง ม้ายมีใครช่วยเลย






Date : 2009-12-06 19:29:45 By : KhemTiD
 


 

No. 2



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

สมาชิกที่ใส่เสื้อไทยครีเอท

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

ต้องการประมาณนี้เปล่าครับตัวอย่าง select

$sql="
SELECT loc.locCode, loc.loctype_id, loc.loctype_name, loc.locName,type.loctype_name
FROM Locationtype as type
LEFT JOIN location as loc
ON type.loctype_id=loc.loctype_id
WHERE locName='$_POST[locName]'
ORDER BY loc.loctype_id ASC
";
Date : 2009-12-06 21:16:46 By : xbeginner01
 

 

No. 3



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



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


คืออยากได้ทั้ง selcet insert update

ถ้าทำแบบตารางเดียว หนูทำได้ แต่พอแยกตาราง หนูทำไม่เป็นคะ

หาข้อมูล ก็ไม่ค่อยเข้าใจรูปแบบการเขียน ว่าต้องแก้ส่วนไหนจากของเดิมบ้าง
Date : 2009-12-06 21:40:36 By : KhemTiD
 


 

No. 4



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

สมาชิกที่ใส่เสื้อไทยครีเอท

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

ข้างบนไงครับ 2 ตารางมา join กันครับ

ถ้าเขียนแบบถึกๆ
Code (PHP)
$result_loc = mysql_query( "SELECT * FROM location where locName='".$_POST["locName"]."' ");
while($res=mysql_fetch_array($result_loc)){
  $result_loctype=mysql_query("select * from Locationtype  where loctype_id='".$res[loctype_id]." ' ");
  $res2 =mysql_fetch_array($result_loctype);
   echo "LOCTYPENAME ".$res2[loctype_name];
    
}

Date : 2009-12-06 22:36:38 By : xbeginner01
 


 

No. 5



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



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


ยังไม่ได้นะคะ เมื่อเพิ่มข้อมูลแล้ว ข้อมูลในส่วนของ ตาราง locationtype ไม่มาคะ
Date : 2009-12-07 03:19:29 By : KhemTiD
 


 

No. 6



โพสกระทู้ ( 11,835 )
บทความ ( 10 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

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


ผมว่า export database มาแปะให้แม็คดีกว่านะ แม็คจะได้ช่วยเหลือง่ายๆ ไม่ต้องจินตนาการมาก
Date : 2009-12-07 04:24:59 By : plakrim
 


 

No. 7



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



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


admin
ฟิลด์ ชนิด
admin_id int(11)
admin_name varchar(100)
admin_userName varchar(100)
admin_password varchar(50)
admin_address text
admin_tel varchar(12)
admin_position varchar(100)
admin_email varchar(50)
admin_active int(11)

location
ฟิลด์ ชนิด
locCode int(12)
admin_id int(11)
loctype_id int(10)
loctype_name varchar(50)
locIcon text
locImage text
locLatLng varchar(50)
locName varchar(50)
locAddress text
locTel varchar(20)
locDetail text

locationtype
ฟิลด์ ชนิด
loctype_id int(10)
loctype_name varchar(50)

นี้เป็นตารางและฟิลด์นะคะ ตอนแรกไม่มีตาราง locationtype คะจะรวมกับ location เลย ตอนหลังหนูออกแบบตารางใหม่

เลยต้องการแยกรายละเอียดสถานที่กับประเภทสถานที่ออกจากกัน อันที่จริงยังมีที่จะแก้อีกหลายตารางเลย แต่ขอเพียง

ยกตัวอย่างฟอร์มนี้สักอัน ก็โอเคแล้วหละคะ อันอื่นค่อยไปหัดทำเอง

เสริมอีกนิดนะ จากโค้ดเดิมที่หนูใช้ listbox โดยการป้อนข้อมูลรายการเข้าไป หนูเปลี่ยนใหม่เป็นการดึงจากตารางข้อมูลหลักของ locationtype

Code (PHP)
<tr><td align="right" width="30%"><span class="style6">ประเภทสถานที่</span><td><select name="locSelect" id="startpoint">

<?php
	$q="select * from locationtype ";
	$qr=mysql_query($q);
	while($rs=mysql_fetch_array($qr)){
?>
  <option value="<?=$rs['loctype_id']?>"><?=$rs['loctype_name']?></option>
<?php } ?>	
</select></td></td></tr>


ในฟอร์มก็ให้เลือกประเภทสถานที่ นอกนั้นก็เหมือนเดิมกับในโค้ด แล้วตอนบันทึก แก้ไข ให้ข้อมูลบันทึกสัมพันธ์กับตารางข้อมูลหลัก locationtype ด้วย ประมาณนี้นะคะ
Date : 2009-12-07 17:06:48 By : KhemTiD
 


 

No. 8



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



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



Date : 2009-12-08 10:28:15 By : KhemTiD
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ตารางที่มีความสัมพันธ์กัน ใช้ยังไงหรอคะ อันที่จริงเคยถามแล้ว แต่ยังไม่มีคนตอบให้ชัดเจน
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 05
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2025 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่