PHP 复选框值到 MYSQL 无限循环问题

我想使用复选框对我的网站上的个人资料进行设置。这些复选框也有效,但我不断收到此错误:Fatal error : Uncaught mysqli_sql_exception: Column 'match_role_id' cannot be null

这可能是因为应在其中输入值的表是一个临时表,其中包含来自其他两个表的两个 ID。如果我将这两个值的默认值设置为NULL,则会出现无限循环。

https://img1.mukewang.com/65041de00001bab105290219.jpg

我怎样才能解决这个问题?


功能:


function add_team_match_role() {


    global $connection;


    if(isset($_POST['add_match_roles'])) {


        $match_role_checkbox = $_POST['match_role_check'];

        $team_id = escape($_POST['team_id']);


        for($i = 0; $i < $match_role_checkbox; $i++) {


            $team_id = escape($_POST['team_id']);


            $stmt = $connection->prepare("INSERT INTO game_role_team (match_role_id, team_id) VALUES (?, ?)");

            $stmt->bind_param("ss", $match_role_checkbox[$i], $team_id);

            $stmt->execute();

            $stmt->close();


        }

    }

}

HTML:


<div class="form-group">

    <label for="match_role">Match Rollen</label>

        

    <?php 

        $stmt = $connection->prepare("SELECT * FROM game_role");

        $stmt->execute();

        $result = $stmt->get_result();

        while($row = $result->fetch_assoc()) {


            $match_role_id = $row['match_role_id'];

            $match_role_name = $row['match_role_name'];


            echo "<div class='form-check'>

                  <input class='form-check-input' type='checkbox' name='match_role_check[]' value='$match_role_id'>

                  <label class='form-check-label'>$match_role_name</label>

                  </div>";


        }


        $stmt->close();

    ?>


</div>


慕村225694
浏览 71回答 1
1回答

白板的微信

当未设置复选框时,则为$_POST['add_match_roles'][$i]NULL。但不允许插入 NULL 或空字符串,因为该字段是整数。通过验证“set and notempty”来检查角色是否被检查(因为该值为“on”)。如果为空,则在检查时给出零或一。$isChecked&nbsp;=&nbsp;(int)&nbsp;!empty($_POST['add_match_roles'][$i]);还将类型从字符串更正为整数$stmt->bind_param("is",&nbsp;$isChecked,&nbsp;$team_id);注意:如果您只需要一个布尔值(true=1,false=0),请使用 TinyInt(1) UNSIGNED。
打开App,查看更多内容
随时随地看视频慕课网APP