我有这样的 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') ");
}
关于javascript - 循环json数据然后用php发送到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45297786/