以下是我的search.php代码:
<?php
if(isset($_POST['action']) && $_POST['action'] == "Search Question")
{
$search = mysql_real_escape_string(trim(htmlspecialchars($_POST['search'])));
$err = array();
if(isset($search))
{
if(empty($search))
$err[] = "Please write your question name";
elseif(is_numeric($search))
$err[] = "Wrong values entered";
}
if(!empty($err))
{
foreach($err as $er)
{
echo "<font color=red>$er<br/></font>";
}
}
else
{
$search_sql = mysql_query("SELECT * FROM questions WHERE q_name LIKE '%$search%'");
//$search_sql = mysql_query("SELECT * FROM questions WHERE MATCH(q_name, answer) AGAINST '$search' ");
$numserach = mysql_num_rows($search_sql);
if($numserach == 1)
{
echo "<font color='green'><strong>$numserach Question found</strong></font><br/>";
while($result = mysql_fetch_array($search_sql))
{
$subid = $result['sub_id'];
$id = $result['id'];
$qquestionsname = $result['q_name'];
////////////////////////////////////////////////// SEARCH SHOW START HERE ///////////////////////
//include("toppagi.php");
$questions = $result['q_name'];
echo "<a href='answerdetails.php?id=$id&subid=$subid&questionname=$qquestionsname'>$questions</a><br/>";
//include("bottompagi.php");
////////////////////////////////////////////////// SEARCH SHOW END HERE ///////////////////////
}
}
else
{
echo "<font color=red>No Result Found</font>";
}
}
}
?>
在我的数据库中,我正在尝试搜索存储了所有问题名称的“q_name”。喜欢..会计,书籍,O水平,测试水平等。
好吧,但如果我搜索 ac 或 te 之类的内容,则它不会显示任何结果。如果我搜索 ac 或 te 或其他内容,我需要显示某些结果..
先谢谢:)
答案 0 :(得分:1)
使用此行
if($numserach > 0)
{.....
而不是
if($numserach == 1)
{.....
答案 1 :(得分:1)
正如其他人已经提到的那样,通过替换
来解决您的问题if($numserach == 1)
与
if($numserach > 0)
非常重要:
我在OP的数据库处理严重不好的每个问题上都这样做,以此作为倡导更好实践的一种方式。
请花些时间阅读this fine tutorial有关如何使用PDO的信息。 当你的项目被黑客攻击时(如果这是专业工作),你将为自己避免未来的尴尬,并且你将学到一些新东西来保护自己,并给自己一个更好的机会来提高你的应用程序的性能。
答案 2 :(得分:1)
替换
if($numserach == 1)
与
if($numserach > 0)
因为目前只显示结果,如果只找到一个术语。如果找到多个,则不会显示任何结果。
答案 3 :(得分:0)
将以下说明更改为最新:
if($numserach == 1) --> if($numserach >0)
并重新执行脚本。