php - 使用 sql 查询结果作为新 sql 语句的搜索词

标签 php mysql

所以我尝试使用 SQL 搜索 $search_course 的结果,然后将其作为下一条语句 $Search_Module< 的 WHERE LIKE 部分.

一旦 $Search_Module 查询完成,我希望结果在我知道应该正确编码的列表中。

我尝试了以下代码,但搜索没有返回任何值;

如有任何帮助,我们将不胜感激,在此先致谢。

        $search_course = "
    SELECT title, id, wyl, overview, module, course, careers
    FROM course
    LEFT JOIN cm
    ON course.id=cm.course
    WHERE id LIKE '%".$_POST['submitcourseselection']."%'";

    $result = $mysqli->query($search_course) or die($mysqli->error);
    $display_course = $result->fetch_assoc();

    //Searches the module table in the DB for modules within the course
    $Search_Module = "
    SELECT id, title, level, credits
    FROM module
    WHERE id LIKE '".$search_course['module']."'";

    $M_Results = $mysqli->query($Search_Module) or die($mysqli->error);


    $ModuleList = '';
    while ($MResults = $M_Results->fetch_assoc()) {
        $ID = $MResults['id'];
        $Title = $MResults['title'];
        $Level = $MResults['level'];
        $Credits = $MResults['credits'];
        $ModuleList.='<div><h2>'.$Title.'</h2></div>'; 
    }

最佳答案

您不需要在第二个查询中使用 LIKE,您可以通过一个查询完成所有操作。

    $search_course = "
        SELECT id, title, level, credits
        FROM module
        WHERE id IN (SELECT module
        FROM course
        LEFT JOIN cm
        ON course.id=cm.course
        WHERE id LIKE '%".$_POST['submitcourseselection']."%'")";

关于php - 使用 sql 查询结果作为新 sql 语句的搜索词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36699860/

相关文章:

php - 检查用户是否使用 session 而不是数据库查询登录

javascript - PHP 杂耍困惑

Java 有经验的程序员的书 (PHP)

java - 在php中将字符串转换为utf-8

php - 如何获取从 MySQL 查询检索到的文档/对象总数?

mysql - 如何将 SQL 数据与 OR 条件混合

mysql - 需要在 mysql 中进行排序的帮助

php - 通过使用 php 将随机数插入 mysql 表中,将条目分组为 5 个随机组

php - ffmpeg 仅在命令行上工作,而不是在 php 上工作

javascript - Node.js MySql 如何知道用户 ID 以便在登录后在查询中使用它