Получить данные, соединив две таблицы: PHP - PullRequest
0 голосов
/ 10 апреля 2019

Я пытаюсь получить user_email на основе внешнего ключа, который я установил в другой таблице.

Предположим, в одной таблице 'Users' у меня есть:

Пользователи: id, user_email, user_phone и т. д.

и у меня есть другие пациенты, названные в таблице как

Patient_id, имя пациента, doctor_id.

Где doctor_id - это внешний ключ таблицы пользователей.

У меня есть следующий код:

$query = "SELECT 'users.user_email' as 'name'
FROM users,patients 
WHERE 'users.id'='patients.doctor_id' AND 'users.id'='1';
" ;
 $result = mysqli_fetch_assoc($conn,$query) ;

while ($row = mysqli_fetch_assoc($result)) {
    echo $row['name'] ;
}

Проблема в том, что он не работает. это дает ошибку:

Warning: mysqli_fetch_assoc() expects exactly 1 parameter, 2 given in 
C:\xampp\htdocs\joli\data\foreigndata.php on line 10

Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, null 
given in C:\xampp\htdocs\joli\data\foreigndata.php on line 12

PS: соединение с базой данных уже установлено.

Ответы [ 5 ]

4 голосов
/ 10 апреля 2019

Вы должны использовать mysqli_query(), чтобы выполнить запрос, а затем mysqli_fetch_assoc(), чтобы получить результат, как показано ниже:

$query = "SELECT 'users.user_email' as 'name'
FROM users,patients 
WHERE 'users.id'='patients.doctor_id' AND 'users.id'='1';
" ;

$result=mysqli_query($conn,$query);
while ($row = mysqli_fetch_assoc($result)) {
    echo $row['name'] ;
}
1 голос
/ 10 апреля 2019

Попробуйте это

$query = "SELECT 'users.user_email' as 'name' FROM users
inner join patients on 'users.id'='patients.doctor_id'
WHERE 'users.id'='1'";

$result = mysqli_query($query);

while ($row = myslqi_fetch_array($result)) {
    echo $row['name'] ;
}
0 голосов
/ 03 мая 2019

попробуй

 $query = "SELECT 'users.user_email' as 'name' FROM users
    inner join patients on 'users.id'='patients.doctor_id'
    WHERE 'users.id'='1'";

    $result = mysqli_query($query);

    while ($row = myslqi_fetch_array($result)) {
        echo $row['name'] ;
    }
0 голосов
/ 10 апреля 2019

Как говорит ошибка, « mysqli_fetch_assoc () ожидает ровно 1 параметр, 2 указано в »

mysqli_fetch_assoc () ожидает только 1 параметр, но вы передаете 2.

Попробуйте это.

$query = "SELECT 'users.user_email' as 'name'
FROM users,patients 
WHERE 'users.id'='patients.doctor_id' AND 'users.id'='1';
" ;

$result=mysqli_query($conn,$query);

while ($row = mysqli_fetch_assoc($result)) {
    echo $row['name'] ;
}
0 голосов
/ 10 апреля 2019

Попробуйте это

выберите users.user_email в качестве имени пользователя для внутреннего присоединения пациентов к users.id = Patient.doctor_id где users.id = '1'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...