创建数组不像我想象的那样工作

时间:2015-04-08 20:25:55

标签: php arrays mysqli

我对阵列感到非常困惑,我希望有人可以帮助我。

我试图将用户选择的各种图片存储在mysql数据库中(一次最多可选择3张图片)。选择实际上是每张图片下面的复选框,我想将这些选项存储为$ pic_id' s。

这些选择存储在我的数据库中,但似乎没有像我预期的那样分配键,我似乎无法使用它们。

我希望能够使用图片ID来显示所做的选择。

这是我的结果: [7] => 11,6 [8] => 9,8

但我需要单独获取这些变量。 我希望这个: [7] => 11,[8] => 6,[8] => 9,[9] => 8

表格:

 <form action="insert.php" method="GET">
    <?php
    <input type=\"checkbox\" name=\"pic_id[]\" value=".$row['id'].">
    <input type="submit" name="submit" value="Add" />
    ?>

insert.php

$checkBox = implode(',', $_GET['pic_id']);
if (isset($_GET['submit'])) {
$sql="INSERT INTO pics (pic_id) VALUES ('" . $checkBox . "')"; 

打印阵列

<?php
    $sql="SELECT * FROM pics";
    $query = mysqli_query($conn, $sql);
    $myArray = Array();
    while($row = mysqli_fetch_array($query, MYSQLI_ASSOC)){
    $myArray[]=$row['pic_id'];  
    }
 print_r($myArray);
?>

见上面的结果。

1 个答案:

答案 0 :(得分:0)

只需将值插入数据库时​​将它们连接起来即可。然后遍历结果并将它们添加到数组中。

<?php
    $sql="SELECT * FROM pics";
    $query = mysqli_query($conn, $sql);
    $myArray = array();
    while($row = mysqli_fetch_array($query, MYSQLI_ASSOC)){
        foreach(explode(',', $row['pic_id']) as $id) {
            $myArray[]= $id;  
        }
    }
 print_r($myArray);
?>