查询视频标签的查询不返回propper值

时间:2015-07-06 11:04:28

标签: php mysql

我有加载10个视频的页面。现在,我尝试为每个视频显示标签的内容。所以我已经加载了视频,然后我尝试使用这些标签

$tags = $pdo->prepare("Select * From `video` p LEFT JOIN `tags_image` tp ON p.video_id = tp.video_id LEFT JOIN `tag` t ON tp.tags_id = t.tag_id WHERE p.video_id = ?");
$tags -> bindParam(1, $row['video_id'], PDO::PARAM_INT);
$tags -> execute();
foreach($tags as $tag) {
    if(!$tag){
            echo '<li style="margin-top: -13px;"><a href="tagsPreview.php?tag_id='.$tag['tag_id'].'">'.$tag['tag_name'].'</a></li>';  
    }
    else {
            echo '<li style="margin-top: -13px;"><a href="">No tags found for the video</a></li>';
    }                  
}

数据库中的表格为video - video_idvideo_name ...等

tag - tag_idtag_name

tags_image - tags_idvideo_id

因此,当我打开ID = 1的页面视频时,相关联的5个标签,但视频获得5次 - No tags found for the video而不是5个标签。我想念的是什么?

2 个答案:

答案 0 :(得分:0)

用以下代码替换您的代码:

if(!empty($tag['tag_id'])){
            echo '<li style="margin-top: -13px;"><a href="tagsPreview.php?tag_id='.$tag['tag_id'].'">'.$tag['tag_name'].'</a></li>';  
    }
    else {
            echo '<li style="margin-top: -13px;"><a href="">No tags found for the video</a></li>';
    }   

答案 1 :(得分:0)

这应该有用。

foreach($tags as $tag) {
    if($tag['tag_id']){
            echo '<li style="margin-top: -13px;"><a href="tagsPreview.php?tag_id='.$tag['tag_id'].'">'.$tag['tag_name'].'</a></li>'; 
    } else {
            echo '<li style="margin-top: -13px;"><a>Към видеото няма добавени тагове</a></li>';
    }                 
}