在我们开始之前,让我告诉大家,这只是一项学校作业,我不是php和sql编码方面的专家。
我有问题,每当我执行脚本时,我都会收到以下错误:
注意:未定义的变量:团队
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将是你帮助我所需要的全部
所以,有人能告诉我如何消除这个错误,并使搜索工作。
PHP使用一个特殊的"超级全局"来访问提交的表单值。$_POST superglobal是一个数组,其键与表单元素的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']
中使用。我通过"escape"函数传递了该值,以便在该值碰巧包含特殊字符时,保护您的查询不致出错(或更糟)。