[英]php mysql insert query is populating every column with the same values
[英]How to insert arrays of same values in json format into a column php mysql
我有一個JSON格式如下
{
"results": [
{
"url": "someurl",
"imageUrl": "somepath",
"tickets": [
{
"id": 98655,
"name": "ADULT TICKET",
"soldOut": false,
"provisionallySoldOut": false,
"price": 100,
"salesStart": "2018-06-26T11:52:00",
"salesEnd": "2018-07-28T17:00:00",
"description": "",
"donation": false,
"vendorTicket": false
},
{
"id": 98656,
"name": "UNDER 12",
"soldOut": false,
"provisionallySoldOut": false,
"price": 80,
"salesStart": "2018-06-26T11:53:00",
"salesEnd": "2018-07-28T17:00:00",
"description": "",
"donation": false,
"vendorTicket": false
}
]
},
{
"url": "someurl",
"imageUrl": "somepath",
"tickets": [
{
"id": 98735,
"name": "ADULT EARLY BIRD",
"soldOut": false,
"provisionallySoldOut": false,
"price": 150,
"salesStart": "2018-06-26T12:47:00",
"salesEnd": "2018-08-12T10:00:00",
"description": "",
"donation": false,
"vendorTicket": false
},
{
"id": 98736,
"name": "UNDER 12 - EARLY BIRD",
"soldOut": false,
"provisionallySoldOut": false,
"price": 120,
"salesStart": "2018-06-26T12:47:00",
"salesEnd": "2018-08-12T10:00:00",
"description": "",
"donation": false,
"vendorTicket": false
}
]
}
],
"pageSize": 10,
"pages": 1,
"records": 2,
"extras": null,
"message": null,
"statusCode": 0
}
我的數據庫中有一個表為“ event_tickets”,它具有名稱和價格列,我想在同一列中顯示名稱ADULT TICKET和UNDER 12,並用逗號分隔,在同一列中分別將價格100和80分隔為逗號
我想讓它在我的表上顯示這樣的內容。為了更加清楚,我想使用php插入上表中提到的值。 表格格式應該像這樣
name | price
ADULT TICKET,UNDER 12 | 100,80
ADULT EARLY BIRD, UNDER 12 - EARLY BIRD | 150,120
有什么辦法可以用php實現呢?
因為當我嘗試運行我的代碼時,名稱顯示在不同的列中,價格顯示在不同的列中
提前致謝
PHP中的一種解決方案:
// This is your json data.
$jsonData = '{
"results": [
{
"url": "someurl",
"imageUrl": "somepath",
"tickets": [
{
"id": 98655,
"name": "ADULT TICKET",
"soldOut": false,
"provisionallySoldOut": false,
"price": 100,
"salesStart": "2018-06-26T11:52:00",
"salesEnd": "2018-07-28T17:00:00",
"description": "",
"donation": false,
"vendorTicket": false
},
{
"id": 98656,
"name": "UNDER 12",
"soldOut": false,
"provisionallySoldOut": false,
"price": 80,
"salesStart": "2018-06-26T11:53:00",
"salesEnd": "2018-07-28T17:00:00",
"description": "",
"donation": false,
"vendorTicket": false
}
]
},
{
"url": "someurl",
"imageUrl": "somepath",
"tickets": [
{
"id": 98735,
"name": "ADULT EARLY BIRD",
"soldOut": false,
"provisionallySoldOut": false,
"price": 150,
"salesStart": "2018-06-26T12:47:00",
"salesEnd": "2018-08-12T10:00:00",
"description": "",
"donation": false,
"vendorTicket": false
},
{
"id": 98736,
"name": "UNDER 12 - EARLY BIRD",
"soldOut": false,
"provisionallySoldOut": false,
"price": 120,
"salesStart": "2018-06-26T12:47:00",
"salesEnd": "2018-08-12T10:00:00",
"description": "",
"donation": false,
"vendorTicket": false
}
]
}
],
"pageSize": 10,
"pages": 1,
"records": 2,
"extras": null,
"message": null,
"statusCode": 0
}';
$servername = '';
$username = '';
$password = '';
$dbname = '';
// Connect to your database
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$formatedData = json_decode($jsonData);
foreach($formatedData->results as $result) {
$names = array();
$prices = array();
foreach($result->tickets as $ticket) {
// Add each price and name to arrays
$names[] = $ticket->name;
$prices[] = $ticket->price;
}
// Glue the arrays with comma into strings
$combinedNames = implode(',', $names);
$combinedPrices = implode(',', $prices);
// Perform your database query
$sql = "INSERT INTO your_table
(name, price)
VALUES
('$combinedNames', '$combinedPrices')";
// Remember to watch out for SQL injections
if ($conn->query($sql) === true) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
$conn->close();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.