1

这是我的代码....尝试过echo the $sql但它显示' %Search%'...但我想将它用作$Search..请帮助...

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

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>"; 

}

}


}

?>
4

2 回答 2

2

通过测试上面的代码似乎没有什么问题,如果你通过了,search=Test你会得到:

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

如果你总是得到...

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

...无论您在搜索表单中填写的值如何,都表明该表单的工作方式或发布数据的组合方式存在问题。您在上面发布的代码虽然已经过时,但可以按照您对搜索数据库的代码的预期工作。

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

于 2013-04-16T07:51:15.180 回答
0

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

尝试:

$sql="SELECT UNAME FROM `alumni` WHERE $criteria LIKE '%$search%'";
于 2013-04-16T07:49:21.587 回答