返回列的多个值

时间:2013-04-02 16:36:28

标签: php sql

我在我的数据库中创建了一个诊所表,其中包含诊所的详细信息,例如。 clinicID(主键),姓名,地址,电子邮件等。我有另一张名为Doctor的表,根据clinicID列出诊所的医生姓名。问题是,在一家诊所,每个诊所可以有超过1名医生。如何在html表格中显示诊所的详细信息,该表格将列出所有详细信息,包括诊所中可用的所有医生?

诊所表

clinicID
name
address
email

医生表

clinicID
nameOfDoctor

3 个答案:

答案 0 :(得分:0)

select nameOfdoctor from Doctor where ClinicId=1

将向您展示诊所1的医生名单

答案 1 :(得分:0)

您必须进行两次调用以整理每个查询中的信息:

$raw_clinics = //sql query to get clinic data
$doctors = //sqlquery to get doctors data
$clinics = array();

foreach($raw_clinics as $c) {
    $clinics[$c['clinicID']] = $c;
}

foreach($doctors as $d) {
    if (!isset($clinic[$d['clinicID']]['doctors'])) $clinic[$d['clinicID']]['doctors'] = array();
    $clinic[$d['clinicID']]['doctors'][] = $d;
}

答案 2 :(得分:0)

你需要两个迭代循环才能得到这个(假设你想要一个诊所列表):

$clinicResult = $mysqli->query("SELECT * FROM Clinic");
while ($clinicData = $clinicResult->fetch_assoc()) {
    //Insert your HTML statements regarding clinic details here
    $doctorResult = $mysqli->query("SELECT * FROM Doctor WHERE clinicID = ".$clinicData['clinicID']);

    while ($doctorData = $doctorResult->fetch_assoc() {
        //Insert your HTML statements regarding doctors here
    }
}