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

交換

if($numserach == 1)

if($numserach > 0)

現時点では、用語が1つだけ見つかった場合にのみ結果を表示しているためです。複数検出された場合、結果は表示されません。

于 2012-07-03T07:40:13.510 に答える
1

この行を使用して

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

それ以外の

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

他の人がすでに述べたように、置き換えることによるあなたの問題

if($numserach == 1)

if($numserach > 0)

非常に重要:

私は、より良い実践を提唱する方法として、OPのデータベース処理がひどく悪いすべての質問に対してこれを行います。

少し時間を取って、PDOの使用方法に関するこのすばらしいチュートリアルを読んでください。プロジェクトがハッキングされたときの将来の困惑を軽減し(これが専門的な作業であった場合)、自分自身を保護し、アプリケーションのパフォーマンスを向上させる可能性を高めるための新しいことを学びます。

于 2012-07-03T07:36:25.130 に答える
0

以下の手順を最新のものに変更してください。

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

スクリプトを再実行します。

于 2012-07-03T07:34:10.687 に答える