注意:未定义的变量:团队

时间:2012-08-27 06:30:07

标签: php sql

在我们开始之前,让我告诉大家,这只是一项学校任务,而且我并不是php和sql编码方面的专家。

我遇到了问题,每当我执行脚本时,都会收到以下错误:

  

注意:未定义的变量: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就是你需要的所有帮助我。

有人可以告诉我如何摆脱这个错误并使搜索工作。

1 个答案:

答案 0 :(得分: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']处可以使用该表单控件中的任何内容。我通过“转义”函数传递了值,以保护您的查询免于疯狂(或更糟)如果该值恰好包含特殊字符。