2012-05-11 169 views
0

任何人都可以帮助我如何从yql生成的这个json脚本获取数据。我想存储数据到MySQL是从这里抓起......我想提取或抢DATAS AskRealtime,BidRealtime,LastTradeDate,LastTradePriceOnly,LastTradeTime,向从Json获取或提取数据到php并插入到mysql数据库

<?php 
session_start(); 
query= Insert into table .....value ... 
?> 

我想要做的事,如上面的脚本从下面的json。更好,如果我可以直接打印在HTML表中的一个所提取的数据在同一个页面,而不将其发送到MySQL,并从那里提取数据...

`{

"query": { 
    "count": 5, 
    "created": "2012-05-11T01:14:55Z", 
    "lang": "en-US", 
    "diagnostics": { 
     "publiclyCallable": "true", 
     "redirect": { 
      "from": "http://datatables.org/alltables.env", 
      "status": "301", 
      "content": "http://www.datatables.org/alltables.env" 
     }, 
     "url": [ 
      { 
       "execution-start-time": "425", 
       "execution-stop-time": "865", 
       "execution-time": "440", 
       "proxy": "DEFAULT", 
       "content": "http://datatables.org/alltables.env" 
      }, 
      { 
       "execution-start-time": "884", 
       "execution-stop-time": "1097", 
       "execution-time": "213", 
       "proxy": "DEFAULT", 
       "content": "http://www.datatables.org/yahoo/finance/yahoo.finance.quotes.xml" 
      }, 
      { 
       "execution-start-time": "1307", 
       "execution-stop-time": "1307", 
       "execution-time": "0", 
       "proxy": "DEFAULT", 
       "content": "http://download.finance.yahoo.com/d/quotes.csv?f=aa2bb2b3b4cc1c3c6c8dd1d2ee1e7e8e9ghjkg1g3g4g5g6ii5j1j3j4j5j6k1k2k4k5ll1l2l3mm2m3m4m5m6m7m8nn4opp1p2p5p6qrr1r2r5r6r7ss1s7t1t7t8vv1v7ww1w4xy&s=XAUUSD%3DX,XAGUSD%3DX,PLN12.NYM,PAK12.NYM,USDCAD%3DX" 
      } 
     ], 
     "query": { 
      "execution-start-time": "1105", 
      "execution-stop-time": "1308", 
      "execution-time": "203", 
      "params": "{url=[http://download.finance.yahoo.com/d/quotes.csv?f=aa2bb2b3b4cc1c3c6c8dd1d2ee1e7e8e9ghjkg1g3g4g5g6ii5j1j3j4j5j6k1k2k4k5ll1l2l3mm2m3m4m5m6m7m8nn4opp1p2p5p6qrr1r2r5r6r7ss1s7t1t7t8vv1v7ww1w4xy&s=XAUUSD%3DX,XAGUSD%3DX,PLN12.NYM,PAK12.NYM,USDCAD%3DX]}", 
      "content": "select * from csv where [email protected] and columns='Ask,AverageDailyVolume,Bid,AskRealtime,BidRealtime,BookValue,Change&PercentChange,Change,Commission,ChangeRealtime,AfterHoursChangeRealtime,DividendShare,LastTradeDate,TradeDate,EarningsShare,ErrorIndicationreturnedforsymbolchangedinvalid,EPSEstimateCurrentYear,EPSEstimateNextYear,EPSEstimateNextQuarter,DaysLow,DaysHigh,YearLow,YearHigh,HoldingsGainPercent,AnnualizedGain,HoldingsGain,HoldingsGainPercentRealtime,HoldingsGainRealtime,MoreInfo,OrderBookRealtime,MarketCapitalization,MarketCapRealtime,EBITDA,ChangeFromYearLow,PercentChangeFromYearLow,LastTradeRealtimeWithTime,ChangePercentRealtime,ChangeFromYearHigh,PercebtChangeFromYearHigh,LastTradeWithTime,LastTradePriceOnly,HighLimit,LowLimit,DaysRange,DaysRangeRealtime,FiftydayMovingAverage,TwoHundreddayMovingAverage,ChangeFromTwoHundreddayMovingAverage,PercentChangeFromTwoHundreddayMovingAverage,ChangeFromFiftydayMovingAverage,PercentChangeFromFiftydayMovingAverage,Name,Notes,Open,PreviousClose,PricePaid,ChangeinPercent,PriceSales,PriceBook,ExDividendDate,PERatio,DividendPayDate,PERatioRealtime,PEGRatio,PriceEPSEstimateCurrentYear,PriceEPSEstimateNextYear,Symbol,SharesOwned,ShortRatio,LastTradeTime,TickerTrend,OneyrTargetPrice,Volume,HoldingsValue,HoldingsValueRealtime,YearRange,DaysValueChange,DaysValueChangeRealtime,StockExchange,DividendYield'" 
     }, 
     "javascript": { 
      "execution-time": "266", 
      "instructions-used": "302754", 
      "table-name": "yahoo.finance.quotes" 
     }, 
     "warning": "Unable to sort response according to field 'Ask,Bid,AskRealtime,BidRealtime,LastTradeDate,LastTradePriceOnly,LastTradeTime'.", 
     "user-time": "1373", 
     "service-time": "653", 
     "build-version": "27222" 
    }, 
    "results": { 
     "quote": [ 
      { 
       "symbol": "XAUUSD=X", 
       "Bid": "1590.9498", 
       "AskRealtime": null, 
       "BidRealtime": null, 
       "LastTradeDate": "5/11/2012", 
       "LastTradePriceOnly": "1590.5499", 
       "LastTradeTime": "9:12pm", 
       "Ask": "1590.15" 
      }, 
      { 
       "symbol": "XAGUSD=X", 
       "Bid": null, 
       "AskRealtime": null, 
       "BidRealtime": null, 
       "LastTradeDate": "5/10/2012", 
       "LastTradePriceOnly": "29.136", 
       "LastTradeTime": "5:27pm", 
       "Ask": null 
      }, 
      { 
       "symbol": "PLN12.NYM", 
       "Bid": null, 
       "AskRealtime": "1486.50", 
       "BidRealtime": "1486.00", 
       "LastTradeDate": "5/11/2012", 
       "LastTradePriceOnly": "1486.00", 
       "LastTradeTime": "8:44pm", 
       "Ask": null 
      }, 
      { 
       "symbol": "PAK12.NYM", 
       "Bid": null, 
       "AskRealtime": "616.00", 
       "BidRealtime": "609.40", 
       "LastTradeDate": "5/11/2012", 
       "LastTradePriceOnly": "658.80", 
       "LastTradeTime": "8:00pm", 
       "Ask": null 
      }, 
      { 
       "symbol": "USDCAD=X", 
       "Bid": "1.0033", 
       "AskRealtime": null, 
       "BidRealtime": null, 
       "LastTradeDate": "5/11/2012", 
       "LastTradePriceOnly": "1.0034", 
       "LastTradeTime": "9:13pm", 
       "Ask": "1.0035" 
      } 
     ] 
    } 
} 

}`

这个JSON脚本的链接在这里Json script generated by YQL 如果我正确理解你的问题的JSON脚本是从http://jsonlint.com/

回答

2

验证,要采取JSON并能够访问数据中?为了使JSON更易于使用,我建议使用下面的代码,它使用json_decode function这将把JSON转换成一个php可用的数组。 (我包括echo语句,这样就可以看到生成的关联数组的样子)

$yql_json = 
'{ 
"query": { 
    "count": 5, 
    "created": "2012-05-11T01:14:55Z", 
    "lang": "en-US", 
    "diagnostics": { 
     "publiclyCallable": "true", 
     "redirect": { 
      "from": "http://datatables.org/alltables.env", 
      "status": "301", 
      "content": "http://www.datatables.org/alltables.env" 
     }, 
     "url": [ 
      { 
       "execution-start-time": "425", 
       "execution-stop-time": "865", 
       "execution-time": "440", 
       "proxy": "DEFAULT", 
       "content": "http://datatables.org/alltables.env" 
      }, 
      { 
       "execution-start-time": "884", 
       "execution-stop-time": "1097", 
       "execution-time": "213", 
       "proxy": "DEFAULT", 
       "content": "http://www.datatables.org/yahoo/finance/yahoo.finance.quotes.xml" 
      }, 
      { 
       "execution-start-time": "1307", 
       "execution-stop-time": "1307", 
       "execution-time": "0", 
       "proxy": "DEFAULT", 
       "content": "http://download.finance.yahoo.com/d/quotes.csv?f=aa2bb2b3b4cc1c3c6c8dd1d2ee1e7e8e9ghjkg1g3g4g5g6ii5j1j3j4j5j6k1k2k4k5ll1l2l3mm2m3m4m5m6m7m8nn4opp1p2p5p6qrr1r2r5r6r7ss1s7t1t7t8vv1v7ww1w4xy&s=XAUUSD%3DX,XAGUSD%3DX,PLN12.NYM,PAK12.NYM,USDCAD%3DX" 
      } 
     ], 
     "query": { 
      "execution-start-time": "1105", 
      "execution-stop-time": "1308", 
      "execution-time": "203", 
      "params": "{url=[http://download.finance.yahoo.com/d/quotes.csv?f=aa2bb2b3b4cc1c3c6c8dd1d2ee1e7e8e9ghjkg1g3g4g5g6ii5j1j3j4j5j6k1k2k4k5ll1l2l3mm2m3m4m5m6m7m8nn4opp1p2p5p6qrr1r2r5r6r7ss1s7t1t7t8vv1v7ww1w4xy&s=XAUUSD%3DX,XAGUSD%3DX,PLN12.NYM,PAK12.NYM,USDCAD%3DX]}", 
      "content": "select * from csv where [email protected] and columns=\'Ask,AverageDailyVolume,Bid,AskRealtime,BidRealtime,BookValue,Change&PercentChange,Change,Commission,ChangeRealtime,AfterHoursChangeRealtime,DividendShare,LastTradeDate,TradeDate,EarningsShare,ErrorIndicationreturnedforsymbolchangedinvalid,EPSEstimateCurrentYear,EPSEstimateNextYear,EPSEstimateNextQuarter,DaysLow,DaysHigh,YearLow,YearHigh,HoldingsGainPercent,AnnualizedGain,HoldingsGain,HoldingsGainPercentRealtime,HoldingsGainRealtime,MoreInfo,OrderBookRealtime,MarketCapitalization,MarketCapRealtime,EBITDA,ChangeFromYearLow,PercentChangeFromYearLow,LastTradeRealtimeWithTime,ChangePercentRealtime,ChangeFromYearHigh,PercebtChangeFromYearHigh,LastTradeWithTime,LastTradePriceOnly,HighLimit,LowLimit,DaysRange,DaysRangeRealtime,FiftydayMovingAverage,TwoHundreddayMovingAverage,ChangeFromTwoHundreddayMovingAverage,PercentChangeFromTwoHundreddayMovingAverage,ChangeFromFiftydayMovingAverage,PercentChangeFromFiftydayMovingAverage,Name,Notes,Open,PreviousClose,PricePaid,ChangeinPercent,PriceSales,PriceBook,ExDividendDate,PERatio,DividendPayDate,PERatioRealtime,PEGRatio,PriceEPSEstimateCurrentYear,PriceEPSEstimateNextYear,Symbol,SharesOwned,ShortRatio,LastTradeTime,TickerTrend,OneyrTargetPrice,Volume,HoldingsValue,HoldingsValueRealtime,YearRange,DaysValueChange,DaysValueChangeRealtime,StockExchange,DividendYield\'" 
     }, 
     "javascript": { 
      "execution-time": "266", 
      "instructions-used": "302754", 
      "table-name": "yahoo.finance.quotes" 
     }, 
     "warning": "Unable to sort response according to field \'Ask,Bid,AskRealtime,BidRealtime,LastTradeDate,LastTradePriceOnly,LastTradeTime\'.", 
     "user-time": "1373", 
     "service-time": "653", 
     "build-version": "27222" 
    }, 
    "results": { 
     "quote": [ 
      { 
       "symbol": "XAUUSD=X", 
       "Bid": "1590.9498", 
       "AskRealtime": null, 
       "BidRealtime": null, 
       "LastTradeDate": "5/11/2012", 
       "LastTradePriceOnly": "1590.5499", 
       "LastTradeTime": "9:12pm", 
       "Ask": "1590.15" 
      }, 
      { 
       "symbol": "XAGUSD=X", 
       "Bid": null, 
       "AskRealtime": null, 
       "BidRealtime": null, 
       "LastTradeDate": "5/10/2012", 
       "LastTradePriceOnly": "29.136", 
       "LastTradeTime": "5:27pm", 
       "Ask": null 
      }, 
      { 
       "symbol": "PLN12.NYM", 
       "Bid": null, 
       "AskRealtime": "1486.50", 
       "BidRealtime": "1486.00", 
       "LastTradeDate": "5/11/2012", 
       "LastTradePriceOnly": "1486.00", 
       "LastTradeTime": "8:44pm", 
       "Ask": null 
      }, 
      { 
       "symbol": "PAK12.NYM", 
       "Bid": null, 
       "AskRealtime": "616.00", 
       "BidRealtime": "609.40", 
       "LastTradeDate": "5/11/2012", 
       "LastTradePriceOnly": "658.80", 
       "LastTradeTime": "8:00pm", 
       "Ask": null 
      }, 
      { 
       "symbol": "USDCAD=X", 
       "Bid": "1.0033", 
       "AskRealtime": null, 
       "BidRealtime": null, 
       "LastTradeDate": "5/11/2012", 
       "LastTradePriceOnly": "1.0034", 
       "LastTradeTime": "9:13pm", 
       "Ask": "1.0035" 
      } 
     ] 
    } 
} 
}'; 

$yql_results = json_decode($yql_json, true); 
echo "<pre>".print_r($yql_results, true)."</pre>"; 

的$ yql_json输入是JSON本身作为一个字符串(但是你收集并存储)和真值被传入函数会使该函数返回一个存储在$ yql_result中的关联数组。在此之后,您可以轻松访问所有项目。我希望我至少回答你的部分问题。祝你的项目好运。

+0

thanz很多为您的帮助..许多thanz –

相关问题