2013-03-10 74 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` 
WHERE `albums`.`user_id` = ".$_SESSION["user_id"]." 
GROUP BY `albums`.`album_id` 
"); 


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 create_album($album_name, $album_description) { 
    $album_name = mysql_real_escape_string(htmlentities($album_name)); 
    $album_description = mysql_real_escape_string(htmlentities($album_description)); 

     mysql_query("INSERT INTO `albums` VALUES ('', '".$SESSION["user_id"]."', UNIX_TIMESTAMP(), '$album_name', '$album_description')"); 
     mkdir('uploads/' .mysql_insert_id(), 0744); 
     mkdir('uploads/thumbs/' .mysql_insert_id(), 0744); 


} 

這一切,我承認相關哪裏,我認爲問題是located.This就是專輯應該顯示:

<?php 
$albums = get_albums(); 

if (empty($albums)) { 
echo '<p> You don\'t have any albums</p>'; 
} else { 

    foreach ($albums as $album) { 
     echo '<p> 
     <a href="view_album.php?album_id=', $album['id'], '">', $album['name'], '</a> (', $album['count'], ' images)<br /> 
     ', $album['description'], '...<br /> 

     <a href="edit_album.php?album_id=', $album['id'], '">Edit</a>/<a href="delete_album.php?album_id=', $album['id'], '">Delete</a> 
     </p>'; 
    } 
} 

include 'template/footer.php' 

>

但我總是收到一條消息我沒有專輯,這讓我認爲他總是認爲專輯陣列是空的。我能做些什麼來糾正這個問題?

+0

除了MySQL適配器的貶低,我看不出代碼本身的任何問題要麼,所以我會建議使用已知的用戶ID,而不是會話變量的測試代碼,如果行是這樣找到的,那麼會話就是責怪。如果拉了什麼,然後測試直接在SQL看到(的phpmyadmin或MySQL工作臺)如果SQL語句是難辭其咎的,如果行發現方式,那麼PHP是難辭其咎的,我們會再看看,否則SQL聲明是責備。 – 2013-03-10 08:29:24

+0

測試了SQL和會話變量,問題不存在。 – 2013-03-10 14:48:03

+0

所以如果你在mysql_fetch_assoc($ albums_query)函數內部做了一個var_dump,你會得到結果嗎? – 2013-03-11 09:53:49

回答

0

您使用$_SESSION["user_id"],但我沒有看到一個session_start()在文件中的任何地方。這可能是因爲你的會話沒有被填充。

另一種可能性是,你的用戶沒有任何相冊。

順便說一句,請你的腳本遷移到mysqli

建議爲使用和mysqli或PDO_MYSQL擴展。它 不推薦使用舊的MySQL擴展新的發展, 因爲它已被棄用的PHP 5.5.0,並會在未來 被刪除。

http://www.php.net/manual/en/mysqlinfo.api.choosing.php

+0

會話開始是在上述包括,和相冊創建和在基座所示並且如在文件結構目錄,它只是陣列被拒絕檢索表數據。對不起,如果我聽起來像我不知道我在說什麼,在這裏盡我最大的努力是有道理的。 – 2013-03-10 05:34:40

相關問題