2015-10-20 39 views
-2

這裏是我的書表tbl_books如何顯示屬於機架的書籍總數?

CREATE TABLE IF NOT EXISTS `tbl_books` (
    `book_id` int(11) NOT NULL AUTO_INCREMENT, 
    `book_title` varchar(255) NOT NULL, 
    `book_author` varchar(255) NOT NULL, 
    `book_year` varchar(255) NOT NULL, 
    `book_rack` varchar(255) NOT NULL, 
    PRIMARY KEY (`book_id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ; 

這裏是我的機架tbl_rack

CREATE TABLE IF NOT EXISTS `tbl_rack` (
    `rack_id` int(11) NOT NULL AUTO_INCREMENT, 
    `rack_name` varchar(255) NOT NULL, 
    PRIMARY KEY (`rack_id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ; 

問題的第二個表,我想解決: 我想顯示在一個機架上的所有數據表 編號名稱此書架中沒有任何書籍? 我怎樣才能顯示圖書它們總不屬於特定的機架??/ 請幫

+0

你需要一個外鍵鏈接你的表。 http://www.w3schools.com/sql/sql_foreignkey.asp –

回答

0

可以遍歷您的機架和上機架(我算每本書把它tbl_books.book_rack = tbl_rack.rack_name,你知道如何使用PDO連接到您的數據庫和連接稱爲$ DB)

$rack = $db->query('select distinct rack_name from tbl_racks'); 
    $rack->execute(); $result = $rack->fetch_all('PDO::FETCH_ASSOC'); 

    foreach($result as $r){ 
     $books = $db->query('count(book_id) as num_books from tbl_books where book_rack = :book_rack'); 
     $books->execute(array("book_rack"=>$r['rack_name'])); 
     $b = $books->fetch('PDO::FETCH_ASSOC'); 
     echo $b['num_books']; 
    }