Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用换行符搜索textarea数据的查询_Php_Mysql_Html - Fatal编程技术网

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

Php 使用换行符搜索textarea数据的查询,php,mysql,html,Php,Mysql,Html,我使用输入标签在表单中输入地址 输入表格代码: <input type="text" name="address"> 搜索地址的搜索查询没有任何问题 搜索表格代码: <input type="hidden" name="category_address" value="address"/> <select name='criteria_address'"> <option selected="selected">

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

输入表格代码:

<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>");
        }
    ?>


如果在searchword中添加了换行符,则只能获取数据库中存储了该换行符的行

一,。 如果数据库中存储了地址,如
第1街123号45镇”

然后你试着通过写
街道1

12345城镇

它们不匹配,您可能希望用
%
替换换行符以允许其他分隔符

二,。 如果您的地址存储在数据库中,如
street 1
,并且您的搜索
街道1


然后,您可能希望在搜索词上使用
trim()
,以消除多余的换行符

三,。 为避免甲壳返回问题,您可以使用
REPLACE


其中
:address
应绑定/替换为输入变量

请不要使用
mysql.*
函数来生成新代码。它们不再得到维护,社区已开始恢复。看到了吗?相反,你应该学习并使用或。如果你不能决定,将帮助你做出选择。如果你想学习,。和关于SQL注入的知识,你将有另一个改变的理由!好的……我会处理的。谢谢。实际上我想把地址和换行一起存储在db中。当我搜索它时,地址显示的是完全相同的面孔,我被输入到文本字段中的换行符@Puggan设置当它可以是一个克拉格返回字符(“\r”,CR,0x13)除了换行符/换行符(“\n”,LF,0x10),linux主要只使用“\n”,windows主要使用“\r\n”并认为mac使用“\r”作为新的字符lines@PugganSe自OSX以来,Mac一直使用unix样式“\n”。但是你是对的,我猜是“\r\n”vs“\n”打乱了搜索。对不起,请你详细说明一下,我不明白@Puggani如果要存储:A、换行符、A,则可以存储为3个字节:“A\nA”=0x410A41,或存储为4个字节:“A\r\nA”=0x410D0A41,从外观上看它们很相似,但通过数字方式比较3个字节的文本与4个字节的文本不匹配
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>
SELECT *
FROM lh_clients
WHERE
  REPLACE(adress, '\r', '') LIKE CONCAT('%', REPLACE(:adress, '\r', ''), '%');