使用清单&无线电将信息输入数据库

时间:2012-12-16 08:09:28

标签: php

所以基本上我想要做的是获取所选的清单元素并将它们的“名称”发送到数据库。我也想对收音机做同样的事情。这是代码:

<?php       
        $user_files_directory = 'uploads/unused_images/'.$_SESSION['user_id'].'/';

        if (file_exists($user_files_directory)) {

        $dir_handle = @opendir($user_files_directory); 

        while ($file = readdir($dir_handle)) { 

        if($file == "." || $file == ".." || $file == "index.php" ) 

        continue; 

            echo "
            <div id=\"image_container\">
                <div id=\"unused_images_selector\">
                    <img src=\"uploads/thumbs/unused_images/".$_SESSION['user_id']."/$file\" alt=\"Test\">
                </div>
                <div id=\"checkbox\">
                        <input type=\"checkbox\" name=\"$file\">
                </div>
            </div>
            "; 
        }
        // Close 
        closedir($dir_handle); 

        } else {
            echo    "<p>
                        You have not uploaded any images.
                    </p>";
        }
    ?>

此帖子存在:

$file = $_POST['file'];

以下是其余部分:

function create_new_page($page_name, $album_name, $file, $file1, $file2) {
        $page_name = mysql_real_escape_string(htmlentities($page_name));
        mysql_query("INSERT INTO `pages` VALUES ('', '$album_name', '".$_SESSION['user_id']."', UNIX_TIMESTAMP(), '$page_name', '$file2', '$file3', '$file')");
        return mysql_insert_id();
    }

除了收音机/清单之外的所有内容都有效,非常感谢任何帮助,我知道代码可能不是最好的,但那是因为我没有做太多的PHP,只是想要一些有效的代码,所以现在不要太担心关于这里和那里的问题。

EXTRA:$ file是放置在页面中的图像的名称(它是用户想要使用的图像的选择区域),所以我希望使用$ file它会创建MYSQL数据库中的映像名称,但它写入“array”。

1 个答案:

答案 0 :(得分:0)

您误解了HTML表单的工作方式以及在PHP中提取它的方法。 您正在将name属性设置为实际文件名( not “file”)并尝试提取名为file的POST参数。执行此操作的方法是将复选框命名为file[](如在文件数组中),并将value属性设置为文件名。您的PHP代码可能保持不变。

修改您的复选框代码,如下所示:

<div id=\"checkbox\">
        <input type=\"checkbox\" name=\"file[]\" value=\"$file\" />
</div>

由于您已经拥有以下内容:

$file = $_POST['file'];

$file将为您提供一系列文件名。然后,您可以根据需要处理该数据。

编辑:由于OP修改了问题。

您希望将多个图像名称存储到数据库中,因此您需要触发多个INSERT语句。您可以循环访问$file变量并构建查询。

使用以下几行:

$mysqli = new mysqli("localhost", "dbuser", "dbpassword", "dbname");

if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

foreach ($file as $filename) {
    $query = $mysqli->prepare("INSERT INTO tblImages vcImageName VALUES (?)");
    $query->bind_param("s", $filename);
    $query->execute();
    $query->bind_result($result);
    $query->fetch();
    $query->close();
}

$mysqli->close();