如何使用mysql、php从另一个表中选择照片

如何使用mysql、php从另一个表中选择照片,php,mysql,Php,Mysql,我有一个数据库,有两个表,用户表和照片表 我想要的是在这两个表之间建立一个连接,我希望用户能够用上传到照片表的照片更新用户表中的化身字段。每次他们上传一张照片,阿凡达字段都会用新照片更新,我知道mysql中的外键,但我在这方面并不完美 你能告诉我这是否是在我的网站上实现这些功能的最佳方式吗。如果我的语法不完美,请不要生气 CREATE TABLE `users` ( `id` bigint(20) NOT NULL, `username` varchar(255) NOT NULL,

我有一个数据库,有两个表,用户表和照片表

我想要的是在这两个表之间建立一个连接,我希望用户能够用上传到照片表的照片更新用户表中的化身字段。每次他们上传一张照片,阿凡达字段都会用新照片更新,我知道mysql中的外键,但我在这方面并不完美

你能告诉我这是否是在我的网站上实现这些功能的最佳方式吗。如果我的语法不完美,请不要生气

CREATE TABLE `users` (
  `id` bigint(20) NOT NULL,
  `username` varchar(255) NOT NULL,
  `password` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `age` bigint(200 NOT NULL,
  `gender` VARCHAR(10) NOT NULL,
  `avatar` tex NOT NULL,
  `signup_date` int(10) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
然后我有另一个表,其中包含用户上传的所有照片这是结构

CREATE TABLE IF NOT EXISTS `photos` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `location` varchar(100) NOT NULL,
  `caption` varchar(100) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

我认为你需要做的第一件事是在你的照片表中添加一个userid列,这将作为外键,这样你就可以找到某个用户上传的所有照片。在你这样做之后,你可以使用下面的方法来获得用户上传的所有照片

SELECT * FROM `photos` WHERE `user_id` = <user_id>
从'photos'中选择*其中'user\u id`=

首先,您必须在这两个表之间创建连接,在照片表中添加列用户id

CREATE TABLE
IF NOT EXISTS photos (
    id INT (11) NOT NULL AUTO_INCREMENT,
    location VARCHAR (100) NOT NULL,
    caption VARCHAR (100) NOT NULL,
    user_id int(11) NOT NULL,
    PRIMARY KEY (id)
) ENGINE = MyISAM DEFAULT CHARSET = latin1 AUTO_INCREMENT = 5;
然后更改用户表的结构,您必须将头像存储为int和photo id。 将化身从varchar更改为整数值

CREATE TABLE users (
    id BIGINT (20) NOT NULL,
    username VARCHAR (255) NOT NULL,
    PASSWORD VARCHAR (255) NOT NULL,
    email VARCHAR (255) NOT NULL,
    age BIGINT (200) NOT NULL,
    gender VARCHAR (10) NOT NULL,
    avatar INT(10) NOT NULL,
    signup_date INT (10) NOT NULL
    ) ENGINE = MyISAM DEFAULT CHARSET = utf8;
然后,当用户将数据添加到photos表中时,只需写入用户id,您就可以通过MySQL查询获得所有用户的照片:

SELECT * FROM `photos` WHERE user_id={your_user_id}

然后,您将选择要制作头像的一张照片的id,并使用照片更新名为“头像”的表列用户id(photos.id)

您有离题或被否决的问题的历史记录,并且有可能失去提问特权。如果我理解你的意思,先生,每次用户向照片表中添加数据时,我都会在用户id列中将用户id添加到照片表中?对吧?对。每次用户添加照片时,您都必须写入photos.user\u id列数据。抱歉,中间有干扰。假设,我当前已登录用户,希望更改我的个人资料照片。那么,它是否会更新或创建一个新行@RuslanMusayev?但现在我甚至无法向照片表中添加值。谢谢,但在用户id列中没有插入值。这是我运行的代码,我已经创建了字段
if(mysql_查询('INSERT into photos(id,location,caption,user_id))值('.$id.,“.$location.”,“.$caption.”,“.$SESSION['userid'].”);标题(“location:indexupload.php”);
感谢您花时间帮助我修改了我的表,但现在的问题是,我无法将用户id插入照片表。