我正在尝试通过关注图片上传网站的某个教程来完成工作任务。我遇到的部分是显示创建的专辑。这是相关的代码(如果我遗漏任何东西,请询问更多)。
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);
}
这就是我认为相关的所有内容以及我认为问题所在的位置。这是专辑应该展示的地方:
<?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'
&GT;
但是我总是收到一条消息,说我没有专辑,这让我觉得他总是认为专辑数组是空的。我该怎么做才能纠正这个问题?
答案 0 :(得分:0)
您使用的是$_SESSION["user_id"]
,但我没有在您的文件中看到session_start()
。可能是您的会话未填充。
另一种可能性是您的用户没有任何相册。
顺便说一句,请将您的脚本迁移到mysqli
:
建议使用mysqli或PDO_MySQL扩展。它 不建议使用旧的mysql扩展进行新开发, 因为它已经从PHP 5.5.0开始被弃用,并将被删除 将来