0

我刚刚创建了一个展示图片和视频的网站。在我的 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 标签,但它不起作用。谁能告诉我如何在这种情况下正确使用标签,或者我还有其他问题吗?

先感谢您!

4

2 回答 2

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_arraymysql_query!

于 2013-08-18T22:31:52.867 回答
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,这些将很快获得最新版本,并且对两行的最终排序是微不足道的。

于 2013-08-17T22:46:10.027 回答