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 ステートメントを確認してください。間違っているように見えます。また、SQL 文字列内の値ではなく生の '$resultID' を SQL 文字列に書き込んでいるように見えます。

ここでそれを行う方法を参照してください: http://www.talkphp.com/general/1062-securing-your-mysql-queries-sprintf.html

于 2013-04-17T16:30:21.447 に答える