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 に答える