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

HOME > PHP > PHP Forum > สอบถามปัญหาในการดึงข้อมูลจากฐานข้อมูลซึ่งมีการ Join ตารางกัน



 

สอบถามปัญหาในการดึงข้อมูลจากฐานข้อมูลซึ่งมีการ Join ตารางกัน

 



Topic : 113263



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



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




ผมมีปัญหาในการดึงข้อมูลครับเกี่ยวกับการ join ซึ่งผมได้ join ตารางกันแล้วมีทั้งหมด 6 ตาราง แต่ในที่นี้มีปัญหาในการดึงข้อมูลที่มีความสัมพันธ์กัน อย่างเช่นในรูปครับ
test
ก็คือ ในตาราง Thesis จะมี Thesis_ID เป็น Pk
และจะมีความสัมพนธ์กันกับตาราง Student ซึ่งมี Student_ID เป็น PK และมี Thesis_ID เป็น FK ปัญหาอยู่ตรงที่ผม select ข้อมูลออกมาแต่ได้แค่ฟิวด์เดียวใน ตาราง Student อยากได้ ข้อมูลตาราง Student มาแสดง ทั้ง3 ชื่ออะครับ

อันนี้โค้ดผมครับ detail_thesis
<?php

		session_start();
		require_once("config.php");
	
		
		//ini_set('display_errors', 1);
		//error_reporting(~0);
		
		
		
		
		if(isset($_GET['Thesis_ID'])){ //ส่วนนี้รับค่าตัวแปลมาจากการ form search
			
			$strThesis_ID = $_GET['Thesis_ID'];
		}
								
						$sql = "SELECT * FROM 
								(thesis INNER JOIN student 
								ON thesis.Thesis_ID = student.Thesis_ID) 
								WHERE thesis.Thesis_ID = '".$strThesis_ID."'"; 

	$query = mysqli_query($conn,$sql) or die ( $sql . "<br>" . mysqli_error($conn) );
	
	
	$result = mysqli_fetch_assoc($query);

?>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>

<link href="CSS/Css_mainframe.css" rel="stylesheet" type="text/css">
</head>

<body>
<div class="detail" align="center">
<table width="801" height="217" border="1" cellpadding="1" cellspacing="1">
  <tr>
    <td colspan="2"><div align="center">รายละเอียดอย่างย่อวิทยานิพนธ์</div></td>
  </tr>
  <tr>
    <td width="170"><div align="center">เลขที่วิทยานิพนธ์</div></td>
    <td width="618"><?php echo $result['Thesis_ID']; ?></td>
  </tr>
  <tr>
    <td><div align="center">ชื่อวิทยานิพนธ์</div></td>
    <td><?php echo $result['Thesis_name']; ?></td>
  </tr>
  <tr>
    <td><div align="center">ประจำปีการศึกษา</div></td>
    <td><?php echo $result['Thesis_year']; ?></td>
  </tr>
  <tr>
    <td><div align="center">ภาควิชา</div></td>
    <td><?php echo $result['Department_name']; ?></td>
  </tr>
  <tr>
    <td><div align="center">ผู้จัดทำ</div></td>
    <td><?php echo $result['Student_name']; ?></td>
  </tr>
  <tr>
    <td><div align="center">อาจารย์ที่ปรึกษา</div></td>
    <td><?php echo $result['Teacher_name'];?></td>
  </tr>
  <tr>
    <td><div align="center">กรรมการ</div></td>
    <td><?php  echo $result['Teacher_name']; ?>
   </td>
  </tr>
  <tr>
    <td><div align="center">บทคัดย่อ</div></td>
    <td><?php echo $result["Abstact"]; ?></td>
  </tr>
  <tr>
    <td><div align="center">คำสำคัญ</div></td>
    <td><?php echo $result["Thesis_word"]; ?></td>
  </tr>
  <tr>
    <td><div align="center">ดาวน์โหลด</div></td>
    <td><?php if(!isset($_SESSION['User_ID']))
	{
		echo "<a href=\"frm_login.php\">ไม่สามารถดาวน์โหลดได้กรุณาเข้าสู่ระบบ</a>";
		exit();
	}else
	{
	?>111111111111111
    </td>
  <?php 
  }?>
  </tr>
  
</table>
<?php
	
mysqli_close($conn);

?>

</div>
</body>
</html>




Tag : PHP, MySQL







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2014-12-16 05:11:10 By : tairatza View : 864 Reply : 6
 

 

No. 1



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



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


ก็แค่วนลูป ก็น่าจะได้แล้วนิครับ
Code (PHP)
$sql = "SELECT thesis.*, student.* FROM thesis INNER JOIN student 
								ON thesis.Thesis_ID = student.Thesis_ID 
								WHERE thesis.Thesis_ID = '".$strThesis_ID."'"; 

	$query = mysqli_query($conn,$sql) or die ( $sql . "<br>" . mysqli_error($conn) );
	
	while($result = mysqli_fetch_assoc($query)){
        print_r($result);
}







แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-12-16 08:47:02 By : arm8957
 


 

No. 2



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



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


ตอบความคิดเห็นที่ : 1 เขียนโดย : arm8957 เมื่อวันที่ 2014-12-16 08:47:02
รายละเอียดของการตอบ ::
ผมลองวนแล้วจะได้แบบนี้ครับ และก็ลอง print_r($result); ดู

Array ( [Thesis_ID] => TS-2551 [Student_ID] => 5111111)
Array ( [Thesis_ID] => TS-2551 [Student_ID] => 522222)
Array ( [Thesis_ID] => TS-2551 [Student_ID] => 533333)

แล้วก็ไป echo $result['Student_name'];

จะได้ แค่ 5333333 คือค่าสุดท้ายอะครับ

ที่ผมทำที่อยากได้คือ Thesis_ID = TS-2551 แสดง row เดียว

กับ student_ID = 5111111,522222,5333333 แสดง อยู่ใน row เดียวกัน หรือ 3 row ก็ได้อะครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-12-16 09:02:42 By : tairatza
 

 

No. 3



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



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


ถ้าเอาตามโครงสร้างเดิมก็
Code (PHP)
$sql = "SELECT thesis.*, student.* FROM thesis INNER JOIN student 
								ON thesis.Thesis_ID = student.Thesis_ID 
								WHERE thesis.Thesis_ID = '".$strThesis_ID."'"; 

	$query = mysqli_query($conn,$sql) or die ( $sql . "<br>" . mysqli_error($conn) );
	
	while($result = mysqli_fetch_assoc($query)){
        $student_ID[] = $result['student_ID'];
}

echo $strThesis_ID."<br>";
echo implode(', ', $student_ID);

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-12-16 09:11:21 By : arm8957
 


 

No. 4



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



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


ก็ยังไม่ได้อะครับ ถ้าเปลี่ยนโครงสร้างจะเป็นแบบไหนหรอครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-12-16 09:20:05 By : tairatza
 


 

No. 5



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



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


ตอบความคิดเห็นที่ : 3 เขียนโดย : arm8957 เมื่อวันที่ 2014-12-16 09:11:21
รายละเอียดของการตอบ ::
ออ ได้ละครับ ผมต้องใส่คีย์เวิด หน้า SELCET DISTINCT

ในคำสั่ง SQL ผมก็ไปเชื่อมอีกตารางหนึ่ง คือ ตาราง teacher

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-12-16 09:26:37 By : tairatza
 


 

No. 6



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



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


แล้วถ้า ในกรณีที่ มีการ join ตารางกัน 2 ตารางขึ้นไปอะครับ
อย่างเช่น ตาราง Thesis join Student และ Thesis join teacher

ซึ่งข้อมูลออกมาก็จะซ้ำกันอะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-12-16 09:36:15 By : tairatza
 

   

ค้นหาข้อมูล


   
 

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