php - 使用下一个/上一个按钮从 mysql 回显一个图像

标签 php mysql

所以我有上传表单,将图像上传到文件夹并将名称保存到数据库(mysql)。到目前为止我有这个:

<?php

mysqli_query($connection, "SELECT * FROM images LIMIT 1");
$result = mysqli_query($connection, $sql) or die ("SQL Error: ".mysqli_error($connection));

while($row = mysqli_fetch_array($result)){
echo "<div class=\"picture\">";
echo "<p>";

echo "<img src=\"upload/" . $row['filename']  . "\" alt=\"\" /><br />";
echo $row['caption'] . "<br />";
echo "</p>";
echo "</div>";
}
?>

如何更改代码以一次显示一张图像。就像带有“下一张”和“上一张”按钮来更改图像的画廊? 在数据库中,我只存储“id”和“文件名”。 谢谢

编辑: 我是这样弄的

<?php
if (isset($_GET['id'])) {
 $id = $_GET['id'];
} else {
$id = 1;
$res=mysqli_query($connection, "select * from images order by id ASC LIMIT  $id, 1");
$prevSQL = mysqli_query($connection, "SELECT * FROM images WHERE id > '".$id."' LIMIT  1");
$nextSQL = mysqli_query($connection, "SELECT * FROM images WHERE id < '".$id."' LIMIT 1");

$row = mysqli_fetch_array($res);
if($prevSQL === FALSE) {
    die("SQL Error: " . mysqli_errno($connection));
}
if($nextSQL === FALSE) {
    die("SQL Error: " . mysqli_errno($connection));
}
if(mysqli_num_rows($prevSQL)>1){
$prevRow = mysqli_fetch_array($prevSQL);
$prev = '<a href="show.php?page='.$prevRow['id'].'">Prev</a>';

} else {
$prev = 'Prev';
}
if(mysqli_num_rows($nextSQL)<1){
$nextRow = mysqli_fetch_array($nextSQL);
$next = '<a href="show.php?page='.$nextRow['id'].'">Next</a>';

} else {
$next = 'Next';
}
echo "<img src=\"upload/" . $row['filename']  . "\" alt=\"\" /><br />";
echo $row['caption'] . "<br />";
echo "</p>";
echo "<a href='show.php?page=".$id."'>Next</a>";
echo "<br/>";
echo "<a href='show.php?page=".$id."'>Prev</a>";
echo "</div>";
}
?>

最佳答案

使用MySQL Limit你可以这样做。请注意,它需要两个参数。第一个是起始记录,因此:

SELECT * FROM images 
order by ID ASC
LIMIT $page, 1

通过每次点击传递一个新的 $page,您可以通过 ID 获取下一条记录。

为了确保您始终拥有有效的 $page:

if isset($_GET['page']) {
   $page = $_GET['page'];
} else {
   $page = 1;
}

关于php - 使用下一个/上一个按钮从 mysql 回显一个图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21193415/

相关文章:

mysql - 无法在mysql上创建触发器

javascript - 严重性 : Warning Message: Invalid argument supplied for foreach() Filename: helpers/form_helper. php

php - 我的 session 将持续多长时间?

php - 带子查询的 Laravel 查询不起作用

mysql - SQL从两个表中删除

php - 按日期显示 mysql 数据库中的值

php - 如果您有 SSL 证书,为什么不对整个站点使用 https?

php - Google Cloud Speech API 在浏览器中不起作用

php - 我可以在不自动转义 $url 的情况下使用 simplexml_load_file($url) 吗?

c++ - 为每个查询初始化到 MYSQL 的连接有多糟糕?