-1

我目前正在开发一个在线购物网站。不幸的是,我被从数据库中显示图像的问题所阻止。

我想要实现的结果是从数据库中检索图像并将它们显示在不同的页面中。例如,数据库中共有 12 张图片,我想在一页显示 6 张图片。并且,当用户单击下一页(第 2 页)时,将显示其余 6 张图像。我已经坚持了很多天。谁能帮我解决这个问题。最好的祝愿。

4

6 回答 6

1

尝试这个

<?php
if(isset($_Get['page'])) 
{$page = $_Get['page'];}
else 
{$page = 1; }
$firstimage = $page * 6 - 6;
$lastimage = $page * 6;
$sql = 'SELECT * from image LIMIT $firstimage, $lastimage';
?>

并在底部添加一个链接

<a href="yourpage.php?page='<?php echo $page + 1; ?> '">Next page</a>
于 2013-04-18T13:02:36.313 回答
0

您需要的是SQL 代码中的限制偏移量。

在 php 中使用:

$limit = 15;
$offset = ($page - 1) * $limit;

The limit is the amount of values you want to be shown.
The $page variable you need to get because of the page you are on. You will need
to write some code to keep your page value in order to know what page you are on.
If you are on page 3 you want the 6 images for that page.

If you have that you pass your $limit and offset to your sql function.

在 SQL 中:

 $sql = 'select * from images ORDER BY x LIMIT ' . $limit . ' OFFSET ' . $offset;
于 2013-04-18T13:05:47.717 回答
0

您应该为打开的页面计算图像集中的偏移量,并使用如下查询数据库:(假设您的图像元数据存储在Image数据库表中)

SELECT * from Image LIMIT $offset, $limit

于 2013-04-18T12:59:58.680 回答
0

这并不复杂,您可以使用分页。遵循这个逻辑:

给每个页面一个数字并从查询字符串中获取该数字,然后在您的 sql 查询中使用限制,如下所示

$page = $_GET['page'];
if ($_GET['page'] == "1") {
{
     $startFrom = 0;
     $totalCount = 6;
} else { 
     $startFrom = 6*$_GET['page'];
     $totalCount = 6;
} 

在您的限制中使用这两个变量作为

LIMIT $startFrom, $totalCount;
于 2013-04-18T13:03:42.987 回答
0

您要执行的操作称为pagination。幸运的是,这并不太难,而且网上有很多教程可以用来构建这样的脚本。

分页的一般思想是,您将从数据库中分组选择数据,从特定的偏移量开始,并且只进行一定的长度或限制

Select * from yourTable LIMIT $yourOffset, $yourLimit

从这里开始,您最喜欢使用nextprevious按钮,它们将简单地告诉脚本当前offsetlimit将是什么。

一个例子可能是:

<form action="" method="POST">
   <input type="hidden" name="offset" value="10"/>
   <input type="hidden" name="limit" value="20"/> // The amount to be returned per page
   <input type="submit" value="next page" name="submit" />
</form>

然后,PHP您只需检索limitandoffset值:

$limit = '';
$offset = '';


if (isset($_POST['submit'])) {
{
    $limit = $_POST['limit'];
    $offset = $_POST['offset'];

    // Run query here
} 
于 2013-04-18T13:03:51.323 回答
0
$page = $_GET['page_no'];
$count = $page*6;
$sql = "select images from table limit $count-6,$count";
于 2013-04-18T13:04:10.590 回答