0
動的生成フィールドを持つフォームで作業しています。私の問題は、これらのフィールドからデータを挿入できないことです。私はこのスレッドを試しましたHow to insert json array into mysql databaseしかし、私のために働いていない。JSONデータをAngularjsのデータベースに挿入します。
PHPに転送されたときにデータを取り込もうとしましたが、運が得られませんでした。
DB接続
<?php
class DbConfig
{
private $_host = 'localhost';
private $_username = 'root';
private $_password = '';
private $_database = 'machines';
protected $connection;
public function __construct()
{
if (!isset($this->connection)) {
$this->connection = new mysqli($this->_host, $this->_username, $this->_password, $this->_database);
if (!$this->connection) {
echo 'Cannot connect to database server';
exit;
}
}
return $this->connection;
}
}
?>
JSONデータ
$scope.columns = [
{"id":1,"brand":"robotworx","tonnage":"200","tableSize":"20x50","pressType":"Kiss Cutting"},
{"id":2,"brand":"fanuc","tonnage":"100","tableSize":"30x60","pressType":"Swing Arm"}
];
コントローラ
$scope.register=function(){
$http.post("http://localhost/clickermag/controller/register.php", {
'company':$scope.company,
'email':$scope.email,
'phone':$scope.phone,
'position':$scope.position,
'firstName':$scope.firstName,
'lastName':$scope.lastName,
'presses':$scope.columns
})
.then(function(response){
console.log("Data Inserted Successfully");
},function(error){
alert("Sorry! Data Couldn't be inserted!");
console.error(error);
});
}
PHPファイル
<?php
$data = json_decode(file_get_contents("php://input"));
//including the database connection file
include_once("../classes/Crud.php");
$crud = new Crud();
$company = $data->company;
$email = $data->email;
$phone = $data->phone;
$position = $data->position;
$firstName = $data->firstName;
$lastName = $data->lastName;
$ownedPress = $data->presses;
//insert data to database
$result = $crud->execute("INSERT INTO users(company, email, phone, position, first_name, last_name) VALUES('$company','$email','$phone','$password','$position','$firstName','$lastName')");
$last_id = $crud->user_id;
foreach($data as $item) {
$pressesQuery = $crud->execute("INSERT INTO owned_presses(user_id, brand, tonnage, table_size, press_type) VALUES ('$last_id','$item[brand]','$item[tonnage]','$item[tableSize]','$item[pressType]')");
}
?>
私は2番目のクエリに生成されたフィールドからのデータを配置する必要があります。
の$ last_idは罰金先生取り組んます。..先生ありがとう.. –