[英]mysql select query search one word in multiple columns
Help is required. 需要帮助。 i am preparing a search form.
我正在准备一个搜索表单。 need help in select query is it possible that i can search "building" word in all columns of my table following is the query i've tried.
在select查询中需要帮助我可以在我的表的所有列中搜索“构建”单词以下是我尝试过的查询。
$search = $_POST['search'];
$sql = mysql_query("SELECT * FROM property WHERE posthead,requestto,ptype,requestby,owner,bed,bath,price,sqft,descp = '".$search."'");
$result = (mysql_fetch_array($sql));
echo "Post Head : ". $result['posthead']."<br />";
echo "Request To : ". $result['requestto']."<br />";
echo "Type : ". $result['ptype']."<br />";
echo "Request By : ". $result['requestby']."<br />";
echo "Owner : ". $result['owner']."<br />";
echo "Bed : ". $result['bed']."<br />";
echo "Bath : ". $result['bath']."<br />";
echo "Price : ". $result['price']."<br />";
echo "Sq ft. : ". $result['sqft']."<br />";
echo "Description : ". $result['descp']."<br />";
$sql = mysql_query("SELECT * FROM property WHERE posthead = '".$search."' OR requestto= '".$search."' OR ptype= '".$search."' OR requestby = '".$search."' OR owner= '".$search."' OR bed = '".$search."' OR bath= '".$search."' OR price= '".$search."' OR sqft,descp = '".$search."'");
and change $result = (mysql_fetch_array($sql));
并更改
$result = (mysql_fetch_array($sql));
to $result = (mysql_fetch_assoc($sql));
to
$result = (mysql_fetch_assoc($sql));
NOTE : 注意 :
TRY THIS: 尝试这个:
Better is to use "CONCAT"
for the columns: 更好的是使用
"CONCAT"
作为列:
$sql = mysql_query("SELECT * FROM property WHERE CONCAT(posthead,requestto,ptype,requestby,owner,bed,bath,price,sqft,descp) LIKE "%.$search."%'");
$ sql = mysql_query(“SELECT * FROM property WHERE CONCAT(posthead,requestto,ptype,requestby,owner,bed,bath,price,sqft,descp)LIKE”%。$ search。“%'”);
OR
will work but CONCAT
can reduce query size. OR
可以工作,但CONCAT
可以减少查询大小。
尝试SELECT * FROM property WHERE posthead = $search OR requestto = $search ...
等
Since you are creating a searching form you might want to be able to find records by partial match and not exact word. 由于您要创建搜索表单,因此您可能希望能够通过部分匹配而不是确切的单词来查找记录。 In order to do that you can use
LIKE
为此,您可以使用
LIKE
$q = "SELECT * FROM property
WHERE posthead LIKE '%$search%' OR
requestto LIKE '%$search%' OR
ptype LIKE '%$search%' OR
requestby LIKE '%$search%' OR
owner LIKE '%$search%' OR
bed LIKE '%$search%' OR
bath LIKE '%$search%' OR
price LIKE '%$search%' OR
sqft LIKE '%$search%' OR
descp LIKE '%$search%'";
$sql = mysql_query($q);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.