2017-07-25 83 views
0

我有這樣的JSON數據:循環JSON數據,然後發送到數據庫,PHP

myjsondata

[ 

{ 
"id_user":"31" 
}, 

{ 
"id_user":"32" 
}, 

{ 
"id_user":"33" 
} 

] 

然後我用jQuery .post的$發送數據

​​

然後在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 

我該怎麼辦呢? 感謝

+0

移動查詢到foreach循環內 – JYoThI

回答

2

嗯,那是完全邏輯。讓我們來看看你的代碼:

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

} 
+0

感謝它的工作 –

+0

@MuhammadRifqiMaulaturRahman很高興我能幫忙。也許你還應該看看http://bobby-tables.com並瞭解一些關於SQL注入的知識。 – Twinfriends

1

您需要查詢進入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') "); 
} 
+0

感謝它的工作 –

1

1:將您query入內foreach loop

foreach($data as $row){ 

    $id_user = $row->id_user; 

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

第二:嘗試使用事先準備好的聲明

原因:overwriting$id_user在foreach循環和foreach循環後您執行查詢,以便$id_user只包含最後一行值只。所以將你的查詢到裏面foreach loop

+0

感謝它的工作 –

1

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