Php web图像库问题:数据库id索引孔和分页查询

Php web图像库问题:数据库id索引孔和分页查询,php,mysql,database,variables,image-gallery,Php,Mysql,Database,Variables,Image Gallery,我正在用php开发一个网络图像库。 在我所在的地点,我可以从db上传图像,从中创建缩略图,并删除我不再需要的图像。 不幸的是,我对布局结构有一些问题 我想创建最多可以容纳10个图像的页面(例如)。 因此,在第一页中有0到9的图像,在第二页中有10到19的图像,依此类推 第一个问题涉及存储在mysql数据库中的图像的id。每个上传的图像都有其id号。因此,如果我第一次添加10个图像,我得到了与它的pic相关的相对id 0,1,2,3…10。但是如果我删除图像id 3,我会破坏索引进程。因此,新的指

我正在用php开发一个网络图像库。 在我所在的地点,我可以从db上传图像,从中创建缩略图,并删除我不再需要的图像。 不幸的是,我对布局结构有一些问题

我想创建最多可以容纳10个图像的页面(例如)。 因此,在第一页中有0到9的图像,在第二页中有10到19的图像,依此类推

第一个问题涉及存储在mysql数据库中的图像的id。每个上传的图像都有其id号。因此,如果我第一次添加10个图像,我得到了与它的pic相关的相对id 0,1,2,3…10。但是如果我删除图像id 3,我会破坏索引进程。因此,新的指数级数变成了0,1,2,4,5等等……这对我来说很糟糕,因为我需要始终保持经典的构思,但我不知道我必须做什么

第二个问题是如何管理页面及其内容

我用

创建不同数量的页面。 然后我将页面id存储到变量中。因此,我将图像的最大数量*页面保留在另一个变量中

$pageid = $_GET['page'];
$imgmax = 10;
现在是处理查询的时候了。 我想使用这种查询:

$sql='SELECT image_id, image_url, thumb_url FROM images LIMIT $imgmax OFFSET ($pageid*$imgmax)-$imgmax';
但我错了。这种查询不起作用。 我想是因为我无法将php变量传递到查询中。 但是,从那里开始,我不能向前走,因为我已经到了死胡同

请帮点忙好吗? 非常感谢

向您致意,谢谢您的关注


Matteo

我为我的这些问题找到了一个快速的解决方案。 我没有使用query的命令,而是将表的所有行存储在一个数组ad中,然后使用[b]array_slice()[/b]函数选择数组的部分。这对我来说很好。这里是快速总结

//after "img_url" selection from "images" table:

foreach ($results as $row) {
    $images[] = array( 'img_url' => $row['img_url']);
}

$select = array_slice($images, (($page_id*$images_maxnumber_eachpage)-$images_maxnumber_eachpage), $images_maxnumber_eachpage);
也许这会对其他人有所帮助

无论如何,谢谢。:)

问候


Matteo

您可能正在寻找
限制($pageid*$imgmax)-$imgmax,$imgmax
——另外,请用双引号括住您的查询,否则它将被视为字符串文字感谢Kai Qing,我用php尝试了一种不同的解决方案,它似乎可以正常工作(如果您感兴趣,请参阅我对我的问题的回答)。无论如何,非常感谢你的回答,我真的很感激。:)这是一个有趣的解决方案,对于相当小的数据集来说是可以的,但对于数据库来说,这仍然是一个非常基本的问题。最后,做对你有用的事。
//after "img_url" selection from "images" table:

foreach ($results as $row) {
    $images[] = array( 'img_url' => $row['img_url']);
}

$select = array_slice($images, (($page_id*$images_maxnumber_eachpage)-$images_maxnumber_eachpage), $images_maxnumber_eachpage);