在我们开始之前,让我告诉大家,这只是一项学校任务,而且我并不是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就是你需要的所有帮助我。
有人可以告诉我如何摆脱这个错误并使搜索工作。
答案 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']
处可以使用该表单控件中的任何内容。我通过“转义”函数传递了值,以保护您的查询免于疯狂(或更糟)如果该值恰好包含特殊字符。