sauber94
31.01.2020, 08:43:23
Cześć.
W bazie danych takie tabele jak:
- samochód (marka, model itd.)
- pracownik (imię, nazwisko itd.)
Zrobiłem formularz, w którym wybieram z listy samochód i podaję ilość przejechanych nim kilometrów oraz wybór z listy pracownika i podanie ilości przepracowanych przez niego godzin. Przykład:
Samochód: VW Polo
Ilość przejechanych km: 50
Pracownik: Adam Nowak
Ilość przepracowanych godzin: 8
Pytanie jak zrobić by bo wysłaniu formularza do bazy wyliczyło mi koszty. Zakładając że przejechany 1 km = 1 PLN, przepracowana 1h = 10 PLN. W sumie koszt powinien wyjść 130 PLN i ma pokazać się w bazie.
nospor
31.01.2020, 09:42:14
Ale nie bardzo rozumiem w czym problem. Nie umiesz w php zrobic 50*1 + 8*10 ?
ps: Przenosze
sauber94
31.01.2020, 09:59:38
Myślę, że jakiś przykład by mi pomógł w tym.
Mam w bazie przykładowo tabelę pracownika, w niej dodanego pracownika wraz z przypisaną stawką na godzinę. W nowym formularzy załóżmy o nazwie zlecenie, przy tworzeniu formularzu musi sczytywać jego stawkę i mnożyć przez podaną przeze mnie ilość przepracowanych godzin.
nospor
31.01.2020, 10:23:10
Pobrac z bazy info chyba umiesz? No to pobierz z bazy stawke pracownika a potem te stawke przemnoz przez wartosc z formularza
sauber94
2.02.2020, 17:56:05
Tak, umiem pobrać z bazy dane.
nospor
2.02.2020, 18:57:02
No to jaki masz problem by pobrac te stawke godzinowa pracownika?
sauber94
2.02.2020, 20:40:29
Napiszę tak by było wszystko zrozumiałe:
Obecnie po zmianach w bazie mam 3 tabele:
Zlecenie
- id_zlecenia
- id_pracownika
- id_samochodu
- kilometry
- czas
Pracownik:
- id_pracownika
- imie
- nazwisko
- stawka
Samochod:
- id_samochodu
- marka
- model
- koszt_1_km
Mam problem z napisaniem linii kodu, by przy uzupełnianiu formularza podebrała w zależności od id_pracownika odpowiednią stawkę, pomnożyła przez wartość przejechanych kilometrów wpisanych w formularzu (tak samo z samochodem) i zsumowała koszt a wynik by wysłało wraz z uzupełnionym formularzem do bazy, tabela zlecenie.
Wygląd formularza który wysyła dane do tabeli Zlecenie:
nospor
2.02.2020, 20:59:39
Wysylasz formularz. W wyslanym formularzu masz ID pracownika. Majac ID pracownika, pobierasz z bazy jego stawke, mnozysz stawke przez czas, ktory tez masz z formularza, do tego dodajesz kilometry pomnozone przez stawke za kilometr i masz swoj wynik. Nastepnie ten wynik zapisujesz do bazy.
Pytam sie po raz setny: czego z tego nie umiesz zrobic? Ponoc dane z bazy umiesz pobrac. Wiec w czym co tu napisalem masz problem? Czy tak ciezko napisac?
sauber94
2.02.2020, 21:27:47
To jednak nie umiem, mógłbyś jakiś przykład zapodać jak to powinno wyglądać?
nospor
2.02.2020, 22:12:24
Napisal wczesniej ze umiesz pobrac dane z bazy.
Pokaz mi kod, jak pobierasz dane z bazy z tabeli PRACOWNIK dla ID pracownika = 1
sauber94
2.02.2020, 22:45:13
Kod formularza:
<!DOCTYPE html>
<html lang="en">
<head>
<title>Formularz</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<div id="container">
<h2>Wszystkie zlecenia</h2>
<table class="table table-bordered">
<thead>
<tr>
<th>Pracownik</th>
<th>Czas</th>
<th>Samochód</th>
<th>Kilometry</th>
<th>Koszt</th>
</tr>
</thead>
<tbody>
<?php
foreach($orders as $order){ ?>
<tr>
<td><?=$order['imie']?> <?=$order['nazwisko']?></td>
<td><?=$order['czas']?></td>
<td><?=$order['marka']?> <?=$order['model']?></td>
<td><?=$order['kilometry']?></td>
</tr>
<?php } ?>
</tbody>
</table>
<h2>Pisanie nowego zlecenie</h2>
<form action="" method="post">
<div class="form-group">
<label class="control-label col-sm-2" for="id_pracownika">Pracownik:</label>
<select name="id_pracownika" id="id_pracownika" class="form-control">
<?php
foreach($pracownik as $pracownik){ ?>
<option value="<?=$pracownik['id_pracownika']?>"><?=$pracownik['imie']." ".$pracownik['nazwisko']?></option>
<?php } ?>
</select>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="czas">Czas:</label>
<div>
<input required type="text" class="form-control" id="czas" name="czas">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="id_samochodu">Samochód:</label>
<select name="id_samochodu" id="id_samochodu" class="form-control">
<?php
foreach($samochod as $samochod){ ?>
<option value="<?=$samochod['id_samochodu']?>"><?=$samochod['marka']." ".$samochod['model']?></option>
<?php } ?>
</select>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="kilometry">Podaj kilometry:</label>
<div>
<input required type="text" class="form-control" id="kilometry" name="kilometry">
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2">
<button type="submit" class="btn btn-danger">Wyślij</button><br />
</div>
</div>
</form>
</div>
</body>
</html>
Kod zapytań bazy:
<?php
class Resources
{
public function getPracownik()
{
$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 getSamochod()
{
$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 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, $czas, $id_samochodu, $kilometry, $koszt)
{
$response = false;
try {
$pdo = new ConnectionDatabase();
$db = $pdo->connect();
$query = $db->prepare("INSERT INTO zlecenie (id_pracownika, czas, id_samochodu, kilometry, koszt)
VALUES (:id_pracownika, :czas, :id_samochodu, :kilometry, :koszt)");
$query->bindParam(':id_pracownika', $id_pracownika);
$query->bindParam(':czas', $czas);
$query->bindParam(':id_samochodu', $id_samochodu);
$query->bindParam(':kilometry', $kilometry);
$query->bindParam(':koszt', $koszt);
$query->execute();
$response = true;
} catch (PDOException $e) {
$response = $e;
}
return $response;
}
}
nospor
3.02.2020, 11:26:46
Super, tylko ja prosilem o zapytanie, ktore pobiera pracownika o ID =1.
Umiesz pisac takie zapytania, bo masz juz jedno chocby w getOrder()
sauber94
3.02.2020, 11:45:11
public function getPracownik($id)
{
$response = false;
try {
$pdo = new ConnectionDatabase();
$db = $pdo->connect();
$query = $db->prepare("SELECT * FROM pracownik WHERE id_pracownika = 1");
$query->bindParam(':i1, $1);
$query->execute();
$response = $query->fetchAll(PDO::FETCH_ASSOC);
} catch (PDOException $e) {
$response = $e;
}
return $response[0];
}
Dobrze?
nospor
3.02.2020, 11:45:56
Skoro juz robisz bindowanie, to wywal = 1 i podstaw tam wartosc bindowana tak jak to masz w getOrder
sauber94
3.02.2020, 12:24:44
Zamiast = 1 ma być = :id?
nospor
3.02.2020, 12:28:08
rety....
tak, ma byc analogicznie jak getOrder tylko zamiast tabeli order i jej pol, ma byc tabela placownik i jej pola...
sauber94
3.02.2020, 12:37:57
No dobrze, i co dalej?
nospor
3.02.2020, 12:42:48
Pokaz kod po zmianach. caly
Ale zanim to dodaj to samo dla samochodu bo masz przeciez pobrac stawke dla danego samochodu
sauber94
3.02.2020, 13:08:48
public function getPracownik($id)
{
$response = false;
try {
$pdo = new ConnectionDatabase();
$db = $pdo->connect();
$query = $db->prepare("SELECT * FROM pracownik WHERE id_pracownika = :id");
$query->bindParam(':id', $id);
$query->execute();
$response = $query->fetchAll(PDO::FETCH_ASSOC);
} catch (PDOException $e) {
$response = $e;
}
return $response[0];
}
Jeżeli źle to mi już ręce opadajom
viking
3.02.2020, 14:03:21
Na pewno bzdurą jest blok catch. $response w przypadku błędu nie będzie żadną tablicą tylko klaską implementującą
https://www.php.net/manual/en/class.throwable.php
nospor
3.02.2020, 14:38:21
@viking podobnych bzdur jest cala masa w tej klasie. nie ma na chwile obecna zadnego sensu zawracac mu nimi glowy jak on nie ogarnia podstaw a co dopiero takie "zaawansowane" rzeczy jak to
@sauber94 kiedy w koncu zaczniesz czytac i podawac dokladnie to o co prosze? Naprawde kazda "komende" mam powtorzyc 10 razy?
Cytat
Jeżeli źle to mi już ręce opadajom
Prosze cie... od 3 dni przepisujesz getOrder by pobralo pracownika i ci jez rece "opadajom"...

? Lepiej sie nie przyznawaj. I kurcze, nie zadne "opadajom" bo mi oczy slepna jak czytam takie ortografy
sauber94
3.02.2020, 14:49:01
Z tym opadajom to tak sobie napisałem, wiem jak się poprawnie pisze. Popełniam błędy ale się w końcu nauczę co źle robię.
<?php
class Resources
{
public function getPracownik()
{
$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 getPracownikk($id)
{
$response = false;
try {
$pdo = new ConnectionDatabase();
$db = $pdo->connect();
$query = $db->prepare("SELECT * FROM pracownik WHERE id_pracownika = :id");
$query->bindParam(':id', $id);
$query->execute();
$response = $query->fetchAll(PDO::FETCH_ASSOC);
} catch (PDOException $e) {
$response = $e;
}
return $response[0];
}
public function getSamochodd($id)
{
$response = false;
try {
$pdo = new ConnectionDatabase();
$db = $pdo->connect();
$query = $db->prepare("SELECT * FROM samochod WHERE id_samochodu = :id");
$query->bindParam(':id', $id);
$query->execute();
$response = $query->fetchAll(PDO::FETCH_ASSOC);
} catch (PDOException $e) {
$response = $e;
}
return $response[0];
}
public function getSamochod()
{
$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 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, $czas, $id_samochodu, $kilometry, $koszt)
{
$response = false;
try {
$pdo = new ConnectionDatabase();
$db = $pdo->connect();
$query = $db->prepare("INSERT INTO zlecenie (id_pracownika, czas, id_samochodu, kilometry, koszt)
VALUES (:id_pracownika, :czas, :id_samochodu, :kilometry, :koszt)");
$query->bindParam(':id_pracownika', $id_pracownika);
$query->bindParam(':czas', $czas);
$query->bindParam(':id_samochodu', $id_samochodu);
$query->bindParam(':kilometry', $kilometry);
$query->bindParam(':koszt', $koszt);
$query->execute();
$response = true;
} catch (PDOException $e) {
$response = $e;
}
return $response;
}
}
nospor
3.02.2020, 14:54:28
getPracownikk
getSamocodd
powaznie? NIe lepiej getPracownik zamienic na getPracownicy a getPracownikk na getPracownik? Naprawde tak sam sobie lubisz komplikowac zycie?
Identycznie z samochodami.
Majac teraz juz metody, ktore pobieraja dla danego procownika jego rekord (w tym i stawke) oraz podobnie dla samochodu, to jaki teraz masz problem by dokonczyc zadanie?
sauber94
3.02.2020, 15:00:10
Nie wiem jaki kod w formularzu zamieścić by mi to wszystko liczyło.
nospor
3.02.2020, 15:01:08
Przeciez ci juz pisalem:
nic w formularzu masz nie dodawac...
Za to po wyslaniu formularza, masz dokonac odpowiednich obliczen i wlozyc dane do bazy.
sauber94
3.02.2020, 15:25:25
No i tego, np. nie wiem jak zrobić. Mogę liczyć na Twoją pomoc?
nospor
3.02.2020, 15:33:37
Na moja pomoc? Caly czas dostajesz tu moja pomoc, ktora notabene sprowadza sie do zrobienia za ciebie wszystkiego. Zero wkladu wlasnego z twojej strony.
Robisz juz cokolwiek teraz po wyslaniu formularza? Wkladasz wtedy cos do bazy?
sauber94
3.02.2020, 15:44:01
Tak. Po uzupełnieniu formularza tj. wybór pracownika, podanie przepracowanej ilości godzin, wybór auta, podanie przejechanych kilometrów i wysłaniu go, dane lądują do bazy.
nospor
3.02.2020, 15:55:36
NO to pokaz jak to robisz... no wlacz troche wlasnego myslenia. Przeciez w ten kod trzeba teraz dodac te sume. By to zrobic, chyba musze zobaczyc co aktualnie masz, nie sadzisz?
sauber94
3.02.2020, 16:38:22
<?php
class Homepage extends Controller
{
public static function index
() { $resources = new Resources();
Form::post(['id_pracownika', 'czas', 'id_samochodu', 'kilometry', 'koszt'], function () {
$id_pracownika = $_POST['id_pracownika'];
$czas = $_POST['czas'];
$id_samochodu = $_POST['id_samochodu'];
$kilometry = $_POST['kilometry'];
$kilometry = $_POST['koszt'];
$r = new Resources();
$r->createOrders($id_pracownika, $czas, $id_samochodu, $kilometry, $koszt);
header('Location: /zlecenie'); });
return [
'pracownik' => $resources->getPracownik(),
'samochod' => $resources->getSamochod(),
'orders' => $resources->getOrders()
];
}
}
nospor
3.02.2020, 16:49:17
No i masz juz wszystkie metody niezbedne. Dlaczego nie mozesz ich wywolac?
$r = new Resources();
$pracownik = $r->getPracownik($id_pracownika); // w zmiennej $pracownik masz teraz dane pracownika. Wez sobie z nich stawke i pomnoz przez ilosc godzin
//to samo zrob z samochodem. Masz tu wszystkie dane
$r->createOrders($id_pracownika, $czas, $id_samochodu, $kilometry, $koszt);
sauber94
3.02.2020, 20:49:13
I jak później zapisać wynik w tabeli zlecenie w polu koszt?
nospor
3.02.2020, 21:47:31
Przeciez ostatnim parametrem funkcji createOrder() jest wlasnie KOSZT...
sauber94
4.02.2020, 16:30:34
Nie powinienem teraz wstawić do kodu coś w stylu:
$koszt = $stawka_pracownika * $czas + $koszt_km * $kilometry;
nospor
4.02.2020, 16:37:18
Powinienes
sauber94
4.02.2020, 19:03:35
Kurcze, napotkał mnie problem, formularz nie chce mi wysyłać danych do bazy. Jak dodam w bazie dane to są wyświetlane na stronie www.
nospor
4.02.2020, 21:20:08
Czyli chcesz powiedziec, ze przed wyliczeniem koszt, formularz ci dzialal, a po wyliczeniu koszt formularz ci przestal dzialac? Dobrze zrozumialem?
Pokaz kod po zmianach
sauber94
4.02.2020, 22:59:21
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;
}
}
nospor
5.02.2020, 10:25:24
Nie widze wyliczen kosztu to raz
A dwa wyswietl blad bazy
} catch (PDOException $e) {
$response = $e;
}
sauber94
5.02.2020, 10:40:32
Edytowałem wcześniejszy post, dodałem:
$koszt = $stawka * $czas + $koszt_km * $kilometry;
w createOrders i przy wysłaniu formularza wyświetla mi w Koszt '0' więc robię coś źle. Powinno pobierać stawkę od danego pracownika po id
A co do Twojej odpowiedzi 'wyświetl błąd bazy', możesz jaśniej? Mam gdzieś kod zmienić?
nospor
5.02.2020, 10:43:49
No przeciez podalem ci dokladnie kod na wyswietlenie bledu z bazy. Czytasz czasami co ci ludzie podaja?
Co do kosztu:

Ja sie poddaje. Pisalem ci rowniez wczesniej gdzie to masz wsadzic i skad masz brac dane do tego. Ty totalnie zlewasz to co sie pisze... powodzenia
sauber94
5.02.2020, 12:15:30
Proszę się na mnie nie złościć, staram się jak mogę. Ze zdrowiem u mnie teraz troszkę jest nie najlepiej i czuję, że nie pracuję efektywnie.
Baza naprawiona, próbuję teraz z tym kosztem gdzie to wstawić.
nospor
5.02.2020, 12:27:28
Napisalem ci gdzie dokladnie te wyliczenia koszt masz wstawic, podalem ci kawalek kodu nawet gdzie dokladnie ma to byc. To jest wlasnie wnerwiajace, ze ci sie pisze dokladnie co jak i gdzie, a ty to masz gdzies.
Przykro mi z powodu stanu twojego zdrowia, mam nadzieje ze sie poprawi, ale to nie usprawiedliwia faktu, ze ignorujesz co sie do ciebie pisze. I to przez caly ten watek, wielokrotnie musialem sie przypominac ze ciebie o cos prosilem a ty tego nie zrobiles, wielokrotnie pokazywalel co ma byc, a ty robiles inaczej.
sauber94
5.02.2020, 12:58:01
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);
$koszt = $stawka * $czas + $koszt_km * $kilometry;
$r->createOrders($id_pracownika, $id_samochodu, $kilometry, $czas);
header('Location: /zlecenie'); });
Tak to ma być? Bo tylko kawałek kodu z tym wysyłałeś.
nospor
5.02.2020, 13:03:23
Tak, tylko kawalek kodu, bo liczylem ze na jego podstawie reszte dorobisz. Napisalem ci przeciez skad masz wziasc takie wartosci jak STAWKA czy KOSZ ZA KM. A ty co? A ty nadal uzywasz zmienne $stawka czy $koszt_km bez pobranych ich wartosci. No same sie z komsosu nie wezma. Napisalem ci wyraznie gdzie sa i skad masz je wziasc
Napisalem, ze getEmployee() zwraca ci dane pracownika, w tym i jego stawke. Te dane to tablica. Jak nie wiesz co to tablica i jak z nia pracowac to lektura obowiazkowa
https://www.php.net/manual/en/language.types.array.php
viking
5.02.2020, 13:06:24
A takie podstawowe pytanie. Włączyłeś raportowanie błędów? Temat przyklejony na forum. Bo skąd np w tym kodzie wzięła się $stawka?
sauber94
5.02.2020, 20:19:00
nospor jakiś przykład jak to powinno wyglądać mógłbyś napisać? Kobinuję i mi to nie wychodzi. Wcześniej koszt pokazywał mi 1 teraz pojawia się 2 więc dalej źle robię. Krótki jakiś przykład nad którym mogę się wzorować.
viking nie, nie włączałem raportowania błędów
nospor
5.02.2020, 21:12:49
Wyciagnales te stawki z tej tablicy jak napisalem? Pokaz kod
sauber94
5.02.2020, 22:12:38
public static function index
() { $resources = new Resources();
Form::post(['id_pracownika', 'id_samochodu', 'kilometry', 'czas', 'koszt'], 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);
$stawka = ['stawka'];
$car = $r->getCar($id_samochodu);
$koszt_km = ['koszt_km'];
$koszt = $stawka * $czas + $koszt_km * $kilometry;
$r->createOrders($id_pracownika, $id_samochodu, $kilometry, $czas, $koszt);
header('Location: /zlecenie'); });
Czytam po kilka razy co mi piszesz i dalej nie mogę niektórych rzeczy pojąć. Wiem, że stawkę mam wyciągnąć z pracownika, koszt_km z samochodu, ale nie umiem tego no napisać. Prosta rzecz, przed którą się ośmieszam.
nospor
5.02.2020, 22:20:34
Zobacz, o tu
$_POST['kilometry'];
wyciagasz wartosc kilometry z tablicy $_POST
To jest doslownie pare linijek nad tym ['stawka']... pare linijek wyzej...
znajdz 10 roznic
$_POST['kilometry']
['stawka']
a nastepnie popraw to w koncu jak trzeba
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.