php - 一次查询获取视频和类别
问题描述
我有 2 个数据表,分别是类别(类别表)和视频(视频表),如下图所示。我正在查询这张图片(Query mysqli test)以获取视频及其目录。有没有一种方法可以让我只使用一个查询,但结果仍与当前查询相同?
<?php
include('config.php');
$page=intval($_REQUEST['page']);
$limit=10;
$start=$page*$limit - $limit;
$video=mysqli_query($conn,"SELECT * FROM video ORDER BY video_id DESC LIMIT $start,$limit");
while($r_video=mysqli_fetch_assoc($video)){
$cat_info=mysqli_query($conn,"SELECT * FROM category WHERE cat_id IN ({$r_video['video_cat']}) ORDER BY cat_sort ASC");
while($r_cat=mysqli_fetch_assoc($cat_info)){
$list_cat.='<a href="/category/'.$r_cat['cat_name'].'.html">'.$r_cat['cat_name'].'</a>,';
}
$list_cat=substr($list_cat, 0,-1);
echo $r_video['video_name'].'<br>'.$list_cat;
unset($list_cat);
}
?>
解决方案
您可以像其他人所说的那样加入查询,您面临的问题可能与一个视频可能属于多个类别的事实有关。
在这种情况下,我会使用一个分析函数来根据需要格式化值。
我目前无法对此进行测试,但是查看文档,我建议您在加入后尝试使用 GROUP_CONCAT 或 CONCAT_WS,以便您可以以最佳方式对数据进行分组和返回。
只需抓住已经建议的查询,然后按照您想要的方式对它们进行分组,这样您就可以将函数应用于组并提取值。
希望能帮助到你。
推荐阅读
- c++ - 在重用基本模板实现中替代虚拟继承
- c# - 调用的目标已引发异常(SSIS & WinSCP & C#)
- r - ggraph 在 geom_node_point 中使用填充和颜色
- flutter - 颤振:有没有办法从画布中提取 svg?
- ubuntu - 在 ubuntu 中添加永久路径
- object - 任何人都可以帮助我如何使用 yolov5 计算对象?
- c# - 从 txt 文件中读取文本并将其拆分
- gradle - Gradle 在“plugins id”之前做一些事情
- cmake - 在 cmake 中只安装一个目标
- facebook-graph-api - 使用新 API 登录 Instagram