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 回答