UPDATE数据库并更新where变量

时间:2013-04-22 14:37:36

标签: php mysql

我对GET功能有疑问。我目前有一个带有get动作的表单。我使用get函数在另一个页面中访问该数据。不幸的是,我的每一个值都得到了一个“错误:未定义的索引”。在阅读了类似的问题之后,我尝试使用isset(如下所示)并且它消除了错误,但我不确定我的数据是否存储在变量中,因为如果我回显了4个变量,则没有任何显示。有人能帮我推动正确的方向吗?

表单中的数据:

while($row = mysql_fetch_array($result)) {
echo "<div class=\"addform\"><form method='GET' action=\"update.php\">\n";

echo "  <input type=\"text\" value=\"".$row['tfid']."\" name=\"tfid\">\n";

echo "  <input type=\"text\" name=\"fname\"      value=\"".$row['fname']."\"/>\n";

echo "  <input type=\"text\" name=\"lname\" value=\"".$row['lname']."\"/>\n";

echo "  <input type=\"text\" name=\"hca\" value=\"".$row['hca']."\"/>\n";

echo "  <input type=\"text\" name=\"file\" value=\"".$row['file']."\"/>\n";

echo "  <input type=\"image\" src=\"images/update.png\" alt=\"Update Row\" class=\"update\" title=\"Update Row\">\n";

echo "<a href=\"delete.php?tfid=".$row['tfid']."\"><img title='Delete Row' alt=\"Delete\" class='del' src='images/delete.png'/></a></form></div>\n";

}

echo "</table><br />\n";

和检索代码:

$tfid= isset($_GET["tfid"]) ? $_GET["tfid"] : NULL;
$fname = isset($_GET["fname"]) ? $_GET["fname"] : NULL;
$lname = isset($_GET["lname"]) ? $_GET["lname"] : NULL;
$hca = isset($_GET["hca"]) ? $_GET["hca"] : NULL;
echo $tfid;
echo $fname;
echo $lname;
echo $hca;

1 个答案:

答案 0 :(得分:3)

编辑后:

发布表单代码后,我发现问题可能是输入的值可能为空,因为语法看起来或多或少是正确的。通过view-source仔细检查值,以确保其有效性。


在您修改之前:

错误正在发生,因为变量实际上是而不是设置。确保您的表单如下所示:

<form action="yourpage.php">
<input name="fname" type="text" />
<input name="lname" type="text" />
<input name="hca" type="text" />
<input name="tfid" type="text" />
</form>

如上所示,_GET变量正在查找名称属性。初学者中常见的错误(每个人都曾经犯过这种错误)是使用id代替nameid用于选择器目的,而name通常用于检索服务器端的值。

要记住的事情......

正如@George Cummins所提到的,您还应该知道$_GET参数通过URL传递,如下所示:

http://yoururl.com?var1=data1&var2=data2

在某些情况下,您可能不希望用户看到通过表单发送的所有数据,因此在这种情况下,您可能希望使用$_POST,这实际上是隐藏的传递表格的数据。实际上,这些数据并不是真正隐藏的,但它肯定比使用$_GET更隐蔽。