0

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

输入表格代码:

<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 name="address"></textarea>

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

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

4

1 回答 1

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应该在哪里绑定/替换为输入变量

于 2012-07-18T16:15:55.783 回答