1

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

<?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,只是想要一些工作代码,所以现在不太担心这里的问题在那里。

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

4

1 回答 1

0

您误解了 HTML 表单的工作原理以及在 PHP 中提取它的方式。您正在将name属性设置为实际文件名(不是“文件”),并尝试使用 name 提取 POST 参数file。这样做的方法是命名复选框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();
于 2012-12-16T08:23:51.423 回答