#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. Одинарные кавычки нельзя использовать для имен столбцов / таблиц.