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 > รบกวนท่านผู้รู้ดู CODE นี้ให้ด้วยครับ เรื่องการค้นหาข้อมูล โดยใช้ความสัมพันธ์กันสี่ตารางครับ ติดบรรทัดสุดท้ายจริงๆครับ



 

รบกวนท่านผู้รู้ดู CODE นี้ให้ด้วยครับ เรื่องการค้นหาข้อมูล โดยใช้ความสัมพันธ์กันสี่ตารางครับ ติดบรรทัดสุดท้ายจริงๆครับ

 



Topic : 110075



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



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



Code (PHP)
$sql = 'SELECT register.StuID, register.SubjectID, register.Semester, register.date_register, register.reg_time, student.Stu_ID, student.Stu_Name, student.Stu_LName, student.Stu_Clase, student.Stu_Room, student.Stu_User, student.Stu_Password, subject.SubjectID, subject.SubjectName, subject.TeacherID, subject.SubjectUnit, subject.Semester, teacher.TeacherID, teacher.TeacherName, teacher.TeacherLName'
        . ' FROM student INNER JOIN ((register INNER JOIN subject ON register.SubjectID = subject.SubjectID) INNER JOIN teacher ON subject.TeacherID = teacher.TeacherID) ON student.Stu_ID = register.StuID'
        . ' WHERE (((register.SubjectID) = "ง11111"));';



เนื่องจากผมต้องการดึงข้อมูลจาก สี่ ตารางออกมา โดยให้หาจาก WHERE (((register.SubjectID) = "ง11111"));';ได้ แต่ ให้หา WHERE (((register.SubjectID) = '$TextSubjectID'));'; กลับ error ครับ ผมติดตรงบรรทัดสุดท้ายครับ รบกวนด้วนนะครับ (ทุกตารางมีข้อมูลที่มีความสัมพันธ์กันหมดครับ)



Tag : PHP, MySQL









ประวัติการแก้ไข
2014-07-21 00:24:29
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2014-07-21 00:22:46 By : wittayakorn1 View : 910 Reply : 9
 

 

No. 1



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



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

Code (PHP)
(((register.SubjectID) = ' "+ $TextSubjectID +" '));'; 







แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-21 00:44:00 By : Zakariya
 


 

No. 2



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



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


จะอธิบายยังไงดี???
การหลักการใช้งานซิงเกิลโค้ด(') กับดับเบิลโค้ด(") มันมีหลักแตกต่างกันนิดหน่อย คือ

ซิงเกิลโค้ด(') คือ ทุกอย่างที่อยู่ในเครื่องหมายซิงเกิลโค้ด จะไม่มีการประมวลผลใดๆอีก จะเป็นสตริงเท่านั้น
ดับเบิลโค้ด(") คือ ทุกอย่างที่อยู่ในเครื่องหมายดับเบิลโค้ด จะมีการเช็คว่ามีตัวแปรหรือไม่ และจะประมวลผลหาค่าตัวแปรเพื่อใช้งานต่อ หรือหากไม่มีตัวแปรก็เป็นสตริงธรรมดา

มาดูตัวอย่าง
Code (PHP)
$test = 'Hello!';
echo 'Values = $test';
echo '<br>';
echo "Values = $test";

จากตัวอย่างจะได้ผลลัพธ์ดังนี้
4545

ดังนั้นปกติแล้วในคำสั่ง SQL ส่วนใหญ่จะไม่มีค่าตายตัว ควรจะใช้ดับเบิลโค้ด(") ดีกว่าครับ

Code (PHP)
$sql = "	SELECT 
				register.StuID
				, register.SubjectID
				, register.Semester
				, register.date_register
				, register.reg_time
				, student.Stu_ID
				, student.Stu_Name
				, student.Stu_LName
				, student.Stu_Clase
				, student.Stu_Room
				, student.Stu_User
				, student.Stu_Password
				, subject.SubjectID
				, subject.SubjectName
				, subject.TeacherID
				, subject.SubjectUnit
				, subject.Semester
				, teacher.TeacherID
				, teacher.TeacherName
				, teacher.TeacherLName 
			FROM 
				student 
			INNER JOIN 
				((register INNER JOIN subject ON register.SubjectID = subject.SubjectID) INNER JOIN teacher ON subject.TeacherID = teacher.TeacherID) 
			ON 
				student.Stu_ID = register.StuID'
			WHERE 
				((register.SubjectID) ='$TextSubjectID')";

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

 

No. 3



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



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

ตอบความคิดเห็นที่ : 2 เขียนโดย : arm8957 เมื่อวันที่ 2014-07-21 09:22:33
รายละเอียดของการตอบ ::
ยังไม่ได้ครับรบกวนดูให้หมดได้ไหมครับ error ที่บรรทัด 108 ครับ
Code (PHP)
<?php
session_start();
$ses_userid =$_SESSION[ses_userid];
$ses_username = $_SESSION[ses_username];
if($ses_userid <> session_id() or  $ses_username ==""){
echo " No Login";
echo "<meta http-equiv='refresh' content='2;URL=index.php' />";
}	else {
?>
<script>
function conf_del()
{
if(confirm("จะลบจริง ๆ เหรอจ๊ะ?"))
{
alert("ลบแล้วเด้อ");
return;
}
alert("ยังไม่ได้ลบ");
return;
}
</script>
	


<?
include("include/class.mysqldb.php");

include "include/dbconfig.php";
?>
<html>
<head>
<meta charset="windows-874">
<title>รายงานการลงทะเบียน</title>
<style type="text/css">
a:hover {
	color: #F9060A;
}
</style>
</head>
<body>
<table width="616" border="0">
  <tr>
    <th bgcolor="#868181" style="text-align: left; color: #F8F2F2;" scope="col">ตารางข้อมูลวิชา (รายงานการลงทะเบียนของนักเรียนตามรายวิชา)</th>
  </tr>
</table>
<a href="Register_AdminReport.php">หน้าหลัก</a><br>
<hr align="left" width="100%">
<form name="form2"action="Register_AdminReport.php" method="post">
  <label for="SubjectID">Text Field:</label>
  <input name="SubjectID" type="text" id="SubjectID" value="<?echo"$SubjectID";?>">
  <input name="submit" type="submit" id="submit" formaction="Register_AdminReport2.php" value="Submit">
</form>
<span style="text-align: right"></span>
<table width="100%" border="0" align="center" cellspacing="0">
  <tr>
  
      <td width="8%" bgcolor="#C3BCBC">รหัสวิชา</td>
      <td width="16%" bgcolor="#C3BCBC">ชื่อวิชา</td>
      <td width="22%" bgcolor="#C3BCBC">ครูที่ปรึกษาคนที่1</td>
    <td width="24%" align="left" bgcolor="#C3BCBC">นักเรียนที่สมัคร</td>
       <td width="7%" align="center" bgcolor="#C3BCBC">ระดับชั้น</td>
      <td width="10%" align="center" bgcolor="#C3BCBC">วัน - เวลา</td>
      <td width="13%" align="center" bgcolor="#C3BCBC">ภาคเรียน</td>
    
  </tr>
  <?
//include("config.inc.php");
//$sql="select * from subject";
//$sql="select*from subject  where Semester like '%$SubjectID%'";
//$sql="SELECT DISTINCT subject.num, subject.SubjectID, subject.SubjectName, subject.SubjectUnit, subject.Semester, subject.Teacher1, subject.Teacher2, subject.Teacher3, subject.TeacherID, teacher.TeacherName, teacher.TeacherLName FROM teacher INNER JOIN subject ON teacher.TeacherID = subject.TeacherID  where Semester like '%$Semester2%' AND SubjectID like '%$SubjectID%' AND SubjectName like '%$SubjectName%' AND subject.TeacherID like '%$TeacherID%' ";
//$sql = 'SELECT register.StuID, register.SubjectID, register.Semester, register.date_register, register.reg_time, student.Stu_ID, student.Stu_Name, student.Stu_LName, student.Stu_Clase, student.Stu_Room, student.Stu_User, student.Stu_Password, subject.SubjectID, subject.SubjectName, subject.TeacherID, subject.SubjectUnit, subject.Semester, teacher.TeacherID, teacher.TeacherName, teacher.TeacherLName'
//        . ' FROM student INNER JOIN ((register INNER JOIN subject ON register.SubjectID = subject.SubjectID) INNER JOIN teacher ON subject.TeacherID = teacher.TeacherID) ON student.Stu_ID = register.StuID'
  //      . ' WHERE (((register.SubjectID) = "ง11111"));';
	// WHERE (((register.SubjectID)=\'ง11111\'))'; (((register.SubjectID) like \'%$SubjectID%'))';  (((register.SubjectID)="$SubjectID"));';
	//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
	$sql = "SELECT 
				register.StuID
				, register.SubjectID
				, register.Semester
				, register.date_register
				, register.reg_time
				, student.Stu_ID
				, student.Stu_Name
				, student.Stu_LName
				, student.Stu_Clase
				, student.Stu_Room
				, student.Stu_User
				, student.Stu_Password
				, subject.SubjectID
				, subject.SubjectName
				, subject.TeacherID
				, subject.SubjectUnit
				, subject.Semester
				, teacher.TeacherID
				, teacher.TeacherName
				, teacher.TeacherLName 
			FROM 
				student 
			INNER JOIN 
				((register INNER JOIN subject ON register.SubjectID = subject.SubjectID) INNER JOIN teacher ON subject.TeacherID = teacher.TeacherID) 
			ON 
				student.Stu_ID = register.StuID'
			WHERE 
				((register.SubjectID) ='$SubjectID')";
	//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
$result=mysql_query($sql);
$i = 0;
while($rs=mysql_fetch_array($result))
{
$i++;
if($i%2==0)
{
$bg = "#CCCCCC";
}
else
{
$bg = "#FFFFFF";
}
//นับจำนวนตารางลงทะเบียน=============================
//$strsql="select * from  register where SubjectID ='$rs[SubjectID]'";
//$result2=mysql_query($strsql);
//$num_reg=mysql_num_rows($result2); //นับ 
//===============================================
echo"<tr  bgcolor=$bg>";
    echo"<td>$rs[SubjectID]</td>";
   echo"<td>$rs[SubjectName]</td>";
    echo"<td>$rs[TeacherID]- $rs[TeacherName] $rs[TeacherLName]</td>";
	 echo"<td>$rs[Stu_ID]- $rs[Stu_Name] $rs[Stu_LName] </td>";
   echo"<td  align=center>$rs[Stu_Clase]/$rs[Stu_Room]</td>";
    echo"<td  align=center>$rs[date_register] - $rs[reg_time]</td>";
   //echo"<td>TEST</td>"; //นับจำนวนที่สมัคร
  // echo"<td align=center>$num_reg</td>"; //นับจำนวนที่สมัคร
    echo"<td  align=center>$rs[Semester]</td>";
	    echo"</tr>";
 }

echo"</tr>";
 ?>
</table>
<br>
</body>
</html>
<?php
}
?>




ประวัติการแก้ไข
2014-07-21 10:17:11
2014-07-21 10:20:06
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-21 10:14:32 By : wittayakorn1
 


 

No. 4



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



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


เสริมนิดนึง ครับ

Statement ของทุก Database Server ใช้ single quote ครอบ string ครับ ไม่ใช้ double quote

สำหรับ php ใช้ single quote ครอบ string ที่เป็น constant คือเจาะจงตามที่เห็น
แต่ถ้าถ้า double quote ครอบ นั้น อักษรพิเศษ ตัวแปรสามารถ แสดงค่าได้ครับ

แต่สำหรับ single quote ยกเว้น \' และ \" ไว้ในกรณีพิเศษ เป็นการให้แสดง ทัี้ง สอง quote ใน string ได้


Code (PHP)
$string ='TEST';
echo '<pre>$string='.$string.'<br />\n'."$string=".$string."\n".'DATATEST</pre>';



Code (PHP)
. ' WHERE (((register.SubjectID) = "ง11111"));';
//แก้เป็น
. ' WHERE ((register.SubjectID = \'ง11111\'));';

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-21 10:19:53 By : Chaidhanan
 


 

No. 5



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



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


105 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
106.$result=mysql_query($sql);


มีเออเร่อร์อะไรไหมครับ ที่บันทัด 106
ถ้ามีเออเรอร์ แก้ตามนี้ครับ แล้วเอาเออเร่อร์มาดูครับ
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
106. $result=mysql_query($sql) or die($sql."<br/>\n".mysql_error());
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-21 10:24:39 By : Chaidhanan
 


 

No. 6



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



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

ตอบความคิดเห็นที่ : 4 เขียนโดย : Chaidhanan เมื่อวันที่ 2014-07-21 10:19:53
รายละเอียดของการตอบ ::
ขอบคุณมากครับ แต่ ผมต้องการที่จะแทนค่าตัวแปล $SubjectID แทน ง11111 ต้องทำยังไงครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-21 10:27:32 By : wittayakorn1
 


 

No. 7



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



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

ตอบความคิดเห็นที่ : 5 เขียนโดย : Chaidhanan เมื่อวันที่ 2014-07-21 10:24:39
รายละเอียดของการตอบ ::
Error ตามนี้ครับ ท่าน
SELECT register.StuID , register.SubjectID , register.Semester , register.date_register , register.reg_time , student.Stu_ID , student.Stu_Name , student.Stu_LName , student.Stu_Clase , student.Stu_Room , student.Stu_User , student.Stu_Password , subject.SubjectID , subject.SubjectName , subject.TeacherID , subject.SubjectUnit , subject.Semester , teacher.TeacherID , teacher.TeacherName , teacher.TeacherLName FROM student INNER JOIN ((register INNER JOIN subject ON register.SubjectID = subject.SubjectID) INNER JOIN teacher ON subject.TeacherID = teacher.TeacherID) ON student.Stu_ID = register.StuID' WHERE ((register.SubjectID) ='ช33333')
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' WHERE ((register.SubjectID) ='ช33333')' at line 27

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-21 10:30:56 By : wittayakorn1
 


 

No. 8



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



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


เห็นละ ซิงเกิลโค้ดเกินมาตัวนึง ขออภัย
Code (PHP)
$sql = "	SELECT 
				register.StuID
				, register.SubjectID
				, register.Semester
				, register.date_register
				, register.reg_time
				, student.Stu_ID
				, student.Stu_Name
				, student.Stu_LName
				, student.Stu_Clase
				, student.Stu_Room
				, student.Stu_User
				, student.Stu_Password
				, subject.SubjectID
				, subject.SubjectName
				, subject.TeacherID
				, subject.SubjectUnit
				, subject.Semester
				, teacher.TeacherID
				, teacher.TeacherName
				, teacher.TeacherLName 
			FROM 
				student 
			INNER JOIN 
				((register INNER JOIN subject ON register.SubjectID = subject.SubjectID) INNER JOIN teacher ON subject.TeacherID = teacher.TeacherID) 
			ON 
				student.Stu_ID = register.StuID
			WHERE 
				((register.SubjectID) ='$TextSubjectID')";

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-21 10:49:52 By : arm8957
 


 

No. 9



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



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

ตอบความคิดเห็นที่ : 8 เขียนโดย : arm8957 เมื่อวันที่ 2014-07-21 10:49:52
รายละเอียดของการตอบ ::
ขอบคุณมากครับ ได้แล้ว
ขอบคุณทุกๆท่านที่กรุณาตอบนะครับ

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

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : รบกวนท่านผู้รู้ดู CODE นี้ให้ด้วยครับ เรื่องการค้นหาข้อมูล โดยใช้ความสัมพันธ์กันสี่ตารางครับ ติดบรรทัดสุดท้ายจริงๆครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 00
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 อัตราราคา คลิกที่นี่