2013-08-07 43 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