所以我知道这个问题听起来很奇怪,但我不知道如何描述它。我来给你展示。
我有一个页面index.php,其中包含:
<a ref="videos/vid.php?id=' . $tag["video_tag"] .'">
我的数据库中的 $tag["video_tag"]
是一个类别,并分配了一个值,比如 3
现在,在我的其他页面上,当有人单击该 href 时,videos.php 就会加载。
此时,我的查询通过将类别值 3 与 videos.video_tag_id
相匹配来提取正确的视频(应该这样做)但是!它改变了视频的ID。这就是此查询所发生的情况,因为我检查元素并查看所有视频上的 id=3
。
此查询会提取正确的视频,然后在页面上列出视频时更改视频的实际 ID
有点像 netflix 将“show-1”与其他六个“show2-6”相匹配,但您无法加载“shows2-6”,因为唯一的 id 都是相同的。查询正在改变这一点,我不知道如何解决它。
$sql = 'SELECT * FROM videos,category WHERE videos.video_tag_id = category.video_tag AND videos.video_tag_id = ' . $categoryId . ' ORDER BY RAND() LIMIT 6';
谢谢
最佳答案
分享您的表结构。我认为,在您的查询中,类别表和视频表的 id 字段不明确。尝试为您的字段名称添加别名。
$sql = "SELECT v.*,c.*,v.id as video_id FROM videos v left join category c ON v.video_tag_id = c.video_tag where v.video_tag_id = " . $categoryId . " ORDER BY RAND() LIMIT 6";
试试这个。
关于php - 如何在不改变查询中的值的情况下进行sql查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34329688/