限制从数据库获取的显示图像并显示最新图像

时间:2019-03-04 16:28:24

标签: php mysqli

我试图将显示的3张图像限制为一行。但是,只有一行,我真的不知道如何限制要显示的图像数量以及如何将最新的图像显示在最前面,而只显示最新的图像到最后一行。我正在尝试某种方法,但没有任何效果。

上传

<?php
if (isset($_POST['submit'])){
    $target_dir = dirname(dirname(__FILE__)).'/store/';
    $target = $target_dir . basename($_FILES['image']['name']);

    $db =  mysqli_connect("localhost", "root", "", "image");
    $image = $_FILES['image']['name'];
    $title = $_POST['image_title'];
    $description = $_POST['description'];

    $sql = "INSERT INTO images (image, title, description) VALUE ('$image', '$title', '$description')";
    mysqli_query($db, $sql);

    if(move_uploaded_file($_FILES['image']['tmp_name'], $target))
    {
        // header("location:../../gallery/gallery.html");
        header("location: ../test.php");
    }
}
?>

显示

<?php
$db = mysqli_connect("localhost", "root", "", "image");
$sql = "SELECT * FROM images";
$result = mysqli_query($db, $sql);
$count = 0;

while($row = mysqli_fetch_array($result)){
    $listImage = $row['image'];
    echo "<img src='store/".$listImage."' width='250' height='250'>";
}

1 个答案:

答案 0 :(得分:1)

步骤1:

您可能需要使用auto_increment列或DATETIME列更新表,以节省表中的当前时间。

让我们考虑在auto_increment表中添加一个id images字段。您需要运行以下命令:

ALTER TABLE `images` 
  ADD `id` INT NOT NULL auto_increment first, 
  ADD PRIMARY KEY (`id`);

步骤2:

将您的SQL查询更改为:

// to get the latest image stored in the images table.
$sql = "SELECT * FROM images ORDER BY id DESC LIMIT 1"; 

它将为您完成工作!另外,我添加了LIMIT 1-您可以根据需要更改它的数量,无论最新图片是多少

  

注意:如果要获取上个月的最新图像,或者要修改图像(更新日期),请在这种情况下   考虑在表格中添加一个DATETIME列,并在   order by子句。