好吧我在php / mysql上还是有点生疏。所以这可能不是实现我想要的最佳方法,所以让我知道我应该做些什么或如何实现这个目标:
我正在开发一个存储单元列表的小项目。 在我的数据库中,我有以下内容:
Unit id | Area | Row | Unit | Status |
| 1-9 | 1 - 200 | 1-20 | Empty / Renter |
单位ID由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
我在想的是抓住区域1中的所有mysql数据后,在行300中将数据转换为php assosiative数组,由它的单位ID。然后只需为一行的20个单位执行for()语句。显示数组数据(如果有)。我怎么能这样做呢?
或者我应该继续前进,让数据库中的每个单位都为空,直到填满?
先谢谢你,
答案 0 :(得分: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);