|
|
|
ช่วยดูให้ทีคับว่าจะต้องยังไง INNER JOIN แบบปกติได้แล้วคับ ติดเรื่อง search แบบ INNER JOIN 2 ตาราง |
|
|
|
|
|
|
|
ตอนนี้คิวรี่แบบINNER JOIN แบบปกติได้แล้วคับ ติดเรื่อง search แบบ INNER JOIN 2 ตาราง
search ฟิว category.category_name(ค้นหาชื่อหมวดสินค้า ) จะแสดงคำที่ค้นหาไป ออกมาเท่ากับจำนวนrowใน product_id
search ฟิว product.pro_name (ค้นหาชื่อสินค้า ) จะแสดงคำที่ค้นหาไป ออกมาเท่ากับจำนวนrowใน category_id
Code (PHP)
<?php
include("config.php");
$page_start=0;
$per_page=20;
$page = @$_REQUEST['page'];
//-------------ค้นหา
if(isset($_REQUEST['text_search']) && trim($_REQUEST['text_search'])!= ""){
//เช็คว่าต้องมีการ พิมพ์ในช่อง search เท่านั้นจึงจะเข้าทำ statement ทีอยู่ด้านใน
$txt_search = $_REQUEST['text_search'];
$search_type = $_REQUEST['search_type'];
switch ($search_type){
case 2: $where = "product.product_id LIKE '%" . $txt_search . "%'"; break;
case 3: $where = "product.pro_name LIKE '%" . $txt_search . "%'"; break;
case 4: $where = "category.category_name LIKE '%" . $txt_search . "%'"; break;
}
$sql_data_all = "SELECT count(*) FROM product INNER JOIN category ON product.category_id = category.category_id WHERE " .$where. " ";
// SELECT count(*) >> นับจำนวน Count Record ที่ค้นพบ
$qr = mysql_db_query($dbname, $sql_data_all);
$num_rows = mysql_result($qr,0);
if ( empty($page) )
$page = 1;
$prev_page = $page - 1;
$next_page = $page + 1;
$page_start = ( $per_page * $page) - $per_page;
if ( $num_rows <= $per_page )
$num_pages = 1;
else if ( ( $num_rows % $per_page ) == 0 )
$num_pages = ( $num_rows / $per_page );
else
$num_pages = ( $num_rows / $per_page ) + 1;
$num_pages = ( int ) $num_pages;
$sql_data = "SELECT product.product_id , product.pro_name , product.pro_price , product.pro_description , product.idtrade , category.category_name
FROM product INNER JOIN category WHERE " .$where. " ORDER BY category_name ASC LIMIT $page_start, $per_page"; // SELECT Query ดึง database มาโชว์ในตาราง
$data_result = mysql_db_query($dbname,$sql_data);
$count = mysql_num_rows($data_result);
echo mysql_error();
}else{
$sql_data_all = "SELECT count(*) FROM product "; //$sql_data_all SELECT หาจำนวน rows
echo $sql_data_all;
$qr = mysql_db_query($dbname, $sql_data_all);
echo mysql_error();
$num_rows = mysql_result($qr,0);
if ( empty($page) )
$page = 1;
$prev_page = $page - 1;
$next_page = $page + 1;
$page_start = ( $per_page * $page) - $per_page;
if ( $num_rows <= $per_page )
$num_pages = 1;
else if ( ( $num_rows % $per_page ) == 0 )
$num_pages = ( $num_rows / $per_page );
else
$num_pages = ( $num_rows / $per_page ) + 1;
$num_pages = ( int ) $num_pages;
$sql_data = "SELECT product.product_id , product.pro_name , product.pro_price , product.pro_description , product.idtrade , category.category_name FROM product INNER JOIN category ON product.category_id = category.category_id
ORDER BY product.product_id ASC LIMIT $page_start, $per_page";
$data_result = mysql_db_query($dbname,$sql_data);
$count = mysql_num_rows($data_result);
}
//echo $sql_data;
if ( ( $page > $num_pages ) || ( $page < 0 ) )
print "จำนวน $page มากกว่า $num_pages";
//-------------------คำสั่ง SQL กำหนดลิมิต ให้แสดงผลต่อ 1 หน้า---------------------------//
$sql .= " LIMIT $page_start, $per_page";
$result = mysql_query( $sql );
$dbquery = mysql_db_query($dbname,$sql);
$cols = 10; //กำหนดจำนวนคอลั่ม
$c = $cols;
$c --;
?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
<!--
body {
background-image: url(bg_re.gif);
}
-->
</style><table width="100%" border="0"><tr>
<?
if($c == 0) {
$c = $cols;
?>
</tr>
<? } ?>
</table>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>ค้นหาข้อมูลสมาชิก</title>
</head>
<body onload='document.Add1.text_search.focus();'>
<form action='re_product.php' method='get' >
แสดงข้อมูล :
<input name="text_search" type="text" value="<?=$txt_search?>">
<select name="search_type">
<option value='1'<?=($_REQUEST['search_type'] == 1) ? ' selected="selected"' : ''?>>
-คำค้นหา-</option>
<option value='2'<?=($_REQUEST['search_type'] == 2) ? ' selected="selected"' : ''?>>รหัสสินค้า</option>
<option value='3'<?=($_REQUEST['search_type'] == 3) ? ' selected="selected"' : ''?>>ชื่อสินค้า</option>
<option value='4'<?=($_REQUEST['search_type'] == 4) ? ' selected="selected"' : ''?>>หมวดสินค้า</option>
</select>
<input name="cmd_Search" type="submit" id="cmd_Search"value="ค้นหา">
<br />
<br />
รวม <b><?php echo $num_rows; ?></b> แสดงอยู่ <b><?php echo $num_pages; ?></b> หน้า <br />
<table id="member" width="930" border="0" cellspacing="0">
<thead>
<tr>
<th height="64">ลำดับ</th>
<th>รหัสสินค้า</th>
<th>ชื่อสินค้า</th>
<th>ราคา</th>
<th>รายละเอียดสินค้า</th>
<th>ตัวแทนจำหน่าย</th>
<th>หนวดสินค้า</th>
<th>ผู้จำหน่าย</th>
<th>ลบ</th>
</tr>
</thead>
<tbody>
<?php
$i = 1;
if($data_result)
while($rows = mysql_fetch_array($data_result)) {
?>
<tr>
<td class="no"><?=$i?></td>
<td class="product_id"><?=($rows['product_id']) ? sprintf($rows['product_id']) : ' '; ?></td>
<td class="pro_name"><?=($rows['pro_name']) ? sprintf("%49.49s", $rows['pro_name']) : ' '; ?></td>
<td class="pro_price">
<?=($rows['pro_price']) ? sprintf($rows['pro_price']) : ' '; ?>
บาท
</td>
<td class="pro_description"><?=($rows['pro_description']) ? sprintf("%49.49s", $rows['pro_description']):' '; ?></td>
<td class="idtrade">TA<?=($rows['idtrade']) ? sprintf($rows['idtrade']) : ' '; ?></td>
<td class="category_id"><?=($rows['category_name']) ? sprintf($rows['category_name']) : ' '; ?>
</td>
?>
<tr>
<td class="no"><?=$i?></td>
<td class="product_id"><?=($rows['product_id']) ? sprintf($rows['product_id']) : ' '; ?></td>
<td class="pro_name"><?=($rows['pro_name']) ? sprintf("%49.49s", $rows['pro_name']) : ' '; ?></td>
<td class="pro_price">
<?=($rows['pro_price']) ? sprintf($rows['pro_price']) : ' '; ?>
บาท
</td>
<td class="pro_description"><?=($rows['pro_description']) ? sprintf("%49.49s", $rows['pro_description']):' '; ?></td>
<td class="idtrade">TA<?=($rows['idtrade']) ? sprintf($rows['idtrade']) : ' '; ?></td>
<td class="category_id"><?=($rows['category_name']) ? sprintf($rows['category_name']) : ' '; ?>
</td>
<td><A Href='f_show_mem.php?type=edit&id=<?=$rows['idtrade']?>'><center><img src='images/edit.png' width='16' height='16' border='0'></center></a></td>
<td><a href='f_show_mem.php?IDMember=" .$id . "'><center><img src='images/delete.png' width='16' height='16' border='0'></center></a></td>
</tr>
<?php
$i++;
}
?>
</tbody>
</table>
<br />
<?php
$QA = $_GET;
$QA['page'] = $prev_page;
$QS = http_build_query($QA);
if ( $prev_page )
echo "<a href=\"?$QS\"><<กลับไป </a>";
for ( $i=1; $i<=$num_pages; $i++ )
{
$QA['page'] = $i;
$QS = http_build_query($QA);
if ( $i != $page)
echo "[<a href=\"?$QS\">$i</a>]";
else
echo " <b>$i</b> ";
}
$QA['page'] = $next_page;
$QS = http_build_query($QA);
if ( $page != $num_pages )
echo "<a href=\"?$QS\"> หน้าต่อไป >></a>";
?>
<?php mysql_close();?>
</tr>
</form>
</body>
</html>
Tag : - - - -
|
|
|
|
|
|
Date :
2010-02-04 17:58:18 |
By :
gofgof |
View :
1942 |
Reply :
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คำถามทำให้ไม่เข้าใจ เหอะๆมาถามใหม่ นะคับ
เวลา search ค้นหาชื่อหมวดสินค้า จะแสดงคำที่ค้นหาคำๆนั้น ในแถว หนวดสินค้า จะออกมาเท่ากับ row ของ product_id
เวลา search ค้นหาชื่อสินค้า จะแสดงคำที่ค้นหาคำๆนั้น ในแถว ชื่อสินค้า จะออกมาเท่ากับ row ของ category_id
Code (PHP)
<?php
include("config.php");
$page_start=0;
$per_page=20;
$page = @$_REQUEST['page'];
if(isset($_REQUEST['text_search']) && trim($_REQUEST['text_search'])!= ""){
$txt_search = $_REQUEST['text_search'];
$search_type = $_REQUEST['search_type'];
switch ($search_type){
case 2: $where = "product.product_id LIKE '%" . $txt_search . "%'"; break;
case 3: $where = "product.pro_name LIKE '%" . $txt_search . "%'"; break;
case 4: $where = "category.category_name LIKE '%" . $txt_search . "%'"; break;
}
$sql_data_all = "SELECT count(*) FROM product INNER JOIN category ON product.category_id = category.category_id WHERE " .$where. " ";
$qr = mysql_db_query($dbname, $sql_data_all);
$num_rows = mysql_result($qr,0);
if ( empty($page) )
$page = 1;
$prev_page = $page - 1;
$next_page = $page + 1;
$page_start = ( $per_page * $page) - $per_page;
if ( $num_rows <= $per_page )
$num_pages = 1;
else if ( ( $num_rows % $per_page ) == 0 )
$num_pages = ( $num_rows / $per_page );
else
$num_pages = ( $num_rows / $per_page ) + 1;
$num_pages = ( int ) $num_pages;
$sql_data = "SELECT product.product_id , product.pro_name , product.pro_price , product.pro_description , product.idtrade , category.category_name
FROM product INNER JOIN category WHERE " .$where. " ORDER BY category_name ASC LIMIT $page_start, $per_page"; // SELECT Query ดึง database มาโชว์ในตาราง
$data_result = mysql_db_query($dbname,$sql_data);
$count = mysql_num_rows($data_result);
echo mysql_error();
}else{
$sql_data_all = "SELECT count(*) FROM product "; //$sql_data_all SELECT หาจำนวน rows
echo $sql_data_all;
$qr = mysql_db_query($dbname, $sql_data_all);
echo mysql_error();
$num_rows = mysql_result($qr,0);
if ( empty($page) )
$page = 1;
$prev_page = $page - 1;
$next_page = $page + 1;
$page_start = ( $per_page * $page) - $per_page;
if ( $num_rows <= $per_page )
$num_pages = 1;
else if ( ( $num_rows % $per_page ) == 0 )
$num_pages = ( $num_rows / $per_page );
else
$num_pages = ( $num_rows / $per_page ) + 1;
$num_pages = ( int ) $num_pages;
$sql_data = "SELECT product.product_id , product.pro_name , product.pro_price , product.pro_description , product.idtrade , category.category_name FROM product INNER JOIN category ON product.category_id = category.category_id
ORDER BY product.product_id ASC LIMIT $page_start, $per_page";
$data_result = mysql_db_query($dbname,$sql_data);
$count = mysql_num_rows($data_result);
}
if ( ( $page > $num_pages ) || ( $page < 0 ) )
print "จำนวน $page มากกว่า $num_pages";
$sql .= " LIMIT $page_start, $per_page";
$result = mysql_query( $sql );
$dbquery = mysql_db_query($dbname,$sql);
$cols = 10;
$c = $cols;
$c --;
?>
|
|
|
|
|
Date :
2010-02-04 20:25:58 |
By :
gofgof |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|