簡體   English   中英

如何遍歷PHP代碼以將JSON數據插入MySQL數據庫

[英]How to loop through PHP code to insert JSON data into MySQL database

這是我當前的PHP代碼-僅導入一行數據,我需要它遍歷動態變化的JSON-在不同時間可能是5行或10行。

我嘗試了多種不同的方法來foreach()遍歷數據,但沒有一種有效。

$jsonCont = file_get_contents('nba.json');

$data = json_decode($jsonCont, true);

    $tip = $data['data'][0]['commence_time'];
    $teama = $data['data'][0]['teams'][0];
    $linea = $data['data'][0]['sites'][0]['odds']['spreads']['points'][0];
    $teamb = $data['data'][0]['teams'][1];
    $lineb = $data['data'][0]['sites'][0]['odds']['spreads']['points'][1];

$sql = "INSERT INTO nbagames(tip, teama, linea, teamb, lineb)
VALUES('$tip', '$teama', '$linea', '$teamb', '$lineb')";
if(!mysqli_query($conn,$sql))
{
    die('Error : ' . mysql_error());
}

我需要在此代碼中添加些什么,以便它遍歷並獲取所有數據而不僅僅是一行?

編輯:回復添加JSON數據-這是一個示例-我需要獲取所有游戲-但我不需要多個站點(如果有多個站點,則賠率較高)

data: [
{
sport_key: "basketball_nba",
sport_nice: "NBA",
teams: [
"Charlotte Hornets",
"Washington Wizards"
],
commence_time: 1546128000,
home_team: "Washington Wizards",
sites: [
{
site_key: "mybookieag",
site_nice: "MyBookie.ag",
last_update: 1546136064,
odds: {
spreads: {
odds: [
1.8,
1.901
],
points: [
"3.5",
"-3.5"
]
}
}
}
],
sites_count: 1
},
{
sport_key: "basketball_nba",
sport_nice: "NBA",
teams: [
"Houston Rockets",
"New Orleans Pelicans"
],
commence_time: 1546128600,
home_team: "New Orleans Pelicans",
sites: [
{
site_key: "mybookieag",
site_nice: "MyBookie.ag",
last_update: 1546136064,
odds: {
spreads: {
odds: [
1.855,
1.855
],
points: [
"-6.5",
"6.5"
]
}
}
}
],
sites_count: 1
},
{
sport_key: "basketball_nba",
sport_nice: "NBA",
teams: [
"Atlanta Hawks",
"Cleveland Cavaliers"
],
commence_time: 1546130400,
home_team: "Atlanta Hawks",
sites: [
{
site_key: "mybookieag",
site_nice: "MyBookie.ag",
last_update: 1546136064,
odds: {
spreads: {
odds: [
1.855,
1.855
],
points: [
"-7.5",
"7.5"
]
}
}
}
],
sites_count: 1
},
{
sport_key: "basketball_nba",
sport_nice: "NBA",
teams: [
"Boston Celtics",
"Memphis Grizzlies"
],
commence_time: 1546132200,
home_team: "Memphis Grizzlies",
sites: [
{
site_key: "mybookieag",
site_nice: "MyBookie.ag",
last_update: 1546136064,
odds: {
spreads: {
odds: [
1.901,
1.855
],
points: [
"10.5",
"-10.5"
]
}    
}
},
{
site_key: "bovada",
site_nice: "Bovada",
last_update: 1546136030,
odds: {
spreads: {
odds: [
1.952381,
1.87
],
points: [
"6.5",
"-6.5"
]
}

您可以使用foreach:

$data = json_decode($jsonCont, true);

foreach($data['data'] as $line){
    $tip = $line['commence_time'];
    $teama = $line['teams'][0];
    $linea = $line['sites'][0]['odds']['spreads']['points'][0];
    $teamb = $line['teams'][1];
    $lineb = $line['sites'][0]['odds']['spreads']['points'][1];

    $sql = "INSERT INTO nbagames(tip, teama, linea, teamb, lineb)
    VALUES('$tip', '$teama', '$linea', '$teamb', '$lineb')";
    if(!mysqli_query($conn,$sql))
    {
        die('Error : ' . mysql_error());
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM