MySQL,PHP使用LIKE语法?

时间:2014-02-27 03:53:17

标签: php mysql

我正在尝试使用以下代码进行用户搜索:

<?php
session_start();
include("../BD/bd.php");

$searched_for = $_POST['searched_for'];
$query = @mysql_query("SELECT * FROM user_media WHERE nombre LIKE '%$searched_for%'") or die(mysql_error());

while($got_users = @mysql_fetch_array($query)){
    echo '<div class="searched-content-info">'.
         '<div class="searched-photo"><img src="'.$got_users['foto'].'"></div>
         <div class="searched-names"><h3>'.$got_users['nombre'].'</h3></div>
         <div class="searched-dates"><h3>'.'Miembro desde: '.$got_users['created_on'].'</h3></div>  
         </div> 
         <div class="divisor-search-user"></div>';
}

?>

但是我收到所有行,我只想显示搜索到的用户信息,好像$query正在接收一个干净的$searched_for

这里有什么帮助吗?顺便说一句,我在这里有点新手,请不要欺负:)。

编辑:我尝试使用$got_users['nombre'];更改$searched_for以查看$searched_for是否为空,是的,它不返回任何字符串,这就是我获取所有行的原因。 $query得到一个空变量,但为什么?

这是我的HTML:

<form target="u-n" id="search_input" action="search_user.php" method="post">
    <input id="search-input" name="searched_for" type="search" placeholder="Search">
</form>

1 个答案:

答案 0 :(得分:1)

您使用了<input type="search" /> HTML5功能。较旧的浏览器可能不支持此功能。将此输入替换为type="text"

然后,您的$_POST['searched_for']应正确填充,即:

<input name="searched_for" type="text" placeholder="Search" />

此外,您多次使用相同的id,这是一种无效的HTML语法。

参考:HTML input tag at MDN