MySQLi通过选择开始结果顺序并继续下一个结果

时间:2016-06-01 11:35:29

标签: php mysqli

所以这真的开始让我感到烦恼......我在画廊中展示图像,首先用缩略图显示。您可以单击第一个缩略图,它将按文件名ASC按顺序加载图像,这非常适合从头开始。

但是,当您单击一个随机图像时,它会加载该图像,当您单击下一步时,它会将整个相册再次带回到开头,这不是很好。我正在尝试对其进行排序,以便您可以单击随机图像,然后单击下一步,显示实际的下一个结果而不是将您带回到开始状态?

这是我当前的代码,您可以看到与非选择和选择选项的区别:

  if($select_first == ''){
$sql = "SELECT * FROM `new_images` WHERE `alb_ref` = '$alb_ref' ORDER BY full_link ASC";      
  } else {
$sql = "SELECT * FROM `new_images` WHERE `alb_ref` = '$alb_ref' ORDER BY full_link = '$select_first' DESC, full_link ASC";
  }
$result = $conn->query($sql);
$rowcount=mysqli_num_rows($result);
          if ($result->num_rows > 0) {    

$i = 0;
              while($row = $result->fetch_assoc()) {
              $image_id = $row['img_id'];
              $thumb_link = $row['thumb_link'];

这是需要改变的一行代码,但我对MySQLi查询不太了解如何解决这个问题?有什么想法吗?

$sql = "SELECT * FROM `new_images` WHERE `alb_ref` = '$alb_ref' ORDER BY full_link = '$select_first' DESC, full_link ASC";

$select_first是他们选择开始的图片......这是一个基本的例子:

(1) a.jpg
(2) b.jpg
(3) c.jpg
(4) d.jpg
(5) e.jpg

如果他们没有选择图片,则会从(1)开始并继续到(5) - 这很好。

如果他们选择(3),目前,下一张图片将为(1),并且会一直持续到(5),下一张图片应为(4)并继续到(5) ...

1 个答案:

答案 0 :(得分:1)

我们在=中未使用ORDER BY full_link = '$select_first'。根据您的评论,您可以>使full_link大于值

 $sql = "SELECT * FROM `new_images` WHERE `alb_ref` = '$alb_ref'
         AND  full_link >'$select_first'
         ORDER BY full_link ASC";