[英]Printing a php multidimensional array
我正在尝试打印一个数组。
第一个例子。
$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
)
如您所见,结果很多,但不完全是我期望的结果。 在两个示例中,我都得到重复的数据。
我在这里做错什么了吗? 我认为第一个示例应该已经打印了数组的全部内容。
您应该首先将所有结果提取到数组,然后再打印
$result = [];
while ($row = mysql_fetch_assoc($result2)){
$result[] = $row;
}
print_r($result);
UPD:要摆脱重复数据,请使用mysql_fetch_assoc而不是mysql_fetch_array
UPD2:考虑使用mysqli扩展名而不是mysql。 PHP.net
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.