PHP:显示Array中的数据

时间:2013-09-19 22:03:40

标签: php mysql arrays

我正在研究一个程序并提出一些烦人的问题。我正在尝试显示数组中的数据。我从我设置的另一个数组中复制了格式,它完美无缺。唯一的区别是我收集了更多的数据......

调用该函数:

$data1 = display_orders($_SESSION['user_id'], $limit, 'fName', 'lName', 'VendorName',      'DateRequested', 'Shipping', 'VendorNumber', 'VendorFax', 'VendorAddress', 'VendorCity', 'VendorState', 'VendorZip', 'EquipmentConsumable', 'GasType', 'GasLocation', 'UNMTag', 'EquipmentLocation', 'index', 'totalcost', 'Approved', 'Shipped');

功能本身

<?php
function display_orders($user_id, $limit)
{
    $data = array();
    $user_id = (int)$user_id;
    $limit = (int)$limit;

        $func_num_args = func_num_args();
        $func_get_args = func_get_args();

//  print_r($func_get_args);
                if ($func_num_args > 1)
                        {
                                unset($func_get_args[0]);
                unset($func_get_args[1]);


                                $fields = '`' . implode('`, `', $func_get_args) . '`';

                for($x = 0; $x < $limit; $x++)
                {   

                $data[] = mysql_fetch_assoc(mysql_query("SELECT $fields  FROM  `users` ,  `vendor` WHERE $user_id = users.id AND $user_id = vendor.user_id ORDER BY vendor.DateRequested DESC"));
                }
                return $data;
            }

}

?>

所以现在我尝试回复数据:

echo $data1['VendorName'];

我没有输出。

如果我执行以下操作:

print_r ($data1);

我得到了输出!

数组([0] =&gt;数组([fName] =&gt; admin [lName] =&gt;测试[VendorName] =&gt; Newegg [DateRequested] =&gt; 2013-09-19 [送货] =&gt ;标准[VendorNumber] =&gt; NA [VendorFax] =&gt; NA [VendorAddress] =&gt; NA [VendorCity] =&gt; NA [VendorState] =&gt; NA [VendorZip] =&gt; 00000 [EquipmentConsumable] =&gt;设备[GasType] =&gt; [GasLocation] =&gt; [UNMTag] =&gt; 0 [EquipmentLocation] =&gt;计算机实验室[index] =&gt; 0 [totalcost] =&gt; 39.99 [已批准] =&gt; 0 [发货] =&gt; 0))

但如果我尝试添加字段名称No data ....

任何帮助,我将不胜感激!

3 个答案:

答案 0 :(得分:5)

如您所见,$data1Array([0] => Array(...)),因此您需要致电

echo $data1[0]['VendorName'];

这是因为您要将数据指定为$data[] = mysql_fetch_assoc(...)

答案 1 :(得分:3)

echo $data1[0]['VendorName'];

我建议在使用print_r时首先回显<PRE>,因为它可以帮助您更轻松地查看数组的真实结构。在这种情况下,VendorName的位置比您回显的深一层。

答案 2 :(得分:0)

您忘记了索引[0]

echo $data1[0]['VendorName'];