PHP显示来自目录的与来自DB的所选ID相关的图像

时间:2015-09-07 19:27:42

标签: php mysql database

我将车辆信息存储在数据库中,这包括图像文件名。用户可以选择一次上传多个文件,这些文件名存储在一行中。例如,我上传了一辆新车,一辆福特,我有这辆车的三张图片。一旦我点击保存,图像就会保存在预定义的目录中,文件名也会存储在数据库中。数据库中的文件名由*。

分割

这是将信息保存到数据库的代码:

if (isset($_POST['submit'])) {

//Get form data
$stock_number = $_POST['stock_number'];
$vin_number = $_POST['vin_number'];
$make = $_POST['make'];
$model = $_POST['model'];
$colour = $_POST['colour'];
$milage = $_POST['milage'];
$year = $_POST['year'];
$price = $_POST['price'];
$description = $_POST['description'];

extract($_POST);

if (isset($_FILES['images']['name'])) {
    $file_name_all = '';

    for ($i = 0; $i < count($_FILES['images']['name']); $i++) {
        $tmpFilePath = $_FILES['images']['tmp_name'][$i];

        if ($tmpFilePath != '') {
            $path = 'uploaded_images/';
            $name = $_FILES['images']['name'][$i];
            $size = $_FILES['images']['size'][$i];

            list($txt, $ext) = explode('.', $name);
            $file = time().substr(str_replace(' ', '_', $txt), 0);
            $info = pathinfo($file);
            $filename = $file . '.' . $ext;

            if (move_uploaded_file($_FILES['images']['tmp_name'][$i], $path.$filename)) {
                $file_name_all .= $filename . '*';
            }
        }

        $filepath = rtrim($file_name_all, '*');
    }

        $sql = "
               INSERT INTO vehicles
               (stock_number, vin_number, make, model, colour, milage, year, price, description, images_path)
               VALUES
               ('$stock_number', '$vin_number', '$make', '$model', '$colour', '$milage', '$year', '$price', '$description', '$filepath')
            ";
        $result = mysqli_query($conn, $sql);


} else {
    $filepath = '';
}

if ($result) {
    header('Location: manage_vehicles.php');
}

}

一切都很好。

问题在于:当我从数据库中选择要显示的信息时,我需要显示仅与该记录有关的图像,但它并不是。尽管显示了所选记录的正确信息,它仍会显示所有图像。例如,如果我选择之前添加的福特,它会显示正确的信息,但会显示所有记录的所有图像。

这里是选择信息的代码,具体是图像:

$id = $_GET['id'];

$sql = "SELECT * FROM vehicles WHERE id='$id'";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    while ($row = $result->fetch_assoc()) {

        $row['make'];

        $dir = "uploaded_images/";

        $file = $row['images_path'];

        if ($opendir = opendir($dir)) {
           while (($file = readdir($opendir)) !== false) {
               if ($file != '.' && $file != '..') {
                  echo "<img class='images' src='$dir/$file'>";
              }
          }
       }
  }
}

1 个答案:

答案 0 :(得分:1)

您正在覆盖$ file变量。 试试下面的代码

object.data[ 0 ].id

P.S代码未经过测试!