【问题标题】:How to insert value of the checkbox array into the database while the cheekboxs value also have been retrieved from the database?如何将复选框数组的值插入数据库,同时从数据库中检索到脸颊框的值?
【发布时间】:2015-01-29 18:53:38
【问题描述】:

我正在从数据库中检索查询结果。我已将记录的 id 存储到复选框数组中。 我能够成功检索数据并存储到复选框数组中。现在我想将复选框的值插入到不同的表中。在下面的代码中,我使用了 for 循环插入数据和内爆函数来检索数组元素但是当我运行这个脚本它没有显示任何错误,但数据没有插入到数据库中。 谁能告诉我我做错了什么?我该如何解决?

<?php

    $conn = mysqli_connect('localhost:3306', 'root', '', 'mydatabase');
    if($conn -> connect_errno){
        die('coudn\'t connect to the database' . mysqli_connect_error());
    }
    else{
        $query = "select * from simple";
        $result = $conn -> query($query);
            echo '<table border="1px"><tr><td>Select</td><td>ID</td><td>Name</td><td>Surname</td></tr>';
            while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
                echo '<tr>';
                echo "<td><input type=\"checkbox\" name=\"checkbox[]\" id=\"checkbox[]\"  value=\"".$row['id']."\" /></td>";                   
                echo "<td>{$row['id']}</td> "."<td>{$row['Name']}</td>"."<td>{$row['Surname']}</td>";
                echo '</tr>';
            }
            echo '</table>';
            echo "Fetched data successfully\n";
            $limit = count('$checkbox');
            echo $limit;
            for($i=0;!$limit > 0;$i++,$limit--){
                $res = implode(",", '$checkbox');
                $q1 = 'insert into joint_data values("'.$i.'","'.$res.'")';
                if($conn -> query($query) == TRUE){
                        echo "Data Entered successfully\n";
                    }
                echo $i,$res;
            }
        }
        $result->free();
    mysqli_close($conn);
  ?>

【问题讨论】:

  • 您可以简单地使用POST方法,将上述代码放入表单中,并在提交表单后获取操作页面上的复选框值
  • 但为此我必须将整个代码放入 html 并将其分解?有什么办法可以从这里做到吗??
  • 是的,如果你想使用相同的代码,你需要打破它

标签: php mysql arrays checkbox


【解决方案1】:

$conn = mysqli_connect('localhost:3306', 'root', '', 'mydatabase');
if($conn -> connect_errno){
    die('coudn\'t connect to the database' . mysqli_connect_error());
}
else{
    if(!isset($_GET['checkbox'])){
    $query = "select * from simple";
    $result = $conn -> query($query);
        echo '<form action="" method="get"><table border="1px"><tr><td>Select</td><td>ID</td><td>Name</td><td>Surname</td></tr>';
        while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
            echo '<tr>';
            echo "<td><input type=\"checkbox\" name=\"checkbox[]\"  value=\"".$row['id']."\" /></td>";                   
            echo "<td>{$row['id']}</td> "."<td>{$row['Name']}</td>"."<td>{$row['Surname']}</td>";
            echo '</tr>';
        }
        echo '<td><input type="submit" value="submit" name="submit" /></td></table></form>';
        echo "Fetched data successfully\n";
}else{
    $data = $_GET['checkbox'];
        $query = "select * from simple";
        $result = $conn -> query($query);
    $i=1;
        while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
            if (in_array($row['id'], $data)) {
        $q1 = 'insert into joint_data values("'.$i++.'","'.$row['id'].'")';
        if($conn -> query($query) == TRUE){
                    echo "Data Entered successfully\n";
                }
                echo $i,$row['id'];
    }
        }
}

$result->free();
mysqli_close($conn);

    }

【讨论】:

    【解决方案2】:

    这将是添加表单后的代码

    <?php
    $conn = mysqli_connect('localhost:3306', 'root', '', 'mydatabase');
    if($conn -> connect_errno){
        die('coudn\'t connect to the database' . mysqli_connect_error());
    }
    else
    {
        $query = "select * from simple";
        $result = $conn -> query($query);
    ?>
            <html>
            <body>
            <form name="frmedit" method="post" action="">       
            <table border="1px">
            <tr>
                <td>Select</td>
                <td>ID</td>
                <td>Name</td>
                <td>Surname</td>
            </tr>
            <?php   
            while ($row = $result->fetch_array(MYSQLI_ASSOC)) { ?>
                <tr>
                    <td>
                        <input type="checkbox" name="checkbox[]" id="checkbox[]"  value="<?php echo $row['id'];?>"/>
                    </td>                   
                    <td><?php echo $row['id'];?></td>
                    <td><?php echo $row['Name'];?></td>
                    <td><?php echo $row['Surname'];?></td>
                </tr>
           <?php } ?>
            </form>
            </body>
            </table>
           <?php echo "Fetched data successfully\n";?>
            </html>
           <?php 
            $limit = count($checkbox);
            echo $limit;
            for($i=0;!$limit > 0;$i++,$limit--){
                $res = implode(",", $checkbox);
                $q1 = 'insert into joint_data values("'.$i.'","'.$res.'")';
                if($conn -> query($query) == TRUE)
                {
                    echo "Data Entered successfully\n";
                }
                echo $i,$res;
            }
        }
    $result->free();
    mysqli_close($conn);
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-19
      • 1970-01-01
      • 1970-01-01
      • 2017-07-17
      相关资源
      最近更新 更多