Невозможно выбрать 3 таблицы, в которых идентификатор пользователя совпадает.Ошибок не возникает - PullRequest
0 голосов
/ 31 января 2019

Итак, у меня есть 3 таблицы, например:

Table: users
    user_id(int)   |  phone(int)

Table: products
    prod_id(int)   |  prod_info(varchar)

Table: prod_owners
    owner_id(int)  |  user_id  |  prod_id

Я создал функцию, в которой я могу разобрать номер телефона.Он будет искать этот номер телефона, чтобы получить user_id.Используя user_id, он присоединится к таблице prod_owners.Затем, используя prod_id из таблицы prod_owners, он присоединится к таблице продуктов, где user_id имеет тот же номер телефона, который мы проанализировали.

Однако, когда я запускаю функцию, я не получаю ошибок или чего-либо еще.Это просто пусто.Я знаю, что функция работает, потому что, когда я делаю SELECT * FROM пользователей.Оно работает.Я также знаю, что в таблице есть данные (данные, которые я хочу вывести).

function get_info($stmt, $phone) {

    $userID = search_user($stmt, $phone); // I feel I don't even need this
                                        // I feel I can put this in the
                                        // sql statement itself. But I am
                                        // unsure how
    if ($userID == false) {
        return "Sorry, user not found";
    }

    $sql = "SELECT u.user_id, o.prod_info 
            FROM users u 
            JOIN prod_owners o 
              USING user_id 
            JOIN products 
              USING o.prod_id 
            WHERE u.phone = ?";
    if(!mysqli_stmt_prepare($stmt, $sql)) {
        return false;
    } else {
        mysqli_stmt_bind_param($stmt, "i", $userID);
        mysqli_stmt_execute($stmt);
        $result = mysqli_stmt_get_result($stmt);
        while($row = mysqli_fetch_assoc($result)) {
          echo $row['prod_info'] . "<br>";
        }
    }
}

1 Ответ

0 голосов
/ 31 января 2019

Попробуйте этот запрос, он должен вам помочь.

SELECT users.user_id, products.prod_info FROM users u 
            INNER JOIN prod_owners ON prod_owners.user_id  =  users.user_id
            INNER JOIN products ON products.prod_id  =  prod_owners.prod_id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...