【问题标题】:web image gallery issues: database id index holes and pagination query网络图片库问题:数据库 id 索引漏洞和分页查询
【发布时间】:2014-04-07 23:07:10
【问题描述】:

我正在开发一个用 php 完成的网络图片库。 在我所在的位置,我可以从数据库上传图像,从中创建缩略图并删除我不再想要的图像。 不幸的是,我的布局结构存在一些问题。

我想创建最多可容纳 10 张图片的页面(例如)。 所以第 1 页有 0 到 9 个图像,第 2 页有 10-19 个图像,依此类推。

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

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

我用

if (isset($_GET['page_id']))

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

$pageid = $_GET['page'];
$imgmax = 10;

现在是处理查询的时候了。 我想使用这种查询:

$sql='SELECT image_id, image_url, thumb_url FROM images LIMIT $imgmax OFFSET ($pageid*$imgmax)-$imgmax';

但我错了。这种查询不起作用。 我想是因为我无法将 php 变量传递给查询。 但是,从那里,我无法向前走,因为我处于死角。

请帮忙? 将不胜感激!

最好的问候 e 感谢您的关注。

马特奥

【问题讨论】:

  • 您可能正在寻找LIMIT ($pageid*$imgmax)-$imgmax, $imgmax - 另外,用双引号将您的查询括起来,否则它将被视为字符串文字
  • 感谢 Kai Qing,我尝试了一个不同的 php 解决方案,它似乎工作得很好(如果你有兴趣,请参阅我对我的问题的回答)。无论如何,非常感谢您的回答,我真的很感激。 :)

标签: php mysql database variables image-gallery


【解决方案1】:

我为我的这些问题找到了一个快速的解决方案。 我没有使用查询的命令,而是将表的所有行存储在一个数组广告中,然后我使用 [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);

也许这对其他人有帮助!

还是谢谢。 :)

问候

马特奥

【讨论】:

  • 这是一个有趣的解决方案,适用于相当小的数据集,但对于数据库来说,这是一个非常基本的问题。最后,做对你有用的事。
猜你喜欢
  • 2015-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多