0

こんばんは、

次のコードを使用して、データベースから多数のティッカー コードを読み込んでいます。

$username='root';
$password='password';
try {
$conn = new PDO('mysql:host=localhost;dbname=stock_d1', $username, $password);
$sql = 'SELECT * FROM holding_t1 WHERE view ="yes" ORDER BY id'; 
foreach($conn->query($sql) as $row) {

  }
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
die();
}

次に、JQuery の getJSON 関数を使用して、以下を使用して YQL 経由で対応するデータを取得しています。

$.getJSON('http://query.yahooapis.com/v1/public/yql?   q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22' + $EPIC + '%22)&format=json &env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=?', 
     function(data) { console.log(data);  
                     var ask = data.query.results.quote.AskRealtime; 
                     var bid = data.query.results.quote.BidRealtime; 
                     var name = data.query.results.quote.Name; 
                     ; } );

YHOO は、データベースから取得したそれぞれのティッカー コードに置き換えられます (この例では、変数が $EPIC であると仮定します)。

Javascript の行をエコーアウトすると、結果は ID 順に返されず、コールバックを介して取得するのに時間がかかります。データを配列に渡し、それを使用して順序を指定することを検討しています。これがこれにアプローチする最善の方法であるかどうか、またそうである場合は最善の方法であるかどうかを知りたいです。

皆様のご提案と引き続きのご辛抱をよろしくお願いいたします。

どうもありがとう。

4

1 に答える 1

0

それらが追加されたときに管理する関数を作成できます。

var waiting = {};
var next = 0;

var addItem = function(id, item) {
    waiting[id] = item;

    while(item = waiting[next]) {
        console.log(item); // Or whatever you need to do with it
        next++;
    }
};

その後:

… function(data) {
    addItem(itemId, data.query.results.quote);
});

このように順番に表示するには、各アイテムを残りのアイテムに対する相対的な ID に関連付ける必要があることに注意してください。

于 2013-02-17T22:48:21.457 に答える