1

我是一名学习 PHP 和 MySQL 的高中生。我正在尝试创建一个简单的照片共享网站,允许用户注册并开始上传图片。每个用户都有一个显示他们所有照片的个人资料。

我目前只有一张表,称为“用户”:用户名、电子邮件、密码

我应该如何为图片设置表格?以及如何链接到每张图片的文件路径?

谢谢

4

2 回答 2

3

在您的用户表上创建一个名为 Id 的列(这永远不会改变)您通常为此使用类似 INT AUTOINCREMENT 编号的内容,因此数据库会自动分配它,并且应将其标记为 PRIMARY KEY

创建一个名为 photos 的表

Table photos
Id = autoincrement primary key
UserID = int (you can set this up as a foreign key, but to keep it simple, just make it indexed)
Title = varchar
Info = varchar
Filename = varchar

Table Photos
Id      |  UserId  | Title    | info | Filename  | (add other columns to suit)
------------------------------------------------------------
1       |  1       | Duck     | xyz  | duck.jpg  | 
2       |  1       | Cat      | xyz  | cat.jpg   | 
3       |  2       | Mouse    | xyz  | mouse.jpg | 

从上面的数据可以看出,照片 1 和 2 属于用户 1,照片 3 属于用户 2

要为用户名“bob”选择所有照片,您可以执行以下操作

SELECT Photos.Id, Photos.Filename 
FROM Photos 
JOIN Users ON Photos.UserId=Users.Id
WHERE Users.username = 'bob'
于 2012-05-08T19:07:08.670 回答
1

第一个问题是您将用户的照片存储在哪里?我会推荐这个:

Table (User's):
Username | Password | Email
---------------------------
user1    | fdgfdg   | fdfgdf
user2    | ffdgfd   | fgdfgf
user3    | dgfdgg   | fgdgdd

然后,每当用户注册时,使用该用户的姓名和标题为照片的子目录创建一个文件夹。

为每个用户创建一个表。

Table user1
Photo     | Title    | info
----------------------------
duck.jpg  | My Duck! | fgdf
cat.png   | Le Cat   | dfgd

然后,当用户登录时,列出所有标题并将它们动态链接到照片。

所以我会

My Duck --> http://mysite.com/user1/photos/myduck.jpg

其中 user1 是登录用户名,照片将自动添加,myduck.jpg 将从数据库中提取。

但是,这会带来两个漏洞: - 盗链 - 如果有人知道用户名和照片标题,他们可以在未经许可的情况下访问照片。

于 2012-05-08T18:50:07.367 回答