簡體   English   中英

循環json數據,然后使用php發送到數據庫

[英]Looping json data then send to database with php

我有這樣的json數據:

myjsondata

[

{
"id_user":"31"
},

{
"id_user":"32"
},

{
"id_user":"33"
}

]

然后我用jQuery $ .post發送數據

$.post("myaction.php",
{send: myjsondata }, function(res) {


 }, "json");

然后在myaction.php中,我對json進行解碼,並且我想使用foreach將數據發送到數據庫:

myaction.php

$conn = mysqli_connect( "localhost","root","","mydb");

$data = json_decode($_POST['send']);

foreach($data as $row){

    $id_user = $row->id_user;

}

mysqli_query($conn, "INSERT INTO tbl_user 
(id_user) VALUES ('$id_user') ");

當我運行該代碼時,數據已經插入到表中,但是數據僅使用最后一個id_user插入

tbl_user

id_user

33

我想像這樣將所有數據插入表中

tbl_user

id_user

31
32
33

我怎樣才能做到這一點? 謝謝

好吧,那完全是邏輯。 讓我們看一下您的代碼:

$conn = mysqli_connect( "localhost","root","","mydb");

$data = json_decode($_POST['send']);

foreach($data as $row){

    $id_user = $row->id_user;

}

mysqli_query($conn, "INSERT INTO tbl_user 
(id_user) VALUES ('$id_user') "); // Here is the problem!!!!

在您的foreach循環中,您將覆蓋$id_user變量。 然后僅在最后插入。 所以,你可以做什么? 只需將插入查詢放在foreach循環中,它將起作用。

工作解決方案:

$conn = mysqli_connect( "localhost","root","","mydb");

$data = json_decode($_POST['send']);

foreach($data as $row){

    $id_user = $row->id_user;
    mysqli_query($conn, "INSERT INTO tbl_user 
    (id_user) VALUES ('$id_user') "); 

}

您需要將查詢移至for循環

$conn = mysqli_connect( "localhost","root","","mydb");

$data = json_decode($_POST['send']);

foreach($data as $row){

    $id_user = $row->id_user;

    mysqli_query($conn, "INSERT INTO tbl_user (id_user) VALUES ('$id_user') ");
}

第一:query移至foreach loop

foreach($data as $row){

    $id_user = $row->id_user;

    mysqli_query($conn, "INSERT INTO tbl_user (id_user) VALUES ('$id_user') ");
}

第二:嘗試使用准備好的語句

原因:您在foreach循環中overwriting $id_user在foreach循環之后執行查詢,因此$id_user僅包含最后一行的值。因此將查詢移到foreach loop

myaction.php文件將如下所示。

$conn = mysqli_connect( "localhost","root","","mydb");

$data = json_decode($_POST['send']);

foreach($data as $row){

    $id_user = $row->id_user;

    mysqli_query($conn, "INSERT INTO tbl_user (id_user) VALUES ('$id_user') ");
}

暫無
暫無

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

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