0

ここに画像の説明を入力

フィールド値を返そうとしています。PHPで試してみましたが、動作しますが、同じフィールドが何度も返されます。直接クエリを実行してテストしたところ、これが得られました...

データを取得するために使用する関数は次のとおりです。

<?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;
    }

}

?>

これは以下を返し、newegg エントリを何度もループします。

ここに画像の説明を入力

このコミュニティが大好きです!

4

2 に答える 2

1

問題は、列名を引用することです。これは、クエリの結果から一致するすべての行に対して、その値が列として返されることを意味します。

列を囲む引用符を削除するだけです。最初に 1 つの列で試し、動作することを確認してから、残りの列についても同じことを行います。

于 2013-09-20T01:22:59.463 に答える