อยากทราบวิธีให้ search แบบ 2 ช่องพร้อมกัน ค่ะ โดยที่กรอกข้อมูลช่องใดช่องหนึงก้อได้
Code (PHP)
$strSQL = "SELECT * FROM ecom_category WHERE CatName LIKE '%".$_GET["txtKeyword"]."%' or StockLimit LIKE '%".$_GET["txtKeyword"]."%'";
Date :
2013-01-22 10:19:25
By :
Ex-[S]i[L]e[N]t
ลองแล้วแบบนี้ ทำไม มันเสิดได้แค่่ช่องเดียว ค่ะ
Code (PHP)
<html>
<head>
<title></title>
</head>
<body>
<form name="frmSearch" method="get" action="<?=$_SERVER['SCRIPT_NAME'];?>">
<table width="599" border="1">
<tr>
<th>MID
<input name="txtKeyword" type="text" id="txtKeyword" value="<?=$_GET["txtKeyword2"];?>">TID
<input name="txtKeyword" type="text" id="txtKeyword" value="<?=$_GET["txtKeyword"];?>">
<input type="submit" value="Search"></th>
</tr>
</table>
</form>
<?
if($_GET["txtKeyword"] != "")
{
$objConnect = mysql_connect("localhost","root","1234") or die("Error Connect to Database");
$objDB = mysql_select_db("ecom_db");
// Search By Name or Email
$strSQL = "SELECT * FROM ecom_category WHERE (CatName LIKE '%".$_GET["txtKeyword"]."%' or StockLimit LIKE '%".$_GET["txtKeyword"]."%' )";
$strSQL1 = "SELECT * FROM ecom_count WHERE (CountName LIKE '%".$_GET["txtKeyword2"]."%' or Count LIKE '%".$_GET["txtKeyword2"]."%' )";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
?>
<table width="600" border="1">
<tr>
<th width="91"> <div align="center">CustomerID </div></th>
<th width="98"> <div align="center">Name </div></th>
<th width="198"> <div align="center">Email </div></th>
<th width="97"> <div align="center">CountryCode </div></th>
<th width="59"> <div align="center">Budget </div></th>
<th width="71"> <div align="center">Used </div></th>
</tr>
<?
while($objResult = mysql_fetch_array($objQuery))
{
?>
<tr>
<td><div align="center"><?=$objResult["CustomerID"];?></div></td>
<td><?=$objResult["CatName"];?></td>
<td><?=$objResult["StockLimit"];?></td>
<td><div align="center"><?=$objResult["CountryCode"];?></div></td>
<td align="right"><?=$objResult["Budget"];?></td>
<td align="right"><?=$objResult["Used"];?></td>
</tr>
<?
}
?>
</table>
<?
mysql_close($objConnect);
}
?>
</body>
</html>
Date :
2013-01-22 10:29:56
By :
noony
ลองเปลี่ยนจาก or เป็น and สิครับ ได้มั้ย
Date :
2013-01-22 10:32:29
By :
Ex-[S]i[L]e[N]t
<input name="txtKeyword"
<input name="txtKeyword2"
เปลี่ยน ช่อง name
แล้วก็เปลี่ยน
if($_GET["txtKeyword"] || $_GET["txtKeyword2){
}
เขียนแบบนี้ดูยากจัง อิอิ เอาเป็นว่าเขียนใหม่แหละกันดูง่ายๆ
if($_GET["txtKeyword"]){
$key1 = AND CatName LIKE '%".$_GET["txtKeyword"]."%';
}else{
$key1="";
if($_GET["txtKeyword2"]){
$key2 = AND StockLimit LIKE '%".$_GET['txtKeyword2']."%';
}else{
$key2="";
}
$strSQL = "SELECT * FROM ecom_category WHERE 1 $key1 $key2";
เขียนเป็นแนวทางคับ น่าจะปรับใช้ได้
Date :
2013-01-22 11:14:43
By :
teez1232002
<html>
<head>
<title></title>
</head>
<body>
<form name="frmSearch" method="get" action="<?=$_SERVER['SCRIPT_NAME'];?>">
<table width="599" border="1">
<tr>
<th>MID
<input name="txtKeyword2" type="text" id="txtKeyword2" value="<?=$_GET["txtKeyword2"];?>">TID
<input name="txtKeyword" type="text" id="txtKeyword" value="<?=$_GET["txtKeyword"];?>">
<input type="submit" value="Search"></th>
</tr>
</table>
</form>
<?
if($_GET["txtKeyword"] || $_GET["txtKeyword2){
$txtKeyword = AND CatName LIKE '%".$_GET["txtKeyword"]."%'; }else{ $txtKeyword="";
if($_GET["txtKeyword2"]){
$txtKeyword2 = AND StockLimit LIKE '%".$_GET['txtKeyword2']."%'; }else{ $txtKeyword2=""; }
$strSQL = "SELECT * FROM ecom_category WHERE $txtKeyword $txtKeyword2"; ?>
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
?>
<table width="600" border="1">
<tr>
<th width="91"> <div align="center">CustomerID </div></th>
<th width="98"> <div align="center">Name </div></th>
<th width="198"> <div align="center">Email </div></th>
<th width="97"> <div align="center">CountryCode </div></th>
<th width="59"> <div align="center">Budget </div></th>
<th width="71"> <div align="center">Used </div></th>
</tr>
<?
while($objResult = mysql_fetch_array($objQuery))
{
?>
<tr>
<td><div align="center"><?=$objResult["CustomerID"];?></div></td>
<td><?=$objResult["CatName"];?></td>
<td><?=$objResult["StockLimit"];?></td>
<td><div align="center"><?=$objResult["CountryCode"];?></div></td>
<td align="right"><?=$objResult["Budget"];?></td>
<td align="right"><?=$objResult["Used"];?></td>
</tr>
<?
}
?>
</table>
<?
mysql_close($objConnect);
}
?>
</body>
</html>
ERROR เตมเลย ค่ะ T_T
Date :
2013-01-22 11:43:20
By :
noony
Code (PHP)
if($_GET["txtKeyword"]){
$key1 = "AND CatName LIKE '%".$_GET["txtKeyword"]."%'";
}else{
$key1="";
}
if($_GET["txtKeyword2"]){
$key2 = "AND StockLimit LIKE '%".$_GET['txtKeyword2']."%'";
}else{
$key2="";
}
$strSQL = "SELECT * FROM ecom_category WHERE 1 $key1 $key2";
Date :
2013-01-22 12:09:17
By :
teez1232002
ผมเขียนให้ข้างบน แบบว่า ไม่ได้เช็ค error นะครับรีบๆ copy ไปต้องไปใส่ วงเล็บเอาบ้าง งั้นเอาข้างล่างไปเลยดีกว่า เขียนให้ใหม่แหละ
Date :
2013-01-22 12:10:35
By :
teez1232002
แก้ input name รึยังครับ.. ผมเห็นว่าชื่อ มันเหมือนกัน
Date :
2013-01-22 13:20:23
By :
Necrotorture
Load balance : Server 04