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 ?>
我有两个 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 ?>