我的问题是我无法用空格搜索。搜索字词包含在我的网址中:http://prosjektdatabasen.com/index.php?url=search&query=fish+chips 结果没有回报。只有当我用一个字时......有什么建议吗?
<form action="index.php" method="GET">
<input type="hidden" name="url" value="search" />
<input type="text" name="query" class="text" placeholder="Søk etter prosjekter.." style="height:12px;"/>
<input type="submit" value="" class="search-button" />
</form>
$query = $_GET['query'];
$min_length = 2;
if(strlen($query) >= $min_length){
$query = htmlspecialchars($query);
$query = mysql_real_escape_string($query);
$raw_results = mysql_query("SELECT *, account_created FROM users
WHERE (`username` LIKE '%".$query."%') OR (`motto` LIKE '%".$query."%')ORDER BY account_created DESC") or die(mysql_error());
$num_rows = mysql_num_rows($raw_results);
答案 0 :(得分:1)
试试这个:
$queries = explode("+", $_GET['query']);
$raw_results = mysql_query("SELECT *, account_created FROM users
WHERE (`username` LIKE '%".$queries[0] ."%') OR (`username` LIKE '%".$queries[1] ."%') OR (`motto` LIKE '%".$queries[0]."%') OR (`motto` LIKE '%".$queries[1]."%') ORDER BY account_created DESC") or die(mysql_error());
答案 1 :(得分:0)
这是URL编码和解码问题,空格和其他特殊字符将被转换为安全等价物。
您需要解码网址
<?php
$varr = preg_replace("/%u([0-9a-f]{3,4})/i","&#x\\1;",urldecode($url));
$varr = html_entity_decode($url,null,'UTF-8');
?>
<强>更新强>
$query = $_GET['query'];
echo utf8_decode(urldecode( $query));
<强>输入:强>
$query = "fish+chips";
<强>输出:强>
fish chips