我用一行数据填充一个Web表单。我需要更新某些字段,因此我将值放入文本字段。 MySQL查询是:
SELECT * FROM results WHERE EventID = %s AND CompNo = %s", GetSQLValueString($colname_rsResults, "int"),GetSQLValueString($colname2_rsResults, "int"));
在URL中传递EventID和CompNo。
假设结果是50行。我希望能够更新名称字段(例如,对拼写进行更正),单击按钮并让代码使用任何新值更新数据库。大多数值都不会改变并不重要,因为这是一种非常罕见的操作。
我曾经能够在ASP中做到这一点,但我似乎无法在PHP中做到这一点。
这是我正在使用的代码,我认为这是完全错误的!
if ((isset($_POST["JM_update"])) && ($_POST["JM_update"] == "form1")) {
$i = 0;
$j = $totalRows_rsResults;
while($i < $j)
$resultID=$_GET['ResultID'];
$vDelete=$_GET['Del'];
if ($vDelete == 1) {
$delSQL = sprintf("DELETE FROM Results WHERE ResultID=$resultID");
mysql_query($delSQL,$connFeisResults);
} else {
$name=$_GET['Name'];
$qual=$_GET['Qual'];
$updateSQL = sprintf("UPDATE results SET Name = ".$name{$i}.", Qual = ".$qual[$i]." WHERE ResultID=$resultID");
mysql_query($updateSQL, $connFeisResults);
$i++;
}
}
每行末尾还有一个复选框,用于检查是否需要删除该记录。这也不起作用!!
我正在使用Dreamweaver CS6并尝试调整更新行为等。
有什么想法?非常感谢提前。
答案 0 :(得分:0)
在你的while语句之后看起来你错过了一个大括号。
- 更新
另外,检查你的sprintf语句 - 它们看起来不对,看起来它们正在将原始的'$ resultID'写入SQL字符串,而不是其中的值。
在此处查看如何操作:http://www.talkphp.com/general/1062-securing-your-mysql-queries-sprintf.html