使用PHP从SQL数据库中的多个表中搜索数据

时间:2018-05-05 13:01:24

标签: php sql search html-table multiple-tables

我正在从SQL数据库中的多个表中搜索数据并在PHP网页中显示。

但是,我有一个错误:

  

警告:mysql_fetch_array()要求参数1为资源,布尔值在第71行的C:\ xampp \ htdocs \ projets \ simple_veto \ rdv_liste.php中给出

以下是查询:

<table class="table table-sm table-dark">
    <tr>
        <th>Client</th>
        <th>Médecin</th>
        <th>Animal</th>
        <th>Cabinet</th>
        <th>Date</th>
        <th>Heure</th>
    </tr>
    <!-- Script de liste -->
<?php
//On recupere les informations
$req = mysql_query('SELECT rdv.client, rdv.medecin, rdv.animal, rdv.cabinet, client.nom, medecin.nom, animal.nom, cabinet.nom, date_rdv, time FROM client, medecin, animal, cabinet WHERE rdv.client=client.id_cli AND rdv.medecin=medecin.id_med AND rdv.animal=animal.id_ani AND rdv.cabinet=cabinet.id_cab');
while($dnn = mysql_fetch_array($req))
{
?>
    <tr>
        <td class="left"><?php echo htmlentities($dnn['client'], ENT_QUOTES, 'UTF-8'); ?></td>
        <td class="left"><?php echo htmlentities($dnn['medecin'], ENT_QUOTES, 'UTF-8'); ?></td>
        <td class="left"><?php echo htmlentities($dnn['animal'], ENT_QUOTES, 'UTF-8'); ?></td>
        <td class="left"><?php echo htmlentities($dnn['cabinet'], ENT_QUOTES, 'UTF-8'); ?></td>
        <td class="left"><?php echo htmlentities($dnn['date_rdv'], ENT_QUOTES, 'UTF-8'); ?></td>
        <td class="left"><?php echo htmlentities($dnn['time'], ENT_QUOTES, 'UTF-8'); ?></td>
    </tr>

<?php
}

有关信息,

我的数据库如下:

表格rdv - 包含以下行:id_rdvclientmedecinanimalcabinetdate_rdv,{{1 }}

在此表中:

  • 客户端是 - &gt;的外键。表客户
  • medecin是 - &gt;的外键。表medecin
  • 动物是 - &gt;的外键。表动物
  • cabinet是 - &gt;的外键。桌柜

非常感谢一点帮助,

1 个答案:

答案 0 :(得分:0)

如果您知道所有表格中都包含所有信息,您可以使用: (但我不知道什么是 rdv

如果不是所有表都有信息使用LEFT JOIN或RIGHT JOIN而不是INNER JOIN

$query = "SELECT 
            rdv.client
          , rdv.medecin
          , rdv.animal
          , rdv.cabinet
          , client.nom
          , medecin.nom
          , animal.nom
          , cabinet.nom
          , date_rdv
          , time 
          FROM 
              client 
              INNER JOIN  rdv     ON rdv.client=client.id_cli
              INNER JOIN  medecin ON rdv.medecin=medecin.id
              INNER JOIN  animal  ON rdv.animal=animal.id_ani
              INNER JOIN  cabinet ON rdv.cabinet=cabinet.id_cab
          WHERE
              client.id_cli = ". $clientid;


$req = mysql_query($query);