2012-03-25 60 views
1

好吧我仍然有點生疏在PHP/MySQL。所以這可能不是實現我所嘗試的最佳方法,所以讓我知道我應該怎樣實現這個目標:Mysql數據到PHP數組,然後顯示?

我正在處理存儲單元列表的一個小項目。 在我的數據庫中,我有以下幾點:

Unit id | Area | Row | Unit | Status   | 
     | 1-9 | 1 - 200 | 1-20 | Empty/Renter | 

單元標識由sector.section.unit

的現在我想做的是從各部門和部分顯示的20個聯信的列表在頁面上。

1. 1.300.1 - Empty 
2. 1.300.2 - John Doe - $75 Monthly - 10x10 
... 
19. 1.300.19 - Jane Evens - $40 Bi-Monthly - 10x10 
20. 1.300.20 - Empty 

我在想什麼是搶佔了所有MySQL的數據是在區域1後,在排300中的數據轉換爲PHP assosiative陣列由它的單元ID。然後簡單地爲一行的20個單元做一個for()語句。顯示陣列數據(如果有的話)。我怎麼能這樣做呢?

或者我應該繼續前進,只是讓數據庫中的每個單元都是空的,否則會被填滿?

先進的謝謝,

+0

請描述一下你的表格結構,以及你想要做什麼。 – 2012-03-25 15:21:56

+0

對不起,我嘗試格式化它,但過濾器刪除它。 我想要的是一個垂直列表,對一行的每個單元進行計數(1-20) 然後如果數據庫中沒有任何內容或者有關它的信息(如果有),則顯示爲空。我在想如果有任何信息與存儲單元連接。 如果有信息將其放入php中的關聯數組中,並將其傳回,以便在包含信息時可以輕鬆地對數組執行爆炸。 我的表有: 單位ID | AREA |部分| UNIT – benjaminj 2012-03-25 15:27:18

+0

您正在尋找的任何機會[this](http://php.net/manual/en/function.mysql-fetch-assoc.php) – 2012-03-25 15:43:06

回答

0

這裏的代碼工作。它會創建臨時表並用數字序列填充它,然後將該表與您的單元表連接起來。您將在沒有任何記錄的行上獲得NULL值。

CREATE TEMPORARY TABLE `sequence` (
    `Id` int(11) NOT NULL auto_increment, 
    PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8; 

DELIMITER // 
CREATE PROCEDURE fill_sequence() 
BEGIN 
    DECLARE v1 INT DEFAULT 20; 
    WHILE v1 > 0 DO 
INSERT sequence VALUES (NULL); 
SET v1 = v1 - 1; 
    END WHILE; 
END // 
DELIMITER ; 

CALL fill_sequence(); 
SELECT * FROM sequence LEFT JOIN units ON (sequence.id = units.unit_id);