ดูให้หน่อยครับ ทำไม select 3 ตารางไม่ได้ครับ งง ทำตามตัวอย่่างในเว็บข้างล้างแล้วไม่ได้
ตารางมีความสัมพันธ์กันไหม หรือแค่ต้องการจะเรียกข้อมูลของสามตารางออกมาทั้งหมดโดยไม่มีเงือนไขพิเศษน่ะ
ถ้าแค่ต้องการจะเรียกข้อมูลของสามตารางออกมาเฉยๆ โดยไม่มีเงือนไขพิเศษก็แบบนี้
Code (PHP)
$query=mysql_query(" select ตาราง1.*, ตาราง2.*, ตาราง3.* from ตาราง1, ตาราง2, ตาราง3 ");
แบบนี้ข้อมูลของสามตารางก็จะออกมาทั้งหมด แต่ถ้ามีเงื่อนไขพิเศษก็ where มันเข้าไป เช่น
Code (PHP)
where ตาราง1.ไอดีตาราง1 = ตาราง2.ไอดีตาราง and ตาราง2.ไอดีตาราง2 = ตาราง3.ไอดีตาราง and ตาราง1.ไอดีตาราง1 = ' ค่าที่รับมาเพื่อใช้เรียกข้อมูล '
Date :
2011-11-10 21:45:49
By :
ozma
ผมทำตามพี่แล้วก็ไม่ได้อยู่ดี
ไม่รู้จะทำไงแล้วครับ
Code (PHP)
$strSQL = "SELECT a.std_id, a.name, b.sub_name, b.Grade_vocational";
$strSQL .= ", c.sub_name, c.Grade_bachelor FROM tbl_student a";
$strSQL .= "LEFT JOIN tbl_vocational b ON a.std_id=b.std_id and a.id_add=b.id_add ";
$strSQL .= "LEFT JOIN tbl_bachelor c ON b.std_id=c.std_id and b.id_add=c.id_add";
$strSQL .="WHERE a.std_id='".$_POST["tstd_id"]."' ORDER BY std_id DESC";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
ประวัติการแก้ไข 2011-11-11 10:26:03 2011-11-11 10:27:14 2011-11-11 10:31:46
Date :
2011-11-11 10:25:03
By :
Testprogram
Code (PHP)
$strSQL = "SELECT a.std_id, a.name, b.sub_name, b.Grade_vocational";
$strSQL .= ", c.sub_name, c.Grade_bachelor FROM tbl_student as a";
$strSQL .= "LEFT JOIN tbl_vocational as b ON a.std_id=b.std_id and a.id_add=b.id_add ";
$strSQL .= "LEFT JOIN tbl_bachelor as c ON b.std_id=c.ste_id and b.id_add=c.id_add";
$strSQL .="WHERE a.std_id='".$_POST["tstd_id"]."' ORDER BY std_id DESC";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
หรือเป็นเพราะลืมใส่ AS หรือเปล่าค่ะ tbl_student as a , tbl_vocational as b, tbl_bachelor as c
ลองเอาไปtestใน sql ของ phpmydamin ดูก่อนไหมค่ะว่าค่าออกหรือเปล่า
Date :
2011-11-11 10:32:04
By :
LuckyStar
มัน error แบบนี้
Error Query [SELECT a.std_id, a.name, b.sub_name, b.Grade_vocational , c.sub_name, c.Grade_bachelor FROM tbl_student as aLEFT JOIN tbl_vocational as b ON a.std_id=b.std_id and a.id_add=b.id_add LEFT JOIN tbl_bachelor as c ON b.std_id=c.std_id and b.id_add=c.id_addWHERE a.std_id='6' ORDER BY std_id DESC]
Date :
2011-11-11 10:35:36
By :
Testprogram
Error Query [SELECT a.std_id, a.name, b.sub_name, b.Grade_vocational , c.sub_name, c.Grade_bachelor FROM tbl_student as aLEFT JOIN tbl_vocational as b ON a.std_id=b.std_id and a.id_add=b.id_add LEFT JOIN tbl_bachelor as c ON b.std_id=c.std_id and b.id_add=c.id_addWHERE a.std_id='6' ORDER BY std_id DESC]
ระหว่างคำสั่ง aLEFT JOIN, c.id_addWHERE อย่าลืมเว้นวรรคด้วยนะเด๋วมานงง
แล้วไป test ใน sql ของ phpmyadmin ขึ้นข้อมูลผลลัพย์ไหม
Date :
2011-11-11 10:52:18
By :
LuckyStar
ขึ้นครับ แต่มันออกไม่ตรง ออกมา id ละ 4 แถว
Code (PHP)
SELECT a.std_id, a.name, b.sub_name, b.Grade_vocational , c.sub_name, c.Grade_bachelor FROM tbl_student a
LEFT JOIN tbl_vocational b ON a.std_id=b.std_id and a.id_add=b.id_add
LEFT JOIN tbl_bachelor c ON b.std_id=c.std_id and b.id_add=c.id_add
Date :
2011-11-11 10:59:45
By :
Testprogram
phpmyadmin ขึ้น แต่เอาไปใส่ในอันนี้ไม่ขึ้น
หน้า ฟอร์ม
Code (PHP)
<?php
$date=date("Y/m/d");
$objConnect = mysql_connect("localhost","root","123") or die("Error Connect to Database");
$objDB = mysql_select_db("db_transfer");
$strSQL = "SELECT Max(id_add) FROM tbl_student";
$objQuery = mysql_query($strSQL)or die ("Error Query [".$strSQL."]");
$objResult = mysql_fetch_array($objQuery);
if($objResult<=0){
$std_id="00001";
exit();
}else{
$id_max=$objResult[0]+1;
$std_id=sprintf("%05d",$id_max);
}
mysql_close($objConnect);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
<style type="text/css">
<!--
.style7 {font-family: AngsanaUPC; font-size: 18px; }
.style8 {
font-family: AngsanaUPC;
font-size: 24px;
}
.style10 {font-family: AngsanaUPC; font-size: 18px; color: #FFFFFF; }
-->
</style>
<script language="JavaScript" type="text/javascript">
var HttPRequest = false;
function doCallAjax(Mode){
HttPRequest = false;
if(window.HttPRequest){
HttPRequest =new XMLHttPRequest();
if(HttPRequest.overrideMimeType)
{
HttPRequest.overrideMimeType('text/html');
}
}else if(window.ActiveXObject){
try{
HttPRequest = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
HttPRequest = new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){ }
}
}
if(!HttPRequest){
alert("หน้าเว็บไม่พร้อมใช้");
return false;
}
if(document.form1.std_id.value==""){
alert("รหัสนักศึกษา");
document.form1.std_id.focus();
return false;
}else if(document.form1.name.value==""){
alert("ชื่อนักศึกษา");
document.form1.name.focus()
return false;
}
else if(document.form1.branch.value==""){
alert("สาขา");
document.form1.branch.focus()
return false;
}
else if(document.form1.school.value==""){
alert("สถานศึกษาเดิม");
document.form1.school.focus()
return false;
}
var url="db_Transfer_course.php";
var pmeters="tstd_id=" + encodeURI( document.getElementById("std_id").value) +
"&tid_add=" + encodeURI( document.getElementById("id_add").value ) +
"&tname=" + encodeURI( document.getElementById("name").value ) +
"&tclass=" + encodeURI( document.getElementById("class").value ) +
"&tbranch=" + encodeURI( document.getElementById("branch").value ) +
"&tschool=" + encodeURI( document.getElementById("school").value ) +
"&tdate_time=" + encodeURI( document.getElementById("date_time").value ) +
"&tsub_vid=" + encodeURI( document.getElementById("sub_vid").value) +
"&tsub_name_v=" + encodeURI( document.getElementById("sub_name_v").value ) +
"&tcradit_v=" + encodeURI( document.getElementById("cradit_v").value ) +
"&tGrade_vocational=" + encodeURI( document.getElementById("Grade_vocational").value ) +
"&tsub_bid=" + encodeURI( document.getElementById("sub_bid").value) +
"&tsub_name_b=" + encodeURI( document.getElementById("sub_name_b").value ) +
"&tcradit_b=" + encodeURI( document.getElementById("cradit_b").value ) +
"&tGrade_bachelor=" + encodeURI( document.getElementById("Grade_bachelor").value ) +
"&tMode=" + Mode;
HttPRequest.open('POST',url,true);
HttPRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
HttPRequest.setRequestHeader("Content-length", pmeters.length);
HttPRequest.setRequestHeader("Connection", "close");
HttPRequest.send(pmeters);
HttPRequest.onreadystatechange = function()
{
if(HttPRequest.readyState == 3) // Loading Request
{
document.getElementById("mySpan").innerHTML = "Now is Loading...";
}
if(HttPRequest.readyState == 4) // Return Request
{
//window.location.reload();
document.getElementById("mySpan").innerHTML = HttPRequest.responseText;
document.getElementById("sub_vid").value = '';
document.getElementById("sub_name_v").value = '';
document.getElementById("cradit_v").value = '';
document.getElementById("Grade_vocational").value = '';
document.getElementById("sub_bid").value = '';
document.getElementById("sub_name_b").value = '';
document.getElementById("cradit_b").value = '';
document.getElementById("Grade_bachelor").value = '';
document.form1.sub_vid.focus();
}
}
}
</script>
</head>
<body>
<form name="form1" method="post" action="">
<table width="100%" border="0">
<tr>
<td width="72%" height="115" valign="top" bgcolor="#99CC00" ><fieldset><legend><span class="style8">ข้อมูลนักศึกษา </span> </legend>
<table width="100%" border="0">
<tr>
<td width="15%"><div align="right" class="style7">เลขที่บันทึก</div></td>
<td width="2%" align="center">:</td>
<td width="23%"><label>
<input name="id_add" type="hidden" id="id_add" value="<?=$std_id?>" style="background-color:#FFFF99" size="20" readonly="True">
<?=$std_id?> <input name="date_time" type="hidden" id="date_time" size="5" style="background-color:#00FFCC" value="<? echo date("Y/m/d");?>" /></label></td>
<td width="20%"><div align="right"><span class="style7">ชั้นปี</span></div></td>
<td width="2%" align="center">:</td>
<td width="38%"><label>
<select name="class" id="class" style="background-color:#FFFF99">
<option value="1">ปี1</option>
<option value="2">ปี2</option>
<option value="3">ปี3</option>
<option value="4">ปี4</option>
</select>
</label></td>
</tr>
<tr>
<td><div align="right"><span class="style7">รหัสนักศึกษา</span></div></td>
<td align="center">:</td>
<td><label>
<input name="std_id" type="text" id="std_id" style="background-color:#FFFF99" size="20">
</label></td>
<td><div align="right"><span class="style7">สาขา</span></div></td>
<td align="center">:</td>
<td><label>
<input name="branch" type="text" id="branch" style="background-color:#FFFF99" size="20">
</label></td>
</tr>
<tr>
<td><div align="right"><span class="style7">ชื่อนักศึกษา</span></div></td>
<td align="center">:</td>
<td><label>
<input name="name" type="text" id="name" style="background-color:#FFFF99" size="20">
</label></td>
<td><div align="right"><span class="style7">สถานศึกษาเดิม</span></div></td>
<td align="center">:</td>
<td><input name="school" type="text" id="school" style="background-color:#FFFF99" size="20"></td>
</tr>
</table>
</fieldset></td>
</tr>
<tr >
<td height="181" valign="top" bgcolor="#99CC00"><table width="100%" border="0">
<tr>
<td width="43%" align="right"><fieldset>
<div align="left">
<legend class="style8">วิชาที่เคยศึกษามาแล้ว</legend>
</div>
<table width="100%" border="0">
<tr>
<td width="35%" class="style7"><div align="right">รหัสวิช</div></td>
<td width="5%" align="center">:</td>
<td width="60%"><div align="left">
<input name="sub_vid" type="text" id="sub_vid" style="background-color:#FFFF99" size="20">
</div></td>
</tr>
<tr>
<td class="style7"><div align="right">ชื่อวิชา</div></td>
<td align="center">:</td>
<td><div align="left">
<input name="sub_name_v" type="text" id="sub_name_v" style="background-color:#FFFF99" size="20">
</div></td>
</tr>
<tr>
<td class="style7"><div align="right">หน่วยกิต</div></td>
<td align="center">:</td>
<td><div align="left">
<input name="cradit_v" type="text" id="cradit_v" style="background-color:#FFFF99" size="20">
</div></td>
</tr>
<tr>
<td class="style7"><div align="right">เกรด</div></td>
<td align="center">:</td>
<td><div align="left">
<input name="Grade_vocational" type="text" id="Grade_vocational" style="background-color:#FFFF99" size="20">
</div></td>
</tr>
</table>
</fieldset>
<label>
<input type="button" name="btnAdd" id="btnAdd" value="บันทึก" onclick="JavaScript:doCallAjax('ADD');">
</label></td>
<td width="57%" valign="top"><fieldset><legend class="style8">วิชาที่ขอเทียบโอน</legend>
<table width="100%" border="0">
<tr>
<td width="30%" class="style7"><div align="right">รหัสวิชา</div></td>
<td width="3%" align="center">:</td>
<td width="67%"><input name="sub_bid" type="text" id="sub_bid" style="background-color:#FFFF99" size="20"></td>
</tr>
<tr>
<td class="style7"><div align="right">ชื่อวิชา</div></td>
<td align="center">:</td>
<td><input name="sub_name_b" type="text" id="sub_name_b" style="background-color:#FFFF99" size="20"></td>
</tr>
<tr>
<td class="style7"><div align="right">หน่วยกิต</div></td>
<td align="center">:</td>
<td><input name="cradit_b" type="text" id="cradit_b" style="background-color:#FFFF99" size="20"></td>
</tr>
<tr>
<td class="style7"><div align="right">เกรด</div></td>
<td align="center">:</td>
<td><input name="Grade_bachelor" type="text" id="Grade_bachelor" style="background-color:#FFFF99" size="20"></td>
</tr>
</table>
</fieldset>
<label>
<input type="reset" name="Submit2" value="ยกเลิก">
</label></td>
</tr>
</table></td>
</tr>
<tr>
<td height="202" valign="top"><table width="100%" border="0">
<tr>
<td width="11%" align="center" background="../images/back.png"><span class="style10">รหัสนักศึกษา</span></td>
<td width="18%" align="center" background="../images/back.png"><span class="style10">ชื่อนักศึกษา</span></td>
<td width="20%" align="center" background="../images/back.png"><span class="style10"> <span class="style10">วิชาที่เคยศึกษามาแล้ว</span></span></td>
<td width="16%" align="center" background="../images/back.png" class="style10">เกรด</td>
<td width="26%" align="center" background="../images/back.png"><span class="style10">วิชาที่ขอเทียบโอน</span></td>
<td width="9%" align="center" background="../images/back.png" class="style10">เกรด</td>
</tr>
</table><span id="mySpan"></span></td>
</tr>
</table>
</form>
</body>
</html>
หน้า ฐานข้อมูล
Code (PHP)
<?php
/*** By Weerachai Nukitram ***/
/*** http://www.ThaiCreate.Com ***/
$strMode = $_POST["tMode"];
$objConnect = mysql_connect("localhost","root","123") or die("Error Connect to Database");
$objDB = mysql_select_db("db_transfer");
if($strMode == "ADD")
{
$strSQL = "INSERT INTO tbl_student";
$strSQL .="(std_id, id_add, name, class, branch, school, add_date) ";
$strSQL .="VALUES ";
$strSQL .="('".$_POST["tstd_id"]."','".$_POST["tid_add"]."','".$_POST["tname"]."','".$_POST["tclass"]."' ";
$strSQL .=",'".$_POST["tbranch"]."','".$_POST["tschool"]."','".$_POST["tdate_time"]."') ";
$objQuery = mysql_query($strSQL)or die ("Error Query [".$strSQL."]");
$strSQL1 = "INSERT INTO tbl_vocational";
$strSQL1 .="(std_id, sub_vid, sub_name, cradit, Grade_vocational, id_add) ";
$strSQL1 .="VALUES ";
$strSQL1 .="('".$_POST["tstd_id"]."','".$_POST["tsub_vid"]."','".$_POST["tsub_name_v"]."'";
$strSQL1 .=",'".$_POST["tcradit_v"]."','".$_POST["tGrade_vocational"]."','".$_POST["tid_add"]."') ";
$objQuery = mysql_query($strSQL1)or die ("Error Query [".$strSQL1."]");
$strSQL2 = "INSERT INTO tbl_bachelor";
$strSQL2 .="(std_id, sub_bid, sub_name, cradit, Grade_bachelor, id_add) ";
$strSQL2 .="VALUES ";
$strSQL2 .="('".$_POST["tstd_id"]."','".$_POST["tsub_bid"]."','".$_POST["tsub_name_b"]."'";
$strSQL2 .=",'".$_POST["tcradit_b"]."','".$_POST["tGrade_bachelor"]."','".$_POST["tid_add"]."') ";
$objQuery = mysql_query($strSQL2)or die ("Error Query [".$strSQL2."]");
}
$strSQL = "SELECT a.std_id, a.name, b.sub_name, b.Grade_vocational , c.sub_name, c.Grade_bachelor FROM tbl_student a ";
$strSQL .= "LEFT JOIN tbl_vocational b ON a.std_id=b.std_id and a.id_add=b.id_add ";
$strSQL .= "LEFT JOIN tbl_bachelor c ON b.std_id=c.std_id and b.id_add=c.id_add ";
$strSQL .="WHERE a.std_id='".$_POST["tstd_id"]."' ORDER BY std_id DESC";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
?>
<style type="text/css">
<!--
.style2 {font-family: AngsanaUPC; font-size: 18px; color: #0000FF; }
.titled {font-family: AngsanaUPC; font-size: 18px; color: #000000; }
-->
</style>
<table width="100%" border="0" align="center" cellpadding="0" >
<?
while($objResult = mysql_fetch_array($objQuery))
{
?>
<tr >
<td width="26%" ><div align="center" class="style2 ">
<div align="center">
<?=$objResult["a.std_id"];?>
</div>
</div></td>
<td width="12%"><div align="left"class="titled ">
<div align="left">
<?=$objResult["a.name"];?>
</div>
</div></td>
<td width="18%" ><div align="left" class="titled ">
<div align="center">
<?=$objResult["b.sub_name"];?>
</div>
</div></td>
<td width="10%"><div align="left" class=" titled ">
<div align="left">
<?=$objResult["b.Grade_vocational"];?>
</div>
</div></td>
<td width="17%"><div align="center" class=" titled ">
<div align="left">
<?=$objResult["c.sub_name"];?>
</div>
</div></td>
<td width="17%"><div align="center" class=" titled ">
<div align="left">
<?=$objResult["c.Grade_bachelor"];?>
</div>
</div></td>
</tr>
<?
}
?>
</table>
<?
mysql_close($objConnect);
?>
ประวัติการแก้ไข 2011-11-11 11:09:35
Date :
2011-11-11 11:04:24
By :
Testprogram
left right ถ้าข้อมูลมันไม่เหมือนกัน มันก็ออกมาครบหมดแหละครับ ใส่ distinct หรือ group by เข้าไปด้วย
Date :
2011-11-11 11:07:53
By :
ikikkok
ออกไม่ตรง สงสัยผิดทางเทคนิคแล้วม้าง ^^ JOIN ผิดหรือป่าว
Woww ท่านเทพข้างบนมาตอบแระ eiei
ประวัติการแก้ไข 2011-11-11 11:10:22
Date :
2011-11-11 11:09:29
By :
LuckyStar
ขอบคุณท่าน Luckystar และ ท่าน PlaKriM มากครับที่ให้คำแนะนำ
ใน phpmyadmin ออกตรงตามต้องการแล้วครับ
แต่ในโปรเจ็กไม่ออกเลยคราวนี้
Date :
2011-11-11 11:14:51
By :
Testprogram
ถ้าใส่ a. มันเกี่ยวไหมครับที่ทำให้ไม่ยอม show
Code (PHP)
<?=$objResult["a.std_id"];?>
Date :
2011-11-11 11:35:16
By :
Testprogram
ไม่ต้องใส่ครับท่าน
Date :
2011-11-11 11:40:02
By :
ikikkok
ได้แล้วครับ
ขอบคุณมากครับๆๆๆๆๆ
Date :
2011-11-11 11:54:15
By :
Testprogram
Load balance : Server 00