晚安,
我正在使用以下代码从数据库加载许多代码:
$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的顺序返回,而是通过回调检索时间。我正在考虑将数据传递给数组,然后使用它来指示顺序。我有兴趣听到这是否是解决这个问题的最佳方法,如果是,最好的方法就是这样做。
提前感谢您的建议和持续的耐心。
非常感谢。
答案 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相关联,以使它们按顺序显示。