0

我用多行数据填充了一个 Web 表单。我需要更新一些字段,因此我将值放入文本字​​段中。MySQL查询是:

SELECT * FROM results WHERE EventID = %s AND CompNo = %s", GetSQLValueString($colname_rsResults, "int"),GetSQLValueString($colname2_rsResults, "int"));

EventID 和 CompNo 在 URL 中传递。

假设结果是 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 并尝试调整更新行为等。

有什么想法吗?提前谢谢了。

4

1 回答 1

0

看起来您在 while 语句之后缺少一个左大括号。

- 更新

另外,检查您的 sprintf 语句——它们看起来有问题,并且它们看起来像是将原始的“$resultID”写入 SQL 字符串,而不是其中的值。

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

于 2013-04-17T16:30:21.447 回答