-1

始める前に、これは単なる学校の課題であり、私は PHP および SQL コーディングの専門家ではないことをお知らせします。

スクリプトを実行するたびに、次のエラーが表示されます。

Notice: 未定義の変数: Team in C:\xampp\htdocs\NFL\searchmatches.php on line 30.

私の理解では、スクリプトとフォーム ファイルの間のリンクにスペル ミスがあるはずですが、問題が見つからないようです。

これは、データベースを検索するためのファイルです: スクリプト:

 <?php
    mysql_connect("localhost","root","0gd1d0wgpg") or die(mysql_error());
    mysql_select_db("NFL") or die(mysql_error());
    $query=mysql_query("SELECT * FROM Matches where Team ='$Team'") or die(mysql_error());
    $numfields = mysql_num_fields($query);
    print("<table border=\"1\">\n<tr>\n");
    for ($i=0; $i<$numfields; $i++) {
      printf("<th>%s</th>\n", mysql_field_name($query,$i));
    }
    print("</tr>\n");
    while ($row = mysql_fetch_row($query)) {
      print("<tr>\n");
      for ($i=0; $i<sizeof($row); $i++) {
         printf("<td>%s</td>\n", $row[$i]);
      }
      print("</tr>\n");
    }
    print("</table>\n");
    ?>

形:

<form name="addmatch" method="post" action="searchmatches.php">
Search for the match history of a particular team here.<br>
<br>
Team Name: <input type="text" name="Team_Name" value="Team Name">
<br>
<br>
<input type="submit" value="Search">
</form>

はい、実際のファイルにはさらに多くのコーディングがありますが、PHP だけで十分だと思いました。

誰かがこのエラーを取り除き、検索を機能させる方法を教えてください。

4

1 に答える 1

3

PHP は特別な「スーパー グローバル」を使用して、送信されたフォームの値にアクセスできるようにします。$_POST スーパーグローバルは、フォーム要素の name 属性に一致するキーを持つ配列です (フォームが「post」メソッドで送信された場合)。次の行を追加します。

$Team = mysql_real_escape_string($_POST['Team_Name']);

クエリでの $Team の使用の上。

要約すると、'Team_Name' 識別子は HTML から取得されます。

<input type="text" name="Team_Name" value="Team Name">

フォームが送信されると、そのフォーム コントロールに入力したものはすべて で利用できます$_POST['Team_Name']。「エスケープ」関数を介して値を渡したので、その値に特殊文字が含まれていた場合にクエリがおかしくなる(またはさらに悪化する)のを防ぐことができます。

于 2012-08-27T06:37:48.870 に答える