0

以下是我的 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 级、测试 o 级等。

好吧,但是如果我搜索ac OR te之类的东西,那么它不会显示任何结果。我需要如果我搜索acte或其他东西,那么它会显示一些结果..

提前致谢:)

4

4 回答 4

1

use this line to

  if($numserach > 0)
  {.....

instead of

  if($numserach == 1)
  {.....
于 2012-07-03T07:28:28.560 回答
1

正如其他人已经提到的那样,您的问题是通过替换

if($numserach == 1)

if($numserach > 0)

很重要 :

作为提倡更好实践的一种方式,对于 OP 的数据库处理非常糟糕的每个问题,我都会这样做。

请花点时间阅读这篇关于如何使用 PDO 的精美教程。当您的项目被黑客入侵时(如果这是专业工作),您将避免未来的尴尬,并且您将学习新事物来保护自己并为自己提供更好的机会来提高应用程序的性能。

于 2012-07-03T07:36:25.130 回答
1

代替

if($numserach == 1)

if($numserach > 0)

因为目前您仅在找到一个术语时才显示结果。如果找到多个,则不会显示任何结果。

于 2012-07-03T07:40:13.510 回答
0

将以下指令更改为最新:

if($numserach == 1) --> if($numserach >0) 

并重新执行脚本。

于 2012-07-03T07:34:10.687 回答