通过连接两个表来获取数据:PHP

时间:2019-04-10 05:12:29

标签: php mysqli

我正在尝试根据我在另一个表中设置的外键来获取user_email。

假设我有一个“用户”表:

用户:   id,user_email,user_phone等。

我还有其他表将患者命名为

患者ID,患者名称,医生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 个答案:

答案 0 :(得分:4)

您应该使用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 :(得分:1)

尝试一下

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

答案 2 :(得分:0)

尝试一下

  

从用户内部选择加入users.user_email作为名称加入患者   users.id = patients.doctor_id,其中users.id ='1'

答案 3 :(得分:0)

就像错误说的那样, “ 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'] ;
}

答案 4 :(得分:0)

尝试

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