-1

自分のサイトでの検索に問題があります。このエラーが表示される理由がわかりません

これは私のフォームコードです

<form action="index.php?cat=search_results&learn_id=1" method="post">
      <div id="topSearchBodyStyle">
        <input type="text" name="search" class="topSearchTextBackground" />
      </div>
      <div id="topSearchButtonStyle">
        <input type="submit" name="submit" class="topSearchButtonBackground" value="" />
      </div>
    </form>

これはphpコードを含むページです

<?php 

    $getSearch = $_POST['search'];
    trim($getSearch);

    if(!get_magic_quotes_gpc()) {
        $getSearch = addslashes($getSearch);
        }

    $connectToDb = "select * from tutorials where tutorial_title like '%.$getSearch.%'"; 
    $searchResults = $db->query($connectToDb) or die($db->error);
    if ($searchResults){
        $numResultas = $searchResults ->num_rows;
        echo "<p>Found : " . $numResultas . "</p>";
        while($row = mysqli_fetch_array($searchResults)) {

            echo $row['tutorial_title'];    
        }
    }else{
        echo "cant connect";
        }
?>

「未定義のインデックス:検索」に関するこのメモが表示される理由と、結果が「0」になる理由

4

1 に答える 1

1

あなたが与えたコード例から、あなたが得ている理由はわかりませんが、それが実際に設定されUndefined index: searchていると確信していますか?$_POST['search']これがフレームワークまたは他のプロジェクトの一部である場合、$_POSTと$_GETの設定が解除されているものを見たことがあり、別の方法でそれらにアクセスする必要があります。

未定義のインデックスエラーがコードの別の行から発生している可能性はありますか?

を介して値を取得している場合$_POST['search']、結果が0になる理由は、SQLステートメントにエラーがあるためです。

する必要があります:"select * from tutorials where tutorial_title like '%".$getSearch."%'"

mysql_real_escape_string最後に、 addslashesの代わりに、またはより適切でまだ準備されたステートメントを使用する必要があります。

于 2012-04-06T15:27:48.717 に答える