2014-02-27 40 views
0

我試圖與下面的代碼在用戶搜索:使用LIKE語法的MySQL,PHP?

<?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> 
+4

甚至不知道從這裏開始... – zerkms

+0

嘗試改變'$ searched_for = $ _ POST [ 'searched_for'];''到$ searched_for = $ _REQUEST [ 'searched_for' ];'然後谷歌關於SQL注入 –

+0

檢查您的窗體中'search_for'字段的名稱。檢查案例。 –

回答

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