2017-07-10 73 views
0

我有4個表,我想要顯示所有這些表的結果。但是,我在從這些表中檢索數據時遇到了問題。對於所有表格,它們具有相同的密鑰,稱爲applicantId,我想用此密鑰連接所有表格。用MySql選擇多個表php

此外,這是我建立的帳戶基地網站。所以這些數據將會有一個獨特的accountId。這意味着一個人只能在他們的賬戶中查看他們自己的數據。

問題我現在有的是我無法從MySql獲取數據。

這些都是我見下表:

帳戶表: enter image description here

applicantpersonaldetails表: enter image description here

employementdetails表: enter image description here

existingbankproducts表: enter image description here

這是我的代碼在PHP:

<div class="panel-body"> 
         <?php 

         $stmt = $DB_con->prepare("SELECT * FROM applicantpersonaldetails,employementdetails,existingbankproducts " 
           . "WHERE applicantpersonaldetails.ApplicantID = employementdetails.ApplicantID " 
           . "= existingbankproducts.applicantID " 
           . "and applicantpersonaldetails.AccountID ='{$accountId}'"); 
         $stmt->execute(); 

         if ($stmt->rowCount() > 0) { 
          while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { 
           extract($row); 
           ?> 
<?php 
          } 
         } else { 
          ?> 
          <div class="col-xs-12"> 
           <div class="alert alert-warning"> 
            <span class="glyphicon glyphicon-info-sign"></span> &nbsp; No Data Found ... 
           </div> 
          </div> 
          <?php 
         } 
         ?> 
        </div> 

的$ accountId是讓它我登入後。

+0

爲什麼不使用連接來獲取數據? –

+0

你得到了什麼錯誤..?你有沒有嘗試直接在phpMyAdmin執行查詢..? –

+0

問題是我沒有從mysql獲取數據,顯示0行數據 – xhinvis

回答

0

你應該在選擇它們的同時將這些表連接在一起,這意味着當表仍然不同時,使用「id」字段作爲主鍵選擇它們作爲唯一表。這裏是一些有關加入規則的文檔 https://www.w3schools.com/sql/sql_join.asp

0

您錯過了AND

這應該工作。

$stmt = $DB_con->prepare("SELECT * FROM applicantpersonaldetails,employementdetails,existingbankproducts " 
    . "WHERE applicantpersonaldetails.ApplicantID = employementdetails.ApplicantID " 
    . "and applicantpersonaldetails.ApplicantID = existingbankproducts.applicantID " 
    . "and applicantpersonaldetails.AccountID ='{$accountId}'"); 

通過我建議你使用JOIN因爲從多個表中選擇的方式使得該語句很不清楚。此外使用別名會是一個好主意,因爲你的表名很長。

$stmt = $DB_con->prepare("SELECT * FROM applicantpersonaldetails apd " 
    . "JOIN employementdetails ed ON apd.ApplicantID = ed.ApplicantID " 
    . "JOIN existingbankproducts ebp ON apb.ApplicantID = ebp.ApplicantID " 
    . "WHERE apd.AccountID ='{$accountId}'");