php当前数组位置和上一个/下一个

时间:2012-10-02 01:00:13

标签: php next

我已阅读过很多关于上一个/下一个帖子的帖子,但我仍然非常困难。

我有一个显示图像和相关数据的页面。这是从数据库中获得的。图像位于每个相册的文件夹中的网站文件夹中。因此,图像文件夹可能包含1,2或100个图像。

我对此数据有如下函数: -

function get_images_album($artist_id) {
    $artist_id = (int)$artist_id;
    $images = array();
    $image_query = mysql_query("SELECT `image_album_id`, `member_id`, `artist_id`,     
                   `albumname`, `ext`, `timestamp`  FROM `album_images`
                   WHERE `artist_id`=$artist_id AND `member_id`=".$_SESSION['member_id']);
    while ($images_row = mysql_fetch_assoc($image_query)) {
        $images[] = array(
            'id' => $images_row['image_album_id'],
            'album' =>  $images_row['artist_id'],
            'albumname' => $images_row['albumname'],
            'ext' => $images_row['ext'],
            'timestamp' => $images_row['timestamp']
            );
    }
    return $images;
}

该页面显示localhost上每个url的正确图像和数据。站点/ album_view.php artist_id = 4和;。image_album_id = 4

在html页面上,代码为: -

 $images = get_images_album($artist_id);
 if (empty($images)) {
     echo 'There are no Images in this album.';
 }else{
     foreach ($images as $key => $val) {

     }
 }

>

我已经明白,如果我回显$ key和current($ val),我会得到数组索引号。和当前页面的图像ID。在上面的例子中,这将是0和4.但是我总是得到数组的最后一个索引细节,特定专辑恰好是13和2181.

我知道所有的数据都存在,因为我已经回应了数组,一切似乎都没问题。

我不知道为什么。

继续我所拥有的我无法解决如何继续获取下一个和之前的设置谢谢。

1 个答案:

答案 0 :(得分:0)

更简单的方法可能是略微更改get_images_album功能:

function get_images_album($artist_id) {
  $artist_id = (int)$artist_id;
  $images = array();
  $image_query = mysql_query("SELECT `image_album_id`, `member_id`, `artist_id`,     
                   `albumname`, `ext`, `timestamp`  FROM `album_images`
  WHERE `artist_id`=$artist_id AND `member_id`=".$_SESSION['member_id']);
  While ($images_row = mysql_fetch_assoc($image_query)) {
   // $images[] = array(
   // instead, make your images array a hash and key it on the album_id
    $images[$images_row["image_album_id"]] = array(
      'id' => $images_row['image_album_id'],
      'album' =>  $images_row['artist_id'],
      'albumname' => $images_row['albumname'],
      'ext' => $images_row['ext'],
      'timestamp' => $images_row['timestamp']
     );
   }
   return $images;
 }

现在您可以取消foreach循环,只需获取您正在寻找的相册:

 $images = get_images_album($artist_id);
 if (empty($images)) {
 echo 'There are no Images in this album.';
 }else{
  $album_images = $images[$image_album_id];

  // do stuff with the $album_images hash
  var_dump($album_images);

 }