php - Mysqli 选择多个查询

标签 php mysql mysqli

我试图通过使用 user_id 来选择一个查询来获取特定于用户的类别,然后从那里使用第一个查询的结果从第二个表中选择数据第二个查询。我想在下拉菜单中显示来自第二个查询的数据。有什么简单的方法可以做到这一点?我刚开始使用 mysqli,所以请多多包涵。

我有以下功能,但它没有在下拉菜单中显示任何内容,但它显示了下拉菜单。

function get_classes($mysqli) {
     if(isset($_SESSION['user_id'], $_SESSION['username'], $_SESSION['login_string'])) {
    $user_id = $_SESSION['user_id'];
    if ($stmt = $mysqli->prepare("SELECT category_id 
                            FROM questions WHERE user_id = ?")) {
        $stmt->bind_param('i', $user_id);
        $stmt->execute();
        $stmt->store_result();

        if($stmt->num_rows>0) {
            $stmt->bind_result($category_id);
            $stmt->fetch();
            if($result = $mysqli->prepare("SELECT category_id, category_name
                            FROM category WHERE category_id = ?")) {
                $result->bind_param('s', $category_id);
                $result->execute();
                $result->store_result();
            }
        }
        echo "<select id='classes' name='classes'>";
        while ($row = $result->fetch_assoc()) {
            unset($user_id, $category_name);
            $category_id = $row['category_id'];
            $category_name = $row['category_name'];
            echo '<option value="'.$category_id.'">'.$category_name.'</option>';
        }
        echo "</select>";
    }

}
}

我正在使用以下代码从另一个页面调用该函数:

<?php
            get_classes($mysqli);

            ?>

最佳答案

您可以通过一个 sql 查询完成所有操作:

SELECT c.category_id, c.category_name
  FROM questions q
  INNER JOIN category c ON c.category_id = q.category_id
  WHERE q.user_id = ?

关于php - Mysqli 选择多个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25798629/

相关文章:

php - mysqli_real_escape_string 与数组在 php 中?

php - 调用 bool 值上的成员函数bind_param(),使用占位符时函数prepare()返回false

php - 如何使用 MySql 和缩放级别创建 Google map 服务器端集群?

sql - 优化查询

mysql - 使用 mysql 调用 JMS API

mysql - 在 MySQL 中,如何从长文本字符串中提取 URL?

PHP 停止运行脚本

PHP MYSQL - 搜索和排序查询结果

php - 哪个协议(protocol)会少 "expensive"?

php - 如何编写这个复杂的 MySQL 查询