php - 使用复选框从表中选择多行

标签 php html mysql sql checkbox

我正在尝试将复选框用于带有 SELECT 的多个 sql 查询。

我有 3 个表,一张用于,一张用于用户,另一张用于将用户连接到名为 groupreluser 的不同组。根据选中的组,我希望它打印出属于这些组的每个用户的电话号码。

复选框是根据表 groups 的内容创建的

<form method="post">
<?php
$sql = "SELECT * FROM groups WHERE groupname LIKE '%minor%'";
    $result = $conn->query($sql);

    if($result->num_rows > 0){

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

                    echo '<input type="checkbox" name="checked[]" value="'.$row['group_id'].'">'
                    . $row['groupname'] . '</br>';

            }

    }
?>
 <input type="submit" name="submit" value="submit">
</form>

使用 sql 查询编写代码以获取电话号码。

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

    $check = $_POST['checked'];

    if(!empty($check)){


            foreach($check as $sel){
                    $sel = mysqli_real_escape_string($conn, $sel);


                    $sql = "

                            SELECT
                                    groups.group_id,
                                    groups.groupname,
                                    groupreluser.user_id,
                                    groupreluser.group_id,
                                    users.user_id,
                                    users.name,
                                    users.phone
                            FROM
                                    groupreluser
                            JOIN
                                    groups
                            ON
                                    groups.group_id = groupreluser.group_id
                            JOIN
                                    users
                            ON
                                    users.user_id = groupreluser.user_id
                            WHERE 
                                    groups.group_id = '$sel'

                    ";

                    $res = $conn->query($sql);

                    if($res->num_rows > 0){

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

                                    echo $row['phone'] . '</br>';

                            }

                    }
            }
    }
}

只要我不使用复选框就可以正常工作,而是在 SELECT 语句中手动添加 group_id。知道为什么这不起作用吗?我错过了什么吗?不知道这是否是最好的方法...... 如果不清楚,请告诉我,我会尽力解释得更好

最佳答案

这一行可能不起作用: $check = mysqli_real_escape_string($conn, $_POST['checked']);

$_POST['checked'] 是一个数组。因此,您必须为数组中的每一项执行上面的行。

关于php - 使用复选框从表中选择多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40225357/

相关文章:

php - 在php中获取主站点文件夹路径

html - CSS悬停在特定位置显示文本

javascript - 动态评论功能代码

WAMP 中的 phpmyadmin 错误 #1045 - 需要重置密码

javascript - @angular/flex-layout 'space-between' 布局

html - 固定 Div 窗口的长度

mysql - SQL 中点与线的空间交集

mysql - 如何自动填充 sqlalchemy 列的值

mysql - 获得具有流派和类型转换的电影输出

php - 检查字符串以查看特定分组是否存在(PHP)?