Javascript 循环json数据,然后用php发送到数据库

Javascript 循环json数据,然后用php发送到数据库,javascript,php,jquery,json,Javascript,Php,Jquery,Json,我有如下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 $

我有如下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\u用户插入

tbl\u用户

id_user

33
id_user

31
32
33
我希望所有数据都像这样插入到表中

tbl\u用户

id_user

33
id_user

31
32
33
我该怎么做?
谢谢

您需要将查询移动到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') ");
}

您需要将查询移动到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') ");
}

1st:将您的
查询
移动到
foreach循环内部

foreach($data as $row){

    $id_user = $row->id_user;

    mysqli_query($conn, "INSERT INTO tbl_user (id_user) VALUES ('$id_user') ");
}
2nd:尝试使用事先准备好的语句


原因:您的
在foreach循环中覆盖了
$id\u用户
,并且在foreach循环后执行查询,因此
$id\u用户
仅包含最后一行值。因此,将您的查询移到
foreach循环的内部
第一个:将您的
查询
移到foreach循环的内部
foreach循环

foreach($data as $row){

    $id_user = $row->id_user;

    mysqli_query($conn, "INSERT INTO tbl_user (id_user) VALUES ('$id_user') ");
}
2nd:尝试使用事先准备好的语句


原因:您的
在foreach循环中覆盖
,并且在foreach循环后执行查询,因此
$id\u用户
仅包含最后一行值。因此,将您的查询移到
foreach循环内部
好吧,这完全符合逻辑。让我们看看您的代码:

foreach($data as $row){

    $id_user = $row->id_user;

    mysqli_query($conn, "INSERT INTO tbl_user (id_user) VALUES ('$id_user') ");
}
$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\u user
变量。然后只在最后插入。那你能做什么呢?只要将insert查询放在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') "); 

}

嗯,这完全符合逻辑。让我们看看您的代码:

$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\u user
变量。然后只在最后插入。那你能做什么呢?只要将insert查询放在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') "); 

}

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') ");
}

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') ");
}

将查询移动到foreach循环内部将查询移动到foreach循环内部loop@MuhammadRifqiMaulaturRahman很高兴我能帮忙。也许你也应该看看并学习一下SQL注入。@MuhammadRifqiMaulaturRahman很高兴我能帮上忙。也许您还应该看看并了解一下SQL注入。