[英]Loop through json array and insert into mysql php
我正在嘗試使用php將記錄插入mysql,但我不知道如何在php中實現:基本上我有以下json數組:
[{StudentId:236,"Monday":null,"Tuesday":"2","Wednesday":"3","Thursday":"4","Friday":null},{StudentId:237,"Monday":null,"Tuesday":null,"Wednesday":"3","Thursday":"4","Friday":"5"}]
MySQL表架構如下:
ID | 學生| 天
1 | 236 | 2
2 | 236 | 3
3 | 236 | 4
4 | 237 | 3
5 | 237 | 4
我正在使用以下代碼循環遍歷並獲取值,但並非每天都在顯示。 我是否應該在學生上課的所有日子中創建另一個數組,然后進行遍歷? 請和建議將不勝感激。 謝謝。
$arr = json_decode($output,true);
foreach ($arr as $key => $jsons)
{
$day=null;
$student=null;
foreach($jsons as $key => $value)
{
if($key == 'StudentId')
{
$student = $value;
}
if($key == 'Monday')
{
if($value == '1')
{
$day = 1;
}
}
if($key == 'Tuesday')
{
if($value == '2')
{
$day = 2;
}
}
}
echo "INSERT INTO MyTable (Student,Day) VALUES($student,$day);";
echo '<br/>';
}
您有一組鍵/值對數組,但是根據您的代碼,您有兩個鍵/值對數組。 查看以下內容如何影響您的代碼,並拋出一兩個print
語句以幫助調試。
更改: foreach ($arr as $key => $jsons)
到: foreach ($arr as $jsons)
看起來您的JSON字符串格式錯誤。 此示例工作正常:
$json = <<<JSON
[
{
"StudentId": 236,
"Monday": null,
"Tuesday": "2",
"Wednesday": "3",
"Thursday": "4",
"Friday": null
},
{
"StudentId": 237,
"Monday": null,
"Tuesday": null,
"Wednesday": "3",
"Thursday": "4",
"Friday": "5"
}
]
JSON;
$arr = json_decode($json, true);
foreach ($arr as $student) {
foreach ($student as $key => $value) {
if ($key == 'StudentId') {
$student = $value;
}
if ($key == 'Monday') {
if ($value == '1') {
$day = 1;
}
}
if ($key == 'Tuesday') {
if ($value == '2') {
$day = 2;
}
}
}
echo "INSERT INTO MyTable (Student,Day) VALUES($student,$day);\n";
echo '<br/>';
}
結果是:
INSERT INTO MyTable (Student,Day) VALUES(236,2);
INSERT INTO MyTable (Student,Day) VALUES(237,2);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.