PHP:如何从另一个表中选择和显示?

时间:2018-04-25 08:01:10

标签: php mysql union

我的数据库中有两个表。一个标有tempahanbilik而另一个标记为bilik。两个表都有一个名为id的列(具有相同的值)。现在,我想显示tempahanbilik表中没有的其他数据

以下是代码:

$query = "SELECT * FROM tempahanbilik 
        WHERE tarikh BETWEEN '".$_SESSION['tarikh']."' AND '".$_SESSION['tarikh2']."'
    && tempahanbilik.id NOT IN (SELECT bilik.id FROM bilik)";


$results = $mysqli->query($query) or die($mysqli->error._LINE_);




$q = "SELECT * FROM bilik";



$result = $mysqli->query($query) or die($mysqli->error._LINE_);

   $total = $results->num_rows;
    if($total>0)
    {
        while($rows=$results->fetch_assoc())
        {   

            $nama = $rows['tempat'];
             echo" <tr>
         <td align = center><a href='tengokKosong2.php?tempat=$nama'>$nama</a></td>";

         echo "</tr>";
        }

    }
    else
    {
        while($row=$result->fetch_assoc())
        { 

            $id=$row['id'];
            $nama =$row['nama'];

         echo" <tr>
         <td align = center><a href='tengokKosong2.php?id=$id&nama=$nama'>$nama</a></td>";

         echo "</tr>";

        }
    }

2 个答案:

答案 0 :(得分:0)

无需加入表格,您可以使用sub query。你的查询应该是这样的

$query = "SELECT * FROM tempahanbilik 
    WHERE ( tarikh BETWEEN '".$_SESSION['tarikh']."' AND '".$_SESSION['tarikh2']."'
) AND tempahanbilik.id NOT IN (SELECT bilik.id FROM bilik)";

答案 1 :(得分:0)

你想显示bilik中不在tempahanbilik中的信息吗?

$query = "SELECT * FROM bilik 
WHERE id NOT IN (SELECT id FROM tempahanbilik WHERE 
tarikh BETWEEN '".$_SESSION['tarikh']."' AND '".$_SESSION['tarikh2']."')";

请尝试使用上述查询,让我知道它有结果。