php mysql 取两个 table

php mysql fetch two table

我有两个 table 来自 mysql。

1、照片(url_link)

2、视频(url_link)

我只想获取 1 table(视频 url),如果两者 table 都不为空.. 有吗?我正在使用以下代码:

<--photo -->
    <?php       
$query_img = mysql_query("SELECT `url` FROM `photos_news` WHERE title='{$thumn_content['titles']}' LIMIT 0,1");
while($img = mysql_fetch_array($query_img)){ ?>
<img src="<?php echo $img['url'];?>" class="img-responsive img-rounded"/>
<?php }?>


<!-- vdo -->
<?php
$query_vdo = mysql_query("SELECT `url` FROM `video_news` WHERE title='{$thumn_content['titles']}' LIMIT 0,1");
while($vdo = mysql_fetch_array($query_vdo)){ ?>
<div class="embed-responsive embed-responsive-16by9">
  <iframe class="embed-responsive-item" src="<?php echo $vdo['url']?>?modestbranding=1&showinfo=0&fs=0"></iframe>
</div>

<?php }?>

谢谢先生,

您可以使用外键并在两个表之间加入 :)
您还应该检查 PDO 以避免在您的代码中注入 sql。

如果您告诉我们您的表格是如何设计的,我们可以为您提供更多帮助

TABLE video_news
idVideo
urlVideo
titleVideo

TABLE photo_news
idPhoto
urlPhoto
titlePhoto
idVideo = FOREIGN KEY

所以你获取 urlVideo 的语句类似于

SELECT urlVideo
FROM video_news vn, photo_news pn
WHERE vn.idVideo = pn.idVideo

这样,如果没有与视频对应的照片,就不会获取

好吧,您可以像之前一样先获取照片和视频,但在编写 HTML 之前。例如,您可以将结果放入 $photos 和 $videos 数组中。

然后你可以检查两个变量是否有结果,如果是的话只写视频的HTML。

<?php // part 1: collect the data

$resource = mysql_query("SELECT `url` FROM `photos_news` WHERE title='{$thumn_content['titles']}' LIMIT 0,1");
$photos = array();

while($row = mysql_fetch_array($resource)) {

   $photos[] = $row;

}

$resource  = mysql_query("SELECT `url` FROM `video_news` WHERE title='{$thumn_content['titles']}' LIMIT 0,1");
$videos = array();

while($row = mysql_fetch_array($resource)) {

   $videos[] = $row;

}

// medias contains only $videos if both tables has entries.
$medias = $photos & $videos ? $videos : array_merge($photos, $videos);

?>
<?php // part 2: display the data ?>
<?php foreach($medias as $media) : ?>
   <img src="<?php echo $media['url'] ?>" class="img-responsive img-rounded"/>
<?php endforeach ?>