0

PHP で非常に単純な検索機能を作成しましたが、いくつか問題があります。検索機能はクエリをデータベースに送信し、結果を出力しますが、必要な結果が出力されません。ユーザー入力のようなレコードを印刷することになっていますが、すべてのレコードを印刷するだけです。

私のフォームは次のとおりです。

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
     <input  type="text" name="name"> 
     <input  type="submit" name="submit" value="Search"> 
</form>

そして、それを検索するための PHP コードは次のとおりです。

if(isset($_POST['submit'])) 
    { 
     require ('mysqli_connect.php');
     include ('config.php');

    $term = $_POST['term'];
        $q = "SELECT  name, producer, jamtypes, user FROM Jam WHERE name LIKE '%" . $term .  "%'";
        $sql = @mysqli_query ($dbc, $q);

     while ($row = mysqli_fetch_array($sql)){

        echo "<br />";
         echo 'Name: '.$row['name'];
         echo '<br/> Producer: '.$row['producer'];
         echo '<br/> Created By: '.$row['user'];
         echo '<br/> Category: '.$row['jamtypes'];
         echo '<br/>';

        }
  }

みんなありがとう

4

1 に答える 1

2

フォーム フィールドはnameではなくtermであるため、PHP は

$term = $_POST['name'];

$term値が正しくないために が空白であるため、クエリはすべての結果を返します。(クエリは次のようになりますSELECT name, producer, jamtypes, user FROM Jam WHERE name LIKE '%&'

参考までに、error_reporting をオンにして通知を報告すると、このことがわかります。すべてのエラーに関するエラー報告と表示を常に行って開発してください。

于 2013-01-06T22:15:22.667 に答える