PHP - 从Web表单更新MySQL表中的每一行

时间:2013-04-17 16:10:45

标签: php mysql sql-update

我用一行数据填充一个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并尝试调整更新行为等。

有什么想法?非常感谢提前。

1 个答案:

答案 0 :(得分:0)

在你的while语句之后看起来你错过了一个大括号。

- 更新

另外,检查你的sprintf语句 - 它们看起来不对,看起来它们正在将原始的'$ resultID'写入SQL字符串,而不是其中的值。

在此处查看如何操作:http://www.talkphp.com/general/1062-securing-your-mysql-queries-sprintf.html