使用ajax jquery在html中对db中的相同数据进行分组
Posted
技术标签:
【中文标题】使用ajax jquery在html中对db中的相同数据进行分组【英文标题】:Grouping same data from db in html using ajax jquery 【发布时间】:2021-11-01 18:19:36 【问题描述】:下面的图片是我想要的输出。我有 3 个表、学生、项目和一个联结表,其中对应的学生 id 与每个项目 id 相对应。 我无法根据项目进行分组,如果有更好的解决方案,那就太好了。 我想通过 jquery 显示数据,这是最重要的。任何帮助,将不胜感激。
main.php 文件
$result = $con->query("
SELECT s.Name, p.Title, p.Description FROM students s LEFT JOIN projects p ON s.Student_id = p.Project_id LEFT JOIN proj_stu_junc psg ON p.Project_id = psg.Student_id");
// var_dump($result);
while($row=mysqli_fetch_assoc($result))
$image=$row ['Title'];
echo $image;
mysqli_free_result($result);
JS 文件
$.ajax(
type: "GET",
url: 'main.php',
dataType: 'text',
success: getfive
);
function getfive(val)
var stuArray = val.split('\n');
stuArray.forEach(function(studentName)
$('#getfive').append('<div>'+studentName+'</div>')
);
每组项目应生成一个单独的 div。
HTML 占位符
<div class="main-container">
<div id="getfive"></div>
</div>
【问题讨论】:
请显示每个类型的几个示例输出 @mplungjan 我目前还无法检索数据 首先将echo $image;
更改为 echo json_encode($image);
在循环外部,如果您想显示名称,可能不使用图像和标题
可以看this之类的代码
我认为mysql查询有问题
【参考方案1】:
还不能评论..所以我试着给出答案。
首先我建议你在你的 mysql 数据库工具(phpmyadmin/workbench)上制定你的 SQL 语句,而不是用 php 运行它,如果有任何需要它会更容易调试。
现在对于 ajax 结果,不要将数组限制为标题。 将所有查询的值作为 JSON 传递。
然后简单地显示, 识别唯一的标题。 循环这些标题并打印出每个 div 具有相同标题的学生。
【讨论】:
如何通过上面的mysql查询在同一个项目中挑选一组学生?我对此有点陌生 使用 sql?然后在您拥有的原始 sql 中添加“where p.project_id = '[id of google,apple, etc]'”。但是,如果那是您将如何做到的。对于主程序,您将需要根据循环位置运行多个 sql 语句或 ajax 调用。 有没有办法让它动态而不是不使用静态ID? 按照我的建议,传递所有查询的数据。不仅仅是标题。将所有数据传输到 JS 后。这就是您可以根据需要在各个 div 中动态排序它们的时间和地点。使用 PHP 运行 SQL,然后使用 AJAX 将“所有”数据传递给 JS。使用JS排序显示。所以简而言之首先要学会正确地从 SQL 输出数据。然后学习使用 ajax/json 将数组数据从 php 传递给 js。最后,使用js将数据显示到html中。以上是关于使用ajax jquery在html中对db中的相同数据进行分组的主要内容,如果未能解决你的问题,请参考以下文章
为 AJAX 请求在 jQuery 中对字符串进行 URL 编码
使用 jquery .ajax 从 mySQL DB 中检索记录