2013-08-07 76 views
-1

我有代碼從PHP數據庫中獲取信息,然後我想比較$ username變量與這些信息與strpos()函數...但它不工作.. 我能做些什麼?mysql_fetch_array strpos()函數

$username = $_GET['username']; 
$connection = new DB_Database(); 
$res = $connection->Select(); 
if ($res) { 
$output = ""; 
while ($row = mysql_fetch_array($res)) { 
    if (strpos((string)$row['username'], $username)) { 
     $output.=" " . $row["username"] . " "; 
    } 

echo $output; 
+2

「它不起作用」不是一個有效的問題描述。 – PeeHaa

+3

爲什麼不作爲SQL查詢的一部分進行比較?另外,你是否簡單地忘記了'== 0'和'=== false'之間的區別,如'strpos'的手冊頁所述? – deceze

回答

1

我不知道爲什麼你正在使用strpos,而不是與==直比較,但是這個代碼不如果$row['username'] == $username正常工作。

的原因是,在這種情況下strpos將返回0,其計算結果爲false - 看到在documentation page巨型紅色警告。

+0

我想在「mikes peters」中找到類似「mik」的東西。我有數據庫有一個名爲「用戶名」的行,我想用它中的字符串搜索名稱。這就是使用strpos()的原因() –

+0

@PouyanIzadi:在這種情況下'strpos(...)!==假'會工作。但是,這將是一個非常糟糕的實現搜索的方式 - 將篩選邏輯移入SQL,而不是像WHERE username LIKE%:param%'。 – Jon