[英]Query to retrieve tags for video doesn't return propper value
I have page where I load 10 videos.我有加载 10 个视频的页面。 Now I'm trying to show for each video what tags has.
现在我试图为每个视频显示标签有什么。 So I've loaded videos then I trying like this for the tags
所以我已经加载了视频,然后我像这样尝试标记
$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>';
}
}
Tables in database are video
- video_id
, video_name
... etc数据库中的表是
video
- video_id
, video_name
... 等
tag
- tag_id
, tag_name
tag
- tag_id
, tag_name
tags_image
- tags_id
, video_id
. tags_image
- tags_id
, video_id
。
So when I open the page video with ID=1 has associated 5 tags but video get 5 times - No tags found for the video
instead of 5 tags.因此,当我打开 ID=1 的页面时,视频关联了 5 个标签,但视频获得了 5 次 -
No tags found for the video
的标签,而不是 5 个标签。 What I miss here?我在这里想念什么?
replace your code with:将您的代码替换为:
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>';
}
This should work.这应该有效。
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>';
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.