我刚刚开设了一个网站,用于显示图片和视频。在我的FrontPage上,我想要显示最新的视频/图片。我每天上传一张图片或视频,因此所有图片和视频在我的数据库中都有不同的日期。 我有两个表:“图片”和“视频”具有相同的结构。 我用来从我的数据库中获取数据的代码如下所示:
前两个代码是在列表中显示我的图片或视频的代码。
$GET_picture = mysql_query("SELECT * FROM Pictures ORDER BY Dato DESC LIMIT 0,1");
while($picture = mysql_fetch_array($GET_picture))
和
$GET_video = mysql_query("SELECT * FROM Videos ORDER BY Dato DESC LIMIT 0,1");
while($video = mysql_fetch_array($GET_film)){
接下来的两个代码用于显示特定的图片或视频:
$GET_spec_picture = mysql_query("SELECT * FROM Pictures WHERE id='$id'");
$spec = mysql_fetch_array($GET_spec_picture);
和
$GET_spec_video = mysql_query("SELECT * FROM Videos WHERE id='$id'");
$spec = mysql_fetch_array($GET_spec_video);
同样,我想要做的是在FrontPage上显示最新的(也是最新的)图片或视频。 我尝试过使用UNION标签,但它没有用。任何人都可以告诉我如何在这种情况下正确使用标签,还是我有其他问题?
提前谢谢!
答案 0 :(得分:0)
你试过这个吗?
(SELECT * FROM Pictures ORDER BY Dato DESC LIMIT 0,1)
union all
(SELECT * FROM Videos ORDER BY Dato DESC LIMIT 0,1)
order by Date desc
LIMIT 0, 1;
严格来说,每个子查询中的order by
是不必要的。但是,如果您在date
上有索引,这些索引将很快获得最新版本,并且两行的最终排序很简单。
答案 1 :(得分:0)
如果你的PHP真的是
if($_GET['mode'] == ""){
$get_content = mysql_fetch_array("
(SELECT * FROM Pictures
ORDER BY Dato DESC LIMIT 0,1)
union all (SELECT * FROM Videos
ORDER BY Dato DESC LIMIT 0,1)
order by Dato DESC LIMIT 0, 1");
while($content = mysql_fetch_array($get_content)){...}
}
然后您应该将第一个mysql_fetch_array
替换为mysql_query
!