簡體   English   中英

更新時未發送表單字段值

[英]Form field value not sent on update

我有一個表單,允許用戶輸入多個學生的分數並指定將記錄分數的測試(test1、test2 或 test3)。 我的查詢的回聲顯示只有第一行數據被發送到 sql update 語句,而其他數據似乎被截斷(完全切斷。)

這是我的代碼:

<?php
if (isset($_POST['submit'])) {

    # process the form
    $student_id = $_POST["student_id"];
    $subject_id = $result['subject_id'];
    $type = $_POST["type"];
    $score = $_POST["score"];

    for($i=0; $i < count($student_id); $i++) {
        $studentid = mysqli_real_escape_string($connection, $student_id[$i]);
        $subjectid = mysqli_real_escape_string($connection, $subject_id);
        $type = mysqli_real_escape_string($connection, $type);
        $score = mysqli_real_escape_string($connection, $score[$i]);

        $query = "UPDATE records SET $type='{$score}' WHERE student_id={$studentid} AND subject_id={$subjectid}";
        //$result = mysqli_query($connection, $query);
        echo $query;
    }
}
?>

例如,如果在表單中輸入值 10、11 和 12,我會從 $query 的回顯中獲得以下輸出

UPDATE records SET test1=' 10' WHERE student_id=53 AND subject_id=2
UPDATE records SET test1='1' WHERE student_id=54 AND subject_id=2
UPDATE records SET test1='' WHERE student_id=55 AND subject_id=2

和以下錯誤

注意:未初始化的字符串偏移量:2在線---- $score = mysqli_real_escape_string($connection, $score[$i]);

為什么會發生這種情況,我該如何解決?

您覆蓋數組 $score。 它應該是這樣的:

$scoreOther = mysqli_real_escape_string($connection, $score[$i]);

然后將 $scoreOther 放入查詢而不是 $score

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM