我有加载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_id
,video_name
...等
tag
- tag_id
,tag_name
tags_image
- tags_id
,video_id
。
因此,当我打开ID = 1的页面视频时,相关联的5个标签,但视频获得5次 - No tags found for the video
而不是5个标签。我想念的是什么?
答案 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>';
}
}