使用数组排序数据

时间:2013-02-17 22:41:28

标签: php javascript jquery arrays getjson

晚安,

我正在使用以下代码从数据库加载许多代码:

$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的顺序返回,而是通过回调检索时间。我正在考虑将数据传递给数组,然后使用它来指示顺序。我有兴趣听到这是否是解决这个问题的最佳方法,如果是,最好的方法就是这样做。

提前感谢您的建议和持续的耐心。

非常感谢。

1 个答案:

答案 0 :(得分: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相关联,以使它们按顺序显示。