我使用输入标签在表单中输入地址。
输入表单代码:
<input type="text" name="address">
和搜索地址的搜索查询,没有任何问题
搜索表单代码:
<input type="hidden" name="category_address" value="address"/>
<select name='criteria_address'">
<option selected="selected"> </option>
<?php
$order = "SELECT DISTINCT address FROM lh_clients ORDER BY clientname" or die (mysql_error());
$result = mysql_query($order);
while($data = mysql_fetch_array($result))
{
echo ("<option> $data[address] </option>");
}
?>
搜索结果显示代码:
if(isset($_POST['criteria_address']))
{
$category_address = $_POST['category_address'];
$criteria_address = $_POST['criteria_address'];
$query = "SELECT * FROM lh_clients WHERE $category_address LIKE '%".$criteria_address."%'";
echo "<tr><td colspan='8'>$num_rows Results Found</td></tr>";
while($data = mysql_fetch_array($result))
{
echo("<tr>
<td>$data[clientname]</td>
<td>$data[clienttype]</td>
<td>$data[address]</td>
<td>$data[contacts]</td>
<td>$data[sensitivity]</td>
<td>$data[acountmanager]</td>
<td>$data[responsibleexecutive]</td>
</tr>");
}
但现在当我更换输入标签并使用标签代替它时
textarea代码:
<textarea name="address"></textarea>
搜索代码不起作用。标签工作正常,它会从地址列弹出数据,但不会根据该地址提供任何搜索结果。
顺便说一句,当我输入一些东西而不输入换行符时,它就可以了。 如果有人能理解我的问题,请回复。 非常感谢。
答案 0 :(得分:0)
如果您在搜索字词中添加换行符,则只会获得包含该换行符的行。
1。
如果地址存储在数据库中,如
“street 1, 123 45 town
”,
你试着通过写作来搜索它
“street 1
123 45 town
“
它们不匹配,您可能希望用%
替换换行符以允许其他分隔符。
2。
如果您的地址存储在数据库中,例如street 1
,那么您搜索的是
“street 1
“
那么您可能希望在搜索词上使用trim()
来删除额外的换行符
3。
为避免崩溃返回问题,您可以使用REPLACE
SELECT *
FROM lh_clients
WHERE
REPLACE(adress, '\r', '') LIKE CONCAT('%', REPLACE(:adress, '\r', ''), '%');
其中:adress
应该用输入变量