使用换行符搜索textarea数据查询

时间:2012-07-18 15:54:21

标签: php mysql html

我使用输入标签在表单中输入地址。

输入表单代码:

<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>

搜索代码不起作用。标签工作正常,它会从地址列弹出数据,但不会根据该地址提供任何搜索结果。

顺便说一句,当我输入一些东西而不输入换行符时,它就可以了。 如果有人能理解我的问题,请回复。 非常感谢。

1 个答案:

答案 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应该用输入变量

绑定/替换