Извлечение данных путем соединения двух таблиц: PHP

#php #mysqli

#php #mysqli

Вопрос:

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

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

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

и у меня есть другая таблица с именем patients как

patient_id, patient_name, doctor_id.

Где doctor_id — это внешний ключ к таблице Users.

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

 $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:xampphtdocsjolidataforeigndata.php on line 10

Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, null 
given in C:xampphtdocsjolidataforeigndata.php on line 12
  

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

Ответ №1:

Вы должны использовать 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. @Abnit Chauhan Ответ обновлен, дайте мне знать, если ваша проблема не решена

2. теперь это работает. спасибо, я допустил глупую ошибку. спасибо за упоминание

Ответ №2:

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

выберите users.user_email в качестве имени из users inner присоединиться к пациентам на users.id=patients.doctor_id где users.id =’1′

Ответ №3:

Как и в ошибке, «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'] ;
}
  

Комментарии:

1. Одинарные кавычки нельзя использовать для имен столбцов / таблиц.

Ответ №4:

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

 $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'] ;
}
  

Комментарии:

1. В этом ответе есть несколько ошибок. Одинарные кавычки нельзя использовать для имен столбцов / таблиц. myslqi_fetch_array должно быть mysqli_fetch_array

Ответ №5:

попробуйте

  $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'] ;
    }
  

Комментарии:

1. Одинарные кавычки нельзя использовать для имен столбцов / таблиц.