使用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 显示数据,这是最重要的。任何帮助,将不胜感激。

ma​​in.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中的相同数据进行分组的主要内容,如果未能解决你的问题,请参考以下文章

jquery ajax 方法及各参数详解

为 AJAX 请求在 jQuery 中对字符串进行 URL 编码

使用 jquery .ajax 从 mySQL DB 中检索记录

Jquery ajax不执行成功

通过在 MVC 中使用 Jquery 和 ajax 进行搜索来获取 html 表中的值

jQuery中的deferred对象的使用