0

我是 PHP 新手,我是学生。我正在为在线酒店网站做我的项目,我必须在其中创建一个用于管理控制的后端和一个前端。我已经创建了几乎所有内容,但是从数据库中动态添加的文件夹中检索图像几乎没有问题。我有一个名为 'hotel' 的表,其中包含许多字段。我已经根据新添加的酒店完成了上传图片的 php,所有图片都将存储在数据库中,并在每个添加的酒店上创建一个新文件夹。问题是,当我想在我的网站前端提取这些图像时,图像是随机提取的——对于特定和相关的酒店,图像的顺序不正确。情况是它应该严格需要从其相关目录中提取。

在数据库中上传图片时,所有图片都以这种方式保存:Hotel Fewa Holiday Inn,Lakeside-6/double_dlx.jpg(这里,Hotel Fewa Holiday Inn和Lakeside-6是表(酒店)字段名称,double_dlx .jpg 是文件名)

我的代码是:我知道,有一些错误。如果有人可以帮助我离开这里,将不胜感激。[此代码从子目录中随机检索图像,实际上我需要相关酒店的图像]

<?php

$dir = '/*/';
$directory = "../administrator/images/hotels/*/";
$images = glob("" . $directory . "*.jpg");
$imgs = '';
foreach($images as $image){ $imgs[] = "$image"; }
shuffle($imgs);
$imgs = array_slice($imgs, 0, 1);
//display images
foreach ($imgs as $img) {
echo "<img src='$img' height='150' width='150' /> ";
}  ?>
4

1 回答 1

0

如果我理解正确,您想从数据库中检索酒店 ID 列表并显示相应的图像。所以首先,你必须连接到你的数据库。假设它是一个 MYSQL 数据库,您应该执行以下操作:

编辑:根据评论添加了一些调试信息。

<?php
$mysqli = new mysqli('localhost', 'root', '', 'swaminarayan');

/* check connection */
if ($mysqli->connect_errno) {
    printf("Connect failed: %s\n", $mysqli->connect_error);
    exit();
}

/* Select queries return a resultset */
if ($result = $mysqli->query("SELECT name, hotel_address FROM hotel")) {
    /* Print number of rows returned */
    printf("Select returned %d rows.\n", $result->num_rows);
    $directory = "../administrator/images/hotels/";
    while ($row = $result->fetch_assoc()) {            
        $search_dir = "$directory/{$row['name']}{$row['hotel_address']}";
        if ($path = realpath($search_dir)) {
            echo "Globbing for images in $path\n";
        }
        else {
            echo "Current working directory: " . getcwd();
        }
        $images = glob("$search_dir/*.jpg");
        if (empty($images)) {
            echo "No images found\n";
        }
        sort($images);
        //display images
        foreach ($images as $img) {
            echo "<img src='$img' height='150' width='150' /> ";
        }
    }

    /* free result set */
    $result->close();
}
$mysqli->close();
?>

mysqli::query 文档

sort函数采用可选的第二个参数,您可以使用它指定您希望如何对数组进行排序(按数字、字母顺序等)。有关详细信息,请参阅排序文档。

于 2013-10-28T13:22:48.037 回答