Coś naprawiłem ale teraz mogę tylko raz wysłać formularz, jak chcę wysłać drugi i więcej to nic się do bazy nie zapisuje. Sprawdziłem i bez tych udoskonaleń co się staram od kilku dni zrobić też jest taki sam problem. Podejrzewam, że coś od bazy daych może mi blokuje?
<?php
class Homepage extends Controller
{
public static function index
() { $resources = new Resources();
Form::post(['id_pracownika', 'id_samochodu', 'kilometry', 'czas'], function () {
$id_pracownika = $_POST['id_pracownika'];
$id_samochodu = $_POST['id_samochodu'];
$kilometry = $_POST['kilometry'];
$czas = $_POST['czas'];
$r = new Resources();
$employee = $r->getEmployee($id_pracownika);
$car = $r->getCar($id_samochodu);
$r->createOrders($id_pracownika, $id_samochodu, $kilometry, $czas);
header('Location: /zlecenie'); });
return [
'orders' => $resources->getOrders(),
'employees' => $resources->getEmployees(),
'employee' => $resources->getEmployee(),
'cars' => $resources->getCars(),
'car' => $resources->getCar()
];
}
public static function delete
() { Form::post(['id'], function () {
$id = $_POST['id'];
$r = new Resources();
$r->deleteOrder($id);
header('Location: /zlecenie'); });
return [
];
}
}
<?php
class Resources
{
public function getEmployees()
{
$response = false;
try {
$pdo = new ConnectionDatabase();
$db = $pdo->connect();
$query = $db->prepare("SELECT * FROM pracownik");
$query->execute();
$response = $query->fetchAll(PDO::FETCH_ASSOC);
} catch (PDOException $e) {
$response = $e;
}
return $response;
}
public function getEmployee()
{
$response = false;
try {
$pdo = new ConnectionDatabase();
$db = $pdo->connect();
$query = $db->prepare("SELECT * FROM pracownik WHERE id_pracownika = :id");
$query->execute();
$response = $query->fetchAll(PDO::FETCH_ASSOC);
} catch (PDOException $e) {
$response = $e;
}
return $response;
}
public function getCars()
{
$response = false;
try {
$pdo = new ConnectionDatabase();
$db = $pdo->connect();
$query = $db->prepare("SELECT * FROM samochod");
$query->execute();
$response = $query->fetchAll(PDO::FETCH_ASSOC);
} catch (PDOException $e) {
$response = $e;
}
return $response;
}
public function getCar()
{
$response = false;
try {
$pdo = new ConnectionDatabase();
$db = $pdo->connect();
$query = $db->prepare("SELECT * FROM samochod WHERE id_samochodu = :id");
$query->execute();
$response = $query->fetchAll(PDO::FETCH_ASSOC);
} catch (PDOException $e) {
$response = $e;
}
return $response;
}
public function getOrders()
{
$response = false;
try {
$pdo = new ConnectionDatabase();
$db = $pdo->connect();
$query = $db->prepare("SELECT * FROM zlecenie INNER JOIN pracownik ON zlecenie.id_pracownika=pracownik.id_pracownika INNER JOIN samochod ON zlecenie.id_samochodu=samochod.id_samochodu");
$query->execute();
$response = $query->fetchAll(PDO::FETCH_ASSOC);
} catch (PDOException $e) {
$response = $e;
}
return $response;
}
public function getOrder($id)
{
$response = false;
try {
$pdo = new ConnectionDatabase();
$db = $pdo->connect();
$query = $db->prepare("SELECT * FROM zlecenie WHERE id_zlecenia = :id");
$query->bindParam(':id', $id);
$query->execute();
$response = $query->fetchAll(PDO::FETCH_ASSOC);
} catch (PDOException $e) {
$response = $e;
}
return $response[0];
}
public function createOrders($id_pracownika, $id_samochodu, $kilometry, $czas)
{
$response = false;
try {
$pdo = new ConnectionDatabase();
$db = $pdo->connect();
$query = $db->prepare("INSERT INTO zlecenie (id_pracownika, id_samochodu, kilometry, czas)
VALUES (:id_pracownika, :id_samochodu, :kilometry, :czas)");
$query->bindParam(':id_pracownika', $id_pracownika);
$query->bindParam(':id_samochodu', $id_samochodu);
$query->bindParam(':kilometry', $kilometry);
$query->bindParam(':czas', $czas);
$koszt = $stawka * $czas + $koszt_km * $kilometry;
$query->execute();
$response = true;
} catch (PDOException $e) {
$response = $e;
}
return $response;
}
}
Ten post edytował sauber94 5.02.2020, 10:45:15