0

question3という名前の入力配列から情報を収集するフォームがあり、それをプロセスphpページに投稿すると、データベースのコメントフィールドに何も書き込まれませんOR爆発関数に応じて、すべてのコメントフィールドに「配列」を書き込みます.

アドバイスをいただければ幸いです。

コードは次のとおりです。

foreach ($_POST['question3'] as $key3 => $ans3) {
        $write = (explode(" ",$_POST['question3']));
        echo "</BR>";
        mysql_query("UPDATE trn SET comments = '$write' WHERE id = '$key3'");
        if (mysql_affected_rows() == 1) {
            $sql1 = "SELECT * FROM trn WHERE id = '$key3'";
            $res1 = mysql_query($sql1);
            while ($row1 = mysql_fetch_assoc($res1)) {
                $userid           = $row1['usr_id'];
                $certificate_name = $row1['certificate_name'];
                $comment = $row1['comments']; 
            } //$row1 = mysql_fetch_assoc($res1)
            if ($comment == NULL) {
                echo "Successfully updated <font color=blue>$certificate_name</font> to comments = <font color=green>y</font>";
            } else {
                $sql2 = "SELECT * FROM ex_usrs WHERE id = '$userid'";
                $res2 = mysql_query($sql2);
                while ($row2 = mysql_fetch_assoc($res2)) {
                    $fn = $row2['firstname'];
                    $ln = $row2['lastname'];
                } //$row2 = mysql_fetch_assoc($res2)
                echo "Successfully updated <font color=blue>$fn $ln</font> to comments = <font color=green>y</font>";
            }
        } //mysql_affected_rows() == 1
    } //$_POST['question'] as $key => $ans

これは、var_dump から表示されるものです。

array(4) {
    [743]=> array(1) {
        [0]=> string(5) "Mercy" 
    } 
    [748]=> array(1) { 
        [0]=> string(6) "Anelie" 
    } 
    [749]=> array(1) { 
        [0]=> string(6) "Bealah" 
    } 
    [750]=> array(1) { 
        [0]=> string(4) "Theo" 
    } 
} 

これらの値は、投稿する前のフォーム ページから取得されます。外部リンクがないイントラサイトなので、ハッキングの心配もありません。

これは、入力しようとしているフォームのセクションです。

    $sql7 = "SELECT * FROM trn WHERE course_id = '$sel_course_id' AND date_1 = '$sel_date_1' and date_2 = '$sel_date_2'";
    $res6 = mysql_query($sql7);
    while ($row6 = mysql_fetch_assoc($res6)) {
        $rowid6             = $row6['id'];
        $uid5               = $row6['usr_id'];
        $certificate_name5  = $row6['certificate_name'];
        $certificate_issued5 = $row6['certificate_issued'];
        $comm7 = $row6['comments'];
        if ($uid5 == 'x') {
            echo "<tr>";
            echo "<td>";
            $checked7 = "";
            if ($comm7 == '') {
$checked7 = "$comm7";
            } else {
                $checked7 = "$comm7";
}
            echo "<input name='question3[$rowid6][]' type='text' style='width: 675px; height: 30px;' type='text' maxlength='160' $checked7 value='$comm7' />$certificate_name5" . " - Not registered on users table";
            echo "</td>";
        } else {
            $sql8 = "SELECT * FROM ex_usrs WHERE id = '$uid5'";
            $res7 = mysql_query($sql8);
            while ($row7 = mysql_fetch_assoc($res7)) {
                $fn6 = $row7['firstname'];
                $ln6 = $row7['lastname'];
                $com7 = $row7['comments'];
            } 
            $checked8 = "$comm7";
            if ($comm7 == '') {
$checked8 = "$comm7";
            } else {
                $checked8 = "$comm7";
}
            echo "              <tr>";
            echo "                  <td>";
            echo "<input name='question3[$rowid6][]' type='text' style='width: 675px; height: 30px;' type='text' maxlength='160' $checked8 value='$comm7'/>$fn6 $ln6";
            echo "</td>";
        } 
    } 
    echo "              </tr>";
    echo "          </table>";
    echo "          </td>";
    echo "      </tr>";
    echo "      <tr>";
    echo "          <td>&nbsp;</td>";
    echo "          <td><input name='Submit1' type='submit' value='submit'></td>";
    echo "      </tr>";
    echo "  </table>";
    echo "</form>";
4

0 に答える 0