2016-10-27 118 views
1

我需要帮助才能将其发送给我的客户。他坚持认为,库存报告的格式应该是这样的:[PHP-MYSQL]查询报告

Report

虽然在mysql中我的库存表是这样的:

Inventory Table

基本上,他希望应用程序组按项目名称和颜色显示库存,然后对于数量列,他希望应用程序将其显示在包含打印尺寸的一列中,具体取决于数量。因此,如果库存表显示我们有4个尺码为42的红色耐克鞋和3个尺码为41的红色耐克鞋,那么它将在本专栏中印上“41 41 41 42 42 42 42”。

我希望我解释得很好,请查看我的库存表和详细报告。

我需要建议如何正确地做到这一点,我可以做到这一点只使用SQL查询,或者我应该与PHP代码结合呢?

感谢您的帮助

亲切问候

+0

嗯,我认为你的“客户”是困惑的。但客户永远不会错。那么,如果我说,尝试使用SQL和PHP会让你去。你基本上已经在你的描述中伪装了它。不要试图太快聪明,把它分解,看看会出现什么。 – TimBrownlaw

回答

0

我认为你需要先使用查询:

select Item,Color,GROUP_CONCAT(Size) as SIZE,GROUP_CONCAT(Qty) as Qty from --tablename-- group by Item,Color 

然后使用PHP while循环,让您的结果

while($num=$result){ 
$item=$num['Item']; 
$Color=$num['Color']; 
$size=explode(",",$num['SIZE']); 
$size_show=""; 
$qty=$num['Qty']; 
$qty1=explode(",",$qty); 
foreach($size as $key=>$val){ 
$qty2=$qty1[$val]; 
$k=1; 
while($k<=$qty2){ 
$size_show.="".$val." "; 
$k++; 
} 

} 

echo $size_show; 
} 

请注意,我只给出了这个想法,并没有测试代码

+0

非常感谢我试过你的想法并将其应用于我的代码中。它的工作原理和我只是做了轻微的修改在每个循环:的foreach($大小为$密钥=> $ VAL) \t \t { \t \t \t $ qty2 = $ qty1 [$键]。 \t \t \t $ k = 1; \t \t \t而($ķ<= $ qty2) \t \t \t { \t \t \t \t $ size_show = “” $ VAL。”“。 \t \t \t \t $ k ++; \t \t \t} \t \t} –

+0

我你的感受是正确的,你可以voteup并单击右键 –

+0

啊,我已经做了,但因为我的名声仍低于15,我认为它不会是发布 –