0

HTML フォームを使用して、クライアント データベースからデータを取得しようとしています。

データベースからデータを収集して回答を返すためのこのphpコードである、私のコードの何が問題なのか誰にでも教えてもらえますか。私はhtml/phpに非常に慣れていないので、助けていただければ幸いです。

   <?php
      echo $_POST['term']; 
mysql_connect ("localhost", "root","")  or die (mysql_error());
 mysql_select_db ("client");
 $term = $_POST['term'];
 $sql = mysql_query("select * from `client` where first_name like '%".mysql_real_escape_string($term)."%'");
while ($row = mysql_fetch_array($sql))
{
    echo 'ID: '.$row['ID'];
    echo '<br/> First Name: '.$row['first_name'];
    echo '<br/> Last Name: '.$row['last_name'];
    echo '<br/> Phone: '.$row['Phone'];
    echo '<br/><br/>';
    }




?>

    </body>
</html>

注意: 未定義のインデックス: C:\xampp\htdocs\getdata.php の 19 行目の用語

注意: 未定義のインデックス: C:\xampp\htdocs\getdata.php の 22 行目の用語

警告: mysql_fetch_array() は、パラメーター 1 がリソースであると想定します。24 行目の C:\xampp\htdocs\getdata.php で指定されたブール値です。

まだ上記の通知を受け取っています

4

3 に答える 3

2

ppeterka のソリューションに加えて、while ループを閉じる直前に引用符とセミコロンがありません。

echo '<br/><br/>
}

読むべき

echo '<br/><br/>';
}
于 2013-03-14T16:06:55.617 に答える
2

これはあなたの差し迫った問題です:

$sql = mysql_query("select * from 'client' where first_name like '%$term%'");

テーブル名の引用符clientが正しくありません。これにはバックティックを使用します。

$sql = mysql_query("select * from `client` where first_name like '%$term%'");

そして、あなたは自分自身を守るべきです:

$sql = mysql_query("select * from `client` where first_name like '%".mysql_real_escape_string($term)."%'");

しかし、真剣に、SQL インジェクションについて読むことを約束し、mysql_ 関数をもう使用しないでください!

PDOを使用してください

これらを読んでください:

于 2013-03-14T16:02:50.533 に答える
0

こんにちは、簡単に見てみると、エラーはMySQLクエリ自体にあると言えます。テーブル名を一重引用符で囲んでいますが、それは正しくないと思います。引用符をまったく使用しないか、単一の「逆引用符」またはあなたがそれを呼ぶものを使用してみてください - 記号: `

于 2013-03-14T16:03:41.983 に答える