|
|
|
กรณีที่เราจะดึงข้อมูลจากฐานข้อมูลมาจากหลายๆ table ใช้คำสั่งอะไรค่ะ |
|
|
|
|
|
|
|
LEFT JOIN หรือ INNER JOIN
Code (PHP)
$strSQL = " SELECT name, price FROM table1";
$strSQL .= " LEFT JOIN table2 ON table1.id = table2.id";
|
|
|
|
|
Date :
2011-05-10 10:17:18 |
By :
TEST_CODE |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุนค่ะ
|
|
|
|
|
Date :
2011-05-10 10:20:43 |
By :
NWii |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้าเอาข้อมูลมารวมกันใช้ UNION ครับ
|
|
|
|
|
Date :
2011-05-10 10:40:04 |
By :
webmaster |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แล้วเวลาให้แสดงต้องใส่ค่าจากตารางไหนครับ
tb_product
tb_type
Code (PHP)
$strSQL = "SELECT * FROM tb_product ";
$strSQL .= " LEFT JOIN tb_type ON tb_product .ref_id_type = tb_type.id_type";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
?>
<table width="668" border="1">
<tr>
<th width="83"> <div align="center">รหัสหอพัก</div></th>
<th width="88"> <div align="center">ชื่อหอพัก </div></th>
<th width="130"> <div align="center">ประเภทหอพัก </div></th>
<th width="73"> <div align="center">ราคา</div></th>
<th width="100"> <div align="center">รูปภาพ </div></th>
<th width="154"> <div align="center">รายละเอียด</div></th>
</tr>
<?
while($objResult = mysql_fetch_array($objQuery))
{
?>
<tr>
<td height="50"><div align="center"><?=$objResult["id_prd"];?></div></td>
<td><div align="center">
<?=$objResult["name_prd"];?>
</div></td>
<td><div align="center">
<?=$objResult["ref_id_type"];?>
</div></td>
<td><div align="center">
<?=$objResult["price_prd"];?>
</div></td>
.<td align="right"><div align="center">
<?=$objResult["photo_prd"];
if ($photo_prd=="") {
$photo_prd="temp.jpg";
}?>
|
|
|
|
|
Date :
2011-05-10 11:00:08 |
By :
buraratn |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอนนี้ผลที่ได้ยังเป็นแค่รหัสอยู่เลยครับ
|
|
|
|
|
Date :
2011-05-10 11:01:11 |
By :
buraratn |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
และก็ยังคงทำไม่ได้ค่ะ คือว่าทั้งสองตารางต้องมี primary key ตัวเดียวกันหรือเปล่าค่ะ
|
|
|
|
|
Date :
2011-05-10 11:52:54 |
By :
NWii |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เปลี่ยนตรงที่แสดงผล จาก ref_id_type เป็น name_type
<?
$strSQL = "SELECT * FROM tb_product ";
$strSQL .= " INNER JOIN tb_type ON tb_product .ref_id_type = tb_type.id_type";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
?>
<table width="668" border="1">
<tr>
<th width="83"> <div align="center">รหัสหอพัก</div></th>
<th width="88"> <div align="center">ชื่อหอพัก </div></th>
<th width="130"> <div align="center">ประเภทหอพัก </div></th>
<th width="73"> <div align="center">ราคา</div></th>
<th width="100"> <div align="center">รูปภาพ </div></th>
<th width="154"> <div align="center">รายละเอียด</div></th>
</tr>
<?
while($objResult = mysql_fetch_array($objQuery))
{
?>
<tr>
<td height="50"><div align="center"><?=$objResult["id_prd"];?></div></td>
<td><div align="center">
<?=$objResult["name_prd"];?>
</div></td>
<td><div align="center">
<?=$objResult["name_type"];?>
</div></td>
<td><div align="center">
<?=$objResult["price_prd"];?>
</div></td>
.<td align="right"><div align="center">
<?=$objResult["photo_prd"];
if ($photo_prd=="") {
$photo_prd="temp.jpg";
}?>
|
|
|
|
|
Date :
2011-05-10 12:00:37 |
By :
pumin99 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณมากเลยครับ ตรงรูปภาพยังออกเป็นตัวเลขครับ
รบกวนอีหน่อยนะครับ
|
|
|
|
|
Date :
2011-05-10 16:40:05 |
By :
buraratn |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอบ No.6 ใช่คับ
ตอบ No.5 ต้องเอาชื่อ folder ที่เก็บรูปมาด้วยคับ
|
ประวัติการแก้ไข 2011-05-10 19:35:42
|
|
|
|
Date :
2011-05-10 18:46:05 |
By :
TEST_CODE |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
folder ชื่อ photo ครับ
|
|
|
|
|
Date :
2011-05-11 09:22:30 |
By :
buraratn |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<html>
<head>
<title>ค้นหา</title>
</head>
<body>
<form name="frmSearch" method="post" action="<?=$_SERVER['PHP_SELF']?>">
<table width="790" border="1">
<tr>
<th width="780">ราคาห้องพัก
<select name="price" id="price">
<option>- เลือกราคา -</option>
<option value="1" <? if($price==1){?>selected<? }?>>น้อยกว่า1000</option>
<option value="2" <? if($price==2){?>selected<? }?>>1001-1500</option>
<option value="3" <? if($price==3){?>selected<? }?>>1501-2000</option>
<option value="4" <? if($price==4){?>selected<? }?>>2001-2500</option>
<option value="5" <? if($price==5){?>selected<? }?>>2501-3000</option>
<option value="6" <? if($price==6){?>selected<? }?>>มากกว่า 3000</option>
</select>
ค้นหา
<input name="txtKeyword" type="text" id="txtKeyword" value="<?=$_POST["txtKeyword"];?>">
<input type="submit" value="Search"></th>
</tr>
</table>
</form>
<? @include("connect.php"); ?>
<?
if($_REQUEST['price']!=''){
$price = $_REQUEST['price'];
switch($price){
case 1:
$where = " WHERE price_prd < 1000 ";
break;
case 2:
$where = " WHERE price_prd BETWEEN 1001 AND 1500 ";
break;
case 3:
$where = " WHERE price_prd BETWEEN 1501 AND 2000 ";
break;
case 4:
$where = " WHERE price_prd BETWEEN 2001 AND 2500 ";
break;
case 5:
$where = " WHERE price_prd BETWEEN 2501 AND 3000 ";
break;
case 6:
$where = " WHERE price_prd > 3000 ";
break;
}
}
if($_REQUEST["txtKeyword"] != ""){
$detail = $_REQUEST["txtKeyword"];
$where = " WHERE (name_prd LIKE '%".$detail."%') ";
}
if($_REQUEST['price']!='' && $_REQUEST["txtKeyword"] != ""){
$price = $_REQUEST['price'];
$name_prd = $_REQUEST["txtKeyword"];
switch($price){
case 1:
$where = " WHERE price_prd < 1000 OR name_prd LIKE '%".$name_prd."%' ";
break;
case 2:
$where = " WHERE price_prd BETWEEN 1001 AND 1500 OR name_prd LIKE '%".$name_prd."%'";
break;
case 3:
$where = " WHERE price_prd BETWEEN 1501 AND 2000 OR name_prd LIKE '%".$name_prd."%'";
break;
case 4:
$where = " WHERE price_prd BETWEEN 2001 AND 2500 OR name_prd LIKE '%".$name_prd."%'";
break;
case 5:
$where = " WHERE price_prd BETWEEN 2501 AND 3000 OR name_prd LIKE '%".$name_prd."%'";
break;
case 6:
$where = " WHERE price_prd > 3000 OR name_prd LIKE '%".$name_prd."%'";
break;
}
}
$strSQL = "SELECT * FROM tb_product $where ";
$strSQL .= " INNER JOIN tb_type ON tb_product.ref_id_type = tb_type.id_type";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
?>
<table width="926" border="1">
<tr>
<th width="110"> <div align="center">รหัสหอพัก</div></th>
<th width="215"> <div align="center">ชื่อหอพัก </div></th>
<th width="94"> <div align="center">ประเภทหอพัก </div></th>
<th width="119"> <div align="center">ราคา</div></th>
<th width="137"> <div align="center">รูปภาพ</div></th>
<th width="211"> <div align="center">รายละเอียด</div></th>
</tr>
<?
while($objResult = mysql_fetch_array($objQuery))
{
?>
<tr>
<td><div align="center"><?=$objResult["id_prd"];?></div></td>
<td><div align="center">
<?=$objResult["name_prd"];?>
</div></td>
<td><div align="center">
<?=$objResult["name_type"];?>
</div></td>
<td><div align="center">
<?=$objResult["price_prd"];?>
</div>
</div></td>
<td align="right"><div align="center"><?=$objResult["photo_prd"];
if ($photo_prd=="") {
$photo_prd="temp.jpg";
}?>
</div> </td>
<td align="right"><div align="center">
[ <A HREF='search_view.php?id_prd=<?=$objResult["id_prd"];?>'>แสดงรายละเอียด </A>] </div> </td>
</tr>
<?
}
?>
</table>
<?
//mysql_close($objConnect);
?>
</body>
</html>
Code (PHP)
$strSQL .= " INNER JOIN tb_type ON tb_product.ref_id_type = tb_type.id_type";
ใส่ตรงนี้เข้าไปจะได้ดังรูปครับถ้าไม่ใส่ประเภทหอพักไม่ออกมาครับ
ตอนนี้ยังค้นหาได้อยู่ครับ แก้แบบข้าล่างประเภทออกแล้วแต่ค้นหาไม่ได้ครับ ข้อมูลแสดงออกมาหมด
|
ประวัติการแก้ไข 2011-05-11 12:44:26
|
|
|
|
Date :
2011-05-11 12:11:27 |
By :
buraratn |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองแก้โค้ดแล้วครับ ประเภทออกมาแล้วครับ แต่ ค้นหาข้อมูลไม่ได้ แล้วรูปยังไม่ออกด้วยครับ ข้อมูลจะแสดงออกมาทั้งหมดเลยครับ
รบกวนดูให้หน่อยครับCode (PHP)
<html>
<head>
<title>ค้นหา</title>
</head>
<body>
<form name="frmSearch" method="post" action="<?=$_SERVER['PHP_SELF']?>">
<table width="641" border="1">
<tr>
<th width="631">ราคาห้องพัก
<select name="price" id="price">
<option>- เลือกราคา -</option>
<option value="1" <? if($price==1){?>selected<? }?>>น้อยกว่า1000</option>
<option value="2" <? if($price==2){?>selected<? }?>>1001-1500</option>
<option value="3" <? if($price==3){?>selected<? }?>>1501-2000</option>
<option value="4" <? if($price==4){?>selected<? }?>>2001-2500</option>
<option value="5" <? if($price==5){?>selected<? }?>>2501-3000</option>
<option value="6" <? if($price==6){?>selected<? }?>>มากกว่า 3000</option>
</select>
ค้นหา
<input name="txtKeyword" type="text" id="txtKeyword" value="<?=$_POST["txtKeyword"];?>">
<input type="submit" value="Search"></th>
</tr>
</table>
</form>
<? @include("connect.php"); ?>
<?
if($_REQUEST['price']!=''){
$price = $_REQUEST['price'];
switch($price){
case 1:
$where = " WHERE price_prd < 1000 ";
break;
case 2:
$where = " WHERE price_prd BETWEEN 1001 AND 1500 ";
break;
case 3:
$where = " WHERE price_prd BETWEEN 1501 AND 2000 ";
break;
case 4:
$where = " WHERE price_prd BETWEEN 2001 AND 2500 ";
break;
case 5:
$where = " WHERE price_prd BETWEEN 2501 AND 3000 ";
break;
case 6:
$where = " WHERE price_prd > 3000 ";
break;
}
}
if($_REQUEST["txtKeyword"] != ""){
$detail = $_REQUEST["txtKeyword"];
$where = " WHERE (name_prd LIKE '%".$detail."%') ";
}
if($_REQUEST['price']!='' && $_REQUEST["txtKeyword"] != ""){
$price = $_REQUEST['price'];
$name_prd = $_REQUEST["txtKeyword"];
switch($price){
case 1:
$where = " WHERE price_prd < 1000 OR name_prd LIKE '%".$name_prd."%' ";
break;
case 2:
$where = " WHERE price_prd BETWEEN 1001 AND 1500 OR name_prd LIKE '%".$name_prd."%'";
break;
case 3:
$where = " WHERE price_prd BETWEEN 1501 AND 2000 OR name_prd LIKE '%".$name_prd."%'";
break;
case 4:
$where = " WHERE price_prd BETWEEN 2001 AND 2500 OR name_prd LIKE '%".$name_prd."%'";
break;
case 5:
$where = " WHERE price_prd BETWEEN 2501 AND 3000 OR name_prd LIKE '%".$name_prd."%'";
break;
case 6:
$where = " WHERE price_prd > 3000 OR name_prd LIKE '%".$name_prd."%'";
break;
}
}
$strSQL = "SELECT * FROM tb_product ";
$strSQL .= " INNER JOIN tb_type ON tb_product .ref_id_type = tb_type.id_type";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
?>
<table border="1">
<tr>
<th width="92"> <div align="center">รหัสหอพัก</div></th>
<th width="97"> <div align="center">ชื่อหอพัก </div></th>
<th width="140"> <div align="center">ประเภทหอพัก </div></th>
<th width="83"> <div align="center">ราคา</div></th>
<th width="110"> <div align="center">รูปภาพ </div></th>
<th width="170"> <div align="center">รายละเอียด</div></th>
</tr>
<?
while($objResult = mysql_fetch_array($objQuery))
{
?>
<tr>
<td height="50"><div align="center"><?=$objResult["id_prd"];?></div></td>
<td><div align="center">
<?=$objResult["name_prd"];?>
</div></td>
<td><div align="center">
<?=$objResult["name_type"];?>
</div></td>
<td><div align="center">
<?=$objResult["price_prd"];?>
</div></td>
<td align="right"><div align="center">
<div align="center">
<?=$objResult["photo_prd"];
if ($photo_prd=="") {
$photo_prd="temp.jpg";
}?>
</div></td> <td>[ <A HREF='search_view.php?id_prd=<?=$objResult["id_prd"];?>'>แสดงรายละเอียด </A>] </div></td>
</tr>
<?
}
?>
</table>
<?
//mysql_close($objConnect);
?>
</body>
</html>
|
ประวัติการแก้ไข 2011-05-11 18:36:19
|
|
|
|
Date :
2011-05-11 12:41:06 |
By :
buraratn |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
รบกวนช่วยดูให้ทีครับ
|
|
|
|
|
Date :
2011-05-11 14:25:30 |
By :
buraratn |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|