0

私はプログラムに取り組んでいて、厄介な問題を思いつきました。配列からデータを表示しようとしています。セットアップした別のアレイからフォーマットをコピーしましたが、完璧に機能します。唯一の違いは、より多くのデータを収集していることです...

関数の呼び出し:

$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);

私は出力を得ます!

Array ( [0] => Array ( [fName] => admin [lName] => test [VendorName] => Newegg [DateRequested] => 2013-09-19 [Shipping] => Standard [VendorNumber] => NA [ VendorFax] => NA [VendorAddress] => NA [VendorCity] => NA [VendorState] => NA [VendorZip] => 00000 [EquipmentConsumable] => Equipment [GasType] => [GasLocation] => [UNMTag] => 0 [EquipmentLocation] => コンピュータ ラボ [インデックス] => 0 [合計コスト] => 39.99 [承認済み] => 0 [出荷済み] => 0 ) )

しかし、フィールド名を追加しようとするとデータがありません....

どんな助けでも、私は感謝します!

4

3 に答える 3

5

ご覧のとおり、$data1ですArray([0] => Array(...))ので、電話する必要があります

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

これは、データを として割り当てているためです$data[] = mysql_fetch_assoc(...)

于 2013-09-19T22:08:49.770 に答える
3
echo $data1[0]['VendorName'];

print_r を使用するときは、最初にエコー<PRE>することをお勧めします。これにより、配列の真の構造を簡単に確認できるようになります。この場合、VendorName の場所は、エコーしているよりも 1 層深くなります。

于 2013-09-19T22:09:11.250 に答える
0

インデックスを忘れました[0]:

echo $data1[0]['VendorName'];
于 2013-09-19T22:10:45.810 に答える