2013-03-19 150 views
0

我正在尝试创建图片库。有相册中有图像,并在索引页上我想要显示巫婆相册,当你点击它时,你会看到该相册。我可以显示专辑名称,但我想用随机函数将这些专辑中的图像显示在该专辑中。我希望你明白我想要做什么。 问题是我无法触及图像。左联合关联数组

我有两个关联数组,一个用于专辑,另一个用于图像。专辑中的一张是这样的;

function get_albums() { 
$albums = array(); 

$albums_query = mysql_query(" 
SELECT `albums`.`album_id`, `albums`.`timestamp`, `albums`.`name`,  
LEFT(`albums`.`description`, 50) as `description`, COUNT(`images`.`image_id`) as `image_count` 
FROM `albums` 
LEFT JOIN `images` 
ON `albums`.`album_id` = `images`.`album_id` 
GROUP BY `albums`.`album_id` 
")or die(mysql_error()); 

while ($albums_row = mysql_fetch_assoc($albums_query)) { 
    $albums[] = array(
     'id' => $albums_row['album_id'], 
     'timestamp' => $albums_row['timestamp'], 
     'name' => $albums_row['name'], 
     'description' => $albums_row['description'], 
     'count' => $albums_row['image_count']  
     ); 
} 

return $albums; 
} 

而对于图像它看起来像这样;

function get_images($album_id) { 
$album_id = (int)$album_id; 

$images = array(); 

$image_query = mysql_query("SELECT `image_id`, `image_name`, `album_id`, `timestamp`, `ext` FROM `images` WHERE `album_id`=$album_id"); 
while ($images_row = mysql_fetch_assoc($image_query)) { 
    echo $images_row['image_id']; 

    $images[] = array(
    'id' => $images_row['image_id'], 
    'img_name' => $images_row['image_name'], 
    'album' => $images_row['album_id'], 
    'timestamp' => $images_row['timestamp'], 
    'ext' => $images_row['ext'] 
    ); 
} 
return $images; 
} 

我认为在get_albums功能与左连接功能我古尔德通过将图像名称和扩展这样到达图像;

while ($albums_row = mysql_fetch_assoc($albums_query)) { 
    $albums[] = array(
     'id' => $albums_row['album_id'], 
     'timestamp' => $albums_row['timestamp'], 
     'name' => $albums_row['name'], 
     'description' => $albums_row['description'], 
     'count' => $albums_row['image_count'], 
     'img_name' => $albums_row['image_name'], 
     'ext' => $albums_row['ext']   
     ); 

然后在这样的索引页中使用它;

$albums = get_albums(); 

if (isset($albums)) { 
foreach ($albums as $album) { 
    echo '<a href="view_album.php?album_id=', $album["id"], '"><img src="uploads/thumbs/', $album["id"] ,'/', $album['img_name'],'.', $album["ext"],'" />', $album['name'], '</a>'; 
} 
} 

但结果是这样; http://www.robcnossen.nl/

我在做什么错?

+0

' $ albums_query'没有img_name或没有分机字段。 – Patashu 2013-03-19 23:02:37

+0

感谢Patashu,真的很简单,但我没有看到它。 – Robske 2013-03-20 08:36:52

回答

0

你为什么不使一个大的查询加盟的所有数据,然后再显示它随你的便,这样的事情:

sql="SELECT * FROM albums a INNER JOIN images i ON a.album_id = i.album_id WHERE a.album_id =" . $album_id; 

$result = mysql_query(sql); 

while ($row = mysql_fetch_array($result)) { 
    echo '<a href="view_album.php?album_id=' . $row['album_id'] . '><img src="uploads/thumbs/' . $row['album_id'] . '/' . $row['album_id'] . '.' . $row['album_ext'] . '" />' . $row['album_name'] . '</a>'; 
} 

那么就应该显示正是你怎么想它