我将车辆信息存储在数据库中,这包括图像文件名。用户可以选择一次上传多个文件,这些文件名存储在一行中。例如,我上传了一辆新车,一辆福特,我有这辆车的三张图片。一旦我点击保存,图像就会保存在预定义的目录中,文件名也会存储在数据库中。数据库中的文件名由*。
分割这是将信息保存到数据库的代码:
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'>";
}
}
}
}
}
答案 0 :(得分:1)
您正在覆盖$ file变量。 试试下面的代码
object.data[ 0 ].id
P.S代码未经过测试!