2015-09-07 116 views
0

我想打印一个数组。我需要帮助打印一个php multidementional阵列

第一个例子。

$result2 = mysql_query("SELECT 
ps_product_attribute.id_product_attribute AS attribute_id, 
ps_advanced_attributes.pack_product_id AS base_product, 
ps_advanced_attributes.pack_product_qty AS qty_base_product, 
ps_stock_available.quantity AS base_product_on_hand, 
FLOOR(ps_stock_available.quantity/ps_advanced_attributes.pack_product_qty) AS available_to_customer 
FROM ps_product_attribute 
JOIN ps_advanced_attributes ON ps_advanced_attributes.attribute_id = ps_product_attribute.id_product_attribute 
JOIN ps_stock_available ON ps_stock_available.id_product = ps_advanced_attributes.pack_product_id 
ORDER BY ps_product_attribute.id_product_attribute ASC, ps_stock_available.quantity DESC"); 

echo '<pre>'; 
WHILE($db_field2 = mysql_fetch_array($result2)){ 
print_r($db_field2);} 
echo '</pre>'; 

给出了这样的结果......只有

Array(
    [0] => 6703 
    [attribute_id] => 6703 
    [1] => 382 
    [base_product] => 382 
    [2] => 1 
    [qty_base_product] => 1 
    [3] => 69 
    [base_product_on_hand] => 69 
    [4] => 69 
    [available_to_customer] => 69 
) 

这一结果

例如2 ...

$result2 = mysql_query("SELECT 
ps_product_attribute.id_product_attribute AS attribute_id, 
ps_advanced_attributes.pack_product_id AS base_product, 
ps_advanced_attributes.pack_product_qty AS qty_base_product, 
ps_stock_available.quantity AS base_product_on_hand, 
FLOOR(ps_stock_available.quantity/ps_advanced_attributes.pack_product_qty) AS available_to_customer 
FROM ps_product_attribute 
JOIN ps_advanced_attributes ON ps_advanced_attributes.attribute_id = ps_product_attribute.id_product_attribute 
JOIN ps_stock_available ON ps_stock_available.id_product = ps_advanced_attributes.pack_product_id 
ORDER BY ps_product_attribute.id_product_attribute ASC, ps_stock_available.quantity DESC"); 

echo '<pre>'; 
WHILE($db_field2 = mysql_fetch_array($result2)){ 
print_r($db_field2);} 
echo '</pre>'; 

篮网这样的结果......

Array 

(

    [0] => 6703 
    [attribute_id] => 6703 
    [1] => 382 
    [base_product] => 382 
    [2] => 1 
    [qty_base_product] => 1 
    [3] => 69 
    [base_product_on_hand] => 69 
    [4] => 69 
    [available_to_customer] => 69 
) 

Array 

(

    [0] => 6703 
    [attribute_id] => 6703 
    [1] => 103 
    [base_product] => 103 
    [2] => 1 
    [qty_base_product] => 1 
    [3] => 4 
    [base_product_on_hand] => 4 
    [4] => 4 
    [available_to_customer] => 4 
) 
Array 
(

    [0] => 6703 
    [attribute_id] => 6703 
    [1] => 471 
    [base_product] => 471 
    [2] => 1 
    [qty_base_product] => 1 
    [3] => 0 
    [base_product_on_hand] => 0 
    [4] => 0 
    [available_to_customer] => 0 
) 
Array 
(

    [0] => 6704 
    [attribute_id] => 6704 
    [1] => 103 
    [base_product] => 103 
    [2] => 1 
    [qty_base_product] => 1 
    [3] => 4 
    [base_product_on_hand] => 4 
    [4] => 4 
    [available_to_customer] => 4 
) 
Array 
(

    [0] => 6704 
    [attribute_id] => 6704 
    [1] => 397 
    [base_product] => 397 
    [2] => 1 
    [qty_base_product] => 1 
    [3] => 0 
    [base_product_on_hand] => 0 
    [4] => 0 
    [available_to_customer] => 0 
) 
Array 
(

    [0] => 6704 
    [attribute_id] => 6704 
    [1] => 465 
    [base_product] => 465 
    [2] => 1 
    [qty_base_product] => 1 
    [3] => 0 
    [base_product_on_hand] => 0 
    [4] => 0 
    [available_to_customer] => 0 
) 
Array 
(

    [0] => 6705 
    [attribute_id] => 6705 
    [1] => 103 
    [base_product] => 103 
    [2] => 1 
    [qty_base_product] => 1 
    [3] => 4 
    [base_product_on_hand] => 4 
    [4] => 4 
    [available_to_customer] => 4 
) 
Array 
(

    [0] => 6705 
    [attribute_id] => 6705 
    [1] => 533 
    [base_product] => 533 
    [2] => 1 
    [qty_base_product] => 1 
    [3] => 2 
    [base_product_on_hand] => 2 
    [4] => 2 
    [available_to_customer] => 2 
) 
Array 
(

    [0] => 6705 
    [attribute_id] => 6705 
    [1] => 469 
    [base_product] => 469 
    [2] => 1 
    [qty_base_product] => 1 
    [3] => 0 
    [base_product_on_hand] => 0 
    [4] => 0 
    [available_to_customer] => 0 
) 
Array 
(

    [0] => 6706 
    [attribute_id] => 6706 
    [1] => 395 
    [base_product] => 395 
    [2] => 1 
    [qty_base_product] => 1 
    [3] => 41 
    [base_product_on_hand] => 41 
    [4] => 41 
    [available_to_customer] => 41 
) 
Array 
(

    [0] => 6706 
    [attribute_id] => 6706 
    [1] => 103 
    [base_product] => 103 
    [2] => 1 
    [qty_base_product] => 1 
    [3] => 4 
    [base_product_on_hand] => 4 
    [4] => 4 
    [available_to_customer] => 4 
) 

Array 
(

    [0] => 6706 
    [attribute_id] => 6706 
    [1] => 468 
    [base_product] => 468 
    [2] => 1 
    [qty_base_product] => 1 
    [3] => 0 
    [base_product_on_hand] => 0 
    [4] => 0 
    [available_to_customer] => 0 
) 

正如你所看到的,很多结果,但不是我期待看到的。在这两个例子中,我都得到重复的数据。

我在这里做错了什么?我认为第一个例子应该已经打印了数组的全部内容。

+0

你是说hte查询我们错误还是显示?即时消息不明确至于什么问题 –

回答

0

你应该先提取所有结果到数组,然后才打印出来

$result = []; 
while ($row = mysql_fetch_assoc($result2)){ 
    $result[] = $row; 
} 
print_r($result); 

UPD:除掉重复数据的使用mysql_fetch_assoc,而不是mysql_fetch_array

UPD2:考虑使用mysqli扩展,而不是的MySQL。 PHP.net

+0

谢谢,这解决了第一个问题。任何想法摆脱重复的数据? – Coathanger

+0

@Coathanger是的,更新了我的答案 – Mizax

+0

谢谢,这解决了主要问题。关于如何摆脱重复dataArray中的 ( [0] => 6703 [attribute_id] => 6703 [1] => 103 [base_product] => 103 [2] => 1的任何想法 [qty_base_product] => 1 [3] => 4 [base_product_on_hand] => 4 [4] => 4 [available_to_customer] => 4 ) – Coathanger