我在DB两个不同的表,这里的相关字段:结合的MySQL查询
表图片:
CREATE TABLE `images` (
`image_id` int(4) NOT NULL AUTO_INCREMENT,
`project_id` int(4) NOT NULL,
`user_id` int(4) NOT NULL,
`image_name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`image_description` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`date_created` date NOT NULL,
`link_to_file` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`link_to_thumbnail` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`given_name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`note` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`image_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=51 ;
并表项目:
CREATE TABLE `projects` (
`project_id` int(4) NOT NULL AUTO_INCREMENT,
`user_id` int(4) NOT NULL,
`project_name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`project_description` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`date_created` date NOT NULL,
`date_last_edited` date NOT NULL,
`shared` int(1) NOT NULL,
`password` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`project_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=25 ;
我想展示在变量$ content中,每个项目中最老的图像作为该项目页面的链接,我不知道应该如何构建mysql查询。你能帮我解决这个问题吗?我已经尝试了几个if和while语句,但结果已经完全失败,而我处于我的(非常有限)知识的末尾。我都快要跳出窗口...
所以我想用
<a href="index.php?page=projects&id='.$projectid.'">
<img src="oldest_photo_of_project_x" />
</a>
<a href="index.php?page=projects&id='.$projectid.'">
<img src="oldest_photo_of_project_y" />
</a>
<a href="index.php?page=projects&id='.$projectid.'">
<img src="oldest_photo_of_project_z" />
</a>
UPDATE1落得:
为了澄清,我想结合:
"SELECT * FROM projects WHERE user_id='$UserID' ORDER BY project_id DESC"
也许是这样的:
$query = "SELECT images.project_id, projects.project_name ".
"FROM images, projects ".
"WHERE images.project_id = projects.project_id";
你是什么意思“的变化显示”? – eggyal
@eggyal:我的意思是将结果回显到一个变量中,以便在稍后的html中执行'<?php echo $ content; ?> – PartisanEntity
好的,那么这个变量需要保存的不仅仅是数据库结果 - 它需要保存结构化标记。这是不寻常的做法,我怀疑可能不是你想做的事。最好直接输出为数据库记录集上的一个循环。 – eggyal