2013-03-19 187 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>'; 
} 

那麼就應該顯示正是你怎麼想它