0

いくつかのフィールドを持つフォームがあります。住所もその一つです。アドレスには textarea タグを使用しました。問題は、ある住所に従って何かを検索すると、1行の住所でしか機能しないことです。つまり、アドレスに改行 (段落形式) を入力すると、結果が表示されません。他のすべての検索クエリは非常にうまく機能しています。これが私のコードです。

アドレスのドロップダウン リストのコード:

<input type="hidden" name="category_address" value="address"/>
<select name='criteria_address' style="width:100px;">
    <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>");
    }
    ?>
</select>

検索クエリのコード:

if (isset($_POST['criteria_address']))
{
$category_address = $_POST['category_address'];
$criteria_address = $_POST['criteria_address'];
$query = "SELECT * FROM lh_clients WHERE $category_address = '$criteria_address' ORDER BY clientname";
$result   = mysql_query($query) or die(mysql_error());
$num_rows = mysql_num_rows($result);


while ($data = mysql_fetch_array($result)) { ?>
<tr>
<td style="vertical-align:top;"><? echo $data['clientname']; ?></td>
<td style="vertical-align:top;"><? echo $data['clienttype']; ?></td>
<td style="vertical-align:top;"><? echo nl2br($data['address']); ?></td>
<td style="vertical-align:top;"><? echo $data['contacts']; ?></td>
<td style="vertical-align:top;"><? echo $data['sensitivity']; ?></td>
<td style="vertical-align:top;"><? echo $data['acountmanager']; ?></td>
<td style="vertical-align:top;"><? echo $data['responsibleexecutive']; ?></td>
<td></td>
</tr>
<?php
}

}

アドレスの改行では検索クエリが機能しないと思います。

4

2 に答える 2

0

良い...

$order = "SELECT DISTINCT address FROM lh_clients ORDER BY clientname" or die (mysql_error());
$result = mysql_query($order);
while ($data = mysql_fetch_array($result)) {
    foreach (explode("\n", $data[address]) as $line) {
        echo ("<option value='".htmlentities($line)."'>{$line}</option>");
    }
}

テキスト列での検索に LIKE を使用してみてください

$address = trim(html_entity_decode($criteria_address));
$query = "SELECT * FROM lh_clients WHERE $category_address like '%{$address}%' or $category_address like '{$address}%' or $category_address like '%{$address}' ORDER BY clientname";
于 2012-07-19T12:34:43.893 に答える