由于php变量,LIKE子句无法正常工作

时间:2013-04-16 07:33:31

标签: php search sql-like

这是我的代码....已尝试echo the $sql但它显示“%Search%”...但我想将其用作$Search .. plz帮助..

以下是我的整个搜索代码......

if(isset($_POST['search']))

 {

$search=$_POST['search'];

$criteria=$_POST['criteria'];

$table='alumni';

mysql_real_escape_string($search);

if($criteria=='ALL')

{

$sql="SELECT UNAME FROM `alumni` ";

$result=mysql_query($sql); 

if (!$result) {

die('Invalid query: ' . mysql_error());

}

while ($row=mysql_fetch_array($result))

{

echo"<tr><td><a>".$row['UNAME']."</a></td></tr>"; 

}

}

                                    if($criteria=='UNAME' || $criteria=='FNAME' || $criteria=='BATCH')

{

//echo $criteria;

$sql="SELECT UNAME FROM `alumni` WHERE ".$criteria." LIKE '%".$search."%'";

//echo $sql;

$result=mysql_query($sql); 

if (!$result) {

die('Invalid query: ' . mysql_error());

}

while ($row=mysql_fetch_array($result))

{

echo"<tr><td><a>".$row['UNAME']."</a></td></tr>"; 

}

}


}

?>

2 个答案:

答案 0 :(得分:2)

通过测试上面的代码似乎没有错,如果你通过search=Test得到:

SELECT UNAME FROM `alumni` WHERE FNAME LIKE '%Test%'

如果你总是得到......

SELECT UNAME FROM `alumni` WHERE FNAME LIKE '%Search%'

...无论您在搜索表单中填写的值如何,都表明该表单的工作方式存在问题,或者如何将帖子数据放在一起。您上面发布的代码虽然过时,但却可以像搜索数据库的代码一样工作。

如果您可以发布有关如何调用或使用此脚本的更多信息,您可能会从某人那里获得更准确的答案。

答案 1 :(得分:0)

如果使用双引号,则可以将变量放在字符串中而不关闭它们。

尝试:

$sql="SELECT UNAME FROM `alumni` WHERE $criteria LIKE '%$search%'";