Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

4 Stron V  < 1 2 3 4 >  
Closed TopicStart new topic
> Formularz, mnożenie i sumowanie rekordów
nospor
post 3.02.2020, 14:38:21
Post #21





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




@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"...questionmark.gif? Lepiej sie nie przyznawaj. I kurcze, nie zadne "opadajom" bo mi oczy slepna jak czytam takie ortografy


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
sauber94
post 3.02.2020, 14:49:01
Post #22





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 22.05.2015

Ostrzeżenie: (0%)
-----


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ę.

  1. <?php
  2.  
  3. class Resources
  4. {
  5. public function getPracownik()
  6. {
  7. $response = false;
  8. try {
  9. $pdo = new ConnectionDatabase();
  10. $db = $pdo->connect();
  11. $query = $db->prepare("SELECT * FROM pracownik");
  12. $query->execute();
  13. $response = $query->fetchAll(PDO::FETCH_ASSOC);
  14.  
  15. } catch (PDOException $e) {
  16. $response = $e;
  17. }
  18.  
  19. return $response;
  20. }
  21.  
  22. public function getPracownikk($id)
  23. {
  24. $response = false;
  25. try {
  26. $pdo = new ConnectionDatabase();
  27. $db = $pdo->connect();
  28. $query = $db->prepare("SELECT * FROM pracownik WHERE id_pracownika = :id");
  29. $query->bindParam(':id', $id);
  30. $query->execute();
  31. $response = $query->fetchAll(PDO::FETCH_ASSOC);
  32.  
  33. } catch (PDOException $e) {
  34. $response = $e;
  35. }
  36. return $response[0];
  37. }
  38.  
  39. public function getSamochodd($id)
  40. {
  41. $response = false;
  42. try {
  43. $pdo = new ConnectionDatabase();
  44. $db = $pdo->connect();
  45. $query = $db->prepare("SELECT * FROM samochod WHERE id_samochodu = :id");
  46. $query->bindParam(':id', $id);
  47. $query->execute();
  48. $response = $query->fetchAll(PDO::FETCH_ASSOC);
  49.  
  50. } catch (PDOException $e) {
  51. $response = $e;
  52. }
  53. return $response[0];
  54. }
  55.  
  56.  
  57. public function getSamochod()
  58. {
  59. $response = false;
  60. try {
  61. $pdo = new ConnectionDatabase();
  62. $db = $pdo->connect();
  63. $query = $db->prepare("SELECT * FROM samochod");
  64. $query->execute();
  65. $response = $query->fetchAll(PDO::FETCH_ASSOC);
  66.  
  67. } catch (PDOException $e) {
  68. $response = $e;
  69. }
  70.  
  71. return $response;
  72. }
  73.  
  74. public function getOrders()
  75. {
  76. $response = false;
  77. try {
  78. $pdo = new ConnectionDatabase();
  79. $db = $pdo->connect();
  80. $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");
  81. $query->execute();
  82. $response = $query->fetchAll(PDO::FETCH_ASSOC);
  83.  
  84. } catch (PDOException $e) {
  85. $response = $e;
  86. }
  87.  
  88. return $response;
  89. }
  90.  
  91. public function getOrder($id)
  92. {
  93. $response = false;
  94. try {
  95. $pdo = new ConnectionDatabase();
  96. $db = $pdo->connect();
  97. $query = $db->prepare("SELECT * FROM zlecenie WHERE id_zlecenia = :id");
  98. $query->bindParam(':id', $id);
  99. $query->execute();
  100. $response = $query->fetchAll(PDO::FETCH_ASSOC);
  101.  
  102. } catch (PDOException $e) {
  103. $response = $e;
  104. }
  105. return $response[0];
  106. }
  107.  
  108. public function createOrders($id_pracownika, $czas, $id_samochodu, $kilometry, $koszt)
  109. {
  110. $response = false;
  111. try {
  112. $pdo = new ConnectionDatabase();
  113. $db = $pdo->connect();
  114. $query = $db->prepare("INSERT INTO zlecenie (id_pracownika, czas, id_samochodu, kilometry, koszt)
  115. VALUES (:id_pracownika, :czas, :id_samochodu, :kilometry, :koszt)");
  116. $query->bindParam(':id_pracownika', $id_pracownika);
  117. $query->bindParam(':czas', $czas);
  118. $query->bindParam(':id_samochodu', $id_samochodu);
  119. $query->bindParam(':kilometry', $kilometry);
  120. $query->bindParam(':koszt', $koszt);
  121. $query->execute();
  122. $response = true;
  123. } catch (PDOException $e) {
  124. $response = $e;
  125. }
  126. return $response;
  127. }
  128.  
  129. }


Go to the top of the page
+Quote Post
nospor
post 3.02.2020, 14:54:28
Post #23





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




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?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
sauber94
post 3.02.2020, 15:00:10
Post #24





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 22.05.2015

Ostrzeżenie: (0%)
-----


Nie wiem jaki kod w formularzu zamieścić by mi to wszystko liczyło.
Go to the top of the page
+Quote Post
nospor
post 3.02.2020, 15:01:08
Post #25





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




Przeciez ci juz pisalem:
nic w formularzu masz nie dodawac...
Za to po wyslaniu formularza, masz dokonac odpowiednich obliczen i wlozyc dane do bazy.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
sauber94
post 3.02.2020, 15:25:25
Post #26





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 22.05.2015

Ostrzeżenie: (0%)
-----


No i tego, np. nie wiem jak zrobić. Mogę liczyć na Twoją pomoc?
Go to the top of the page
+Quote Post
nospor
post 3.02.2020, 15:33:37
Post #27





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




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?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
sauber94
post 3.02.2020, 15:44:01
Post #28





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 22.05.2015

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
nospor
post 3.02.2020, 15:55:36
Post #29





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




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?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
sauber94
post 3.02.2020, 16:38:22
Post #30





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 22.05.2015

Ostrzeżenie: (0%)
-----


  1. <?php
  2.  
  3. class Homepage extends Controller
  4. {
  5. public static function index() {
  6. $resources = new Resources();
  7. Form::post(['id_pracownika', 'czas', 'id_samochodu', 'kilometry', 'koszt'], function () {
  8. $id_pracownika = $_POST['id_pracownika'];
  9. $czas = $_POST['czas'];
  10. $id_samochodu = $_POST['id_samochodu'];
  11. $kilometry = $_POST['kilometry'];
  12. $kilometry = $_POST['koszt'];
  13. $r = new Resources();
  14. $r->createOrders($id_pracownika, $czas, $id_samochodu, $kilometry, $koszt);
  15. header('Location: /zlecenie');
  16. });
  17.  
  18. return [
  19. 'pracownik' => $resources->getPracownik(),
  20. 'samochod' => $resources->getSamochod(),
  21. 'orders' => $resources->getOrders()
  22. ];
  23. }
  24. }


Ten post edytował sauber94 3.02.2020, 16:40:40
Go to the top of the page
+Quote Post
nospor
post 3.02.2020, 16:49:17
Post #31





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




No i masz juz wszystkie metody niezbedne. Dlaczego nie mozesz ich wywolac?

  1. $r = new Resources();
  2. $pracownik = $r->getPracownik($id_pracownika); // w zmiennej $pracownik masz teraz dane pracownika. Wez sobie z nich stawke i pomnoz przez ilosc godzin
  3. //to samo zrob z samochodem. Masz tu wszystkie dane
  4. $r->createOrders($id_pracownika, $czas, $id_samochodu, $kilometry, $koszt);


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
sauber94
post 3.02.2020, 20:49:13
Post #32





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 22.05.2015

Ostrzeżenie: (0%)
-----


I jak później zapisać wynik w tabeli zlecenie w polu koszt?
Go to the top of the page
+Quote Post
nospor
post 3.02.2020, 21:47:31
Post #33





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004






Przeciez ostatnim parametrem funkcji createOrder() jest wlasnie KOSZT...


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
sauber94
post 4.02.2020, 16:30:34
Post #34





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 22.05.2015

Ostrzeżenie: (0%)
-----


Nie powinienem teraz wstawić do kodu coś w stylu:
$koszt = $stawka_pracownika * $czas + $koszt_km * $kilometry;
Go to the top of the page
+Quote Post
nospor
post 4.02.2020, 16:37:18
Post #35





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




Powinienes


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
sauber94
post 4.02.2020, 19:03:35
Post #36





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 22.05.2015

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
nospor
post 4.02.2020, 21:20:08
Post #37





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




Czyli chcesz powiedziec, ze przed wyliczeniem koszt, formularz ci dzialal, a po wyliczeniu koszt formularz ci przestal dzialac? Dobrze zrozumialem?

Pokaz kod po zmianach


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
sauber94
post 4.02.2020, 22:59:21
Post #38





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 22.05.2015

Ostrzeżenie: (0%)
-----


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?

  1. <?php
  2.  
  3. class Homepage extends Controller
  4. {
  5. public static function index() {
  6. $resources = new Resources();
  7. Form::post(['id_pracownika', 'id_samochodu', 'kilometry', 'czas'], function () {
  8. $id_pracownika = $_POST['id_pracownika'];
  9. $id_samochodu = $_POST['id_samochodu'];
  10. $kilometry = $_POST['kilometry'];
  11. $czas = $_POST['czas'];
  12. $r = new Resources();
  13. $employee = $r->getEmployee($id_pracownika);
  14. $car = $r->getCar($id_samochodu);
  15. $r->createOrders($id_pracownika, $id_samochodu, $kilometry, $czas);
  16. header('Location: /zlecenie');
  17. });
  18.  
  19. return [
  20. 'orders' => $resources->getOrders(),
  21. 'employees' => $resources->getEmployees(),
  22. 'employee' => $resources->getEmployee(),
  23. 'cars' => $resources->getCars(),
  24. 'car' => $resources->getCar()
  25. ];
  26. }
  27.  
  28. public static function delete() {
  29. Form::post(['id'], function () {
  30. $id = $_POST['id'];
  31. $r = new Resources();
  32. $r->deleteOrder($id);
  33. header('Location: /zlecenie');
  34. });
  35.  
  36. return [
  37. ];
  38. }
  39. }



  1. <?php
  2.  
  3. class Resources
  4. {
  5.  
  6. public function getEmployees()
  7. {
  8. $response = false;
  9. try {
  10. $pdo = new ConnectionDatabase();
  11. $db = $pdo->connect();
  12. $query = $db->prepare("SELECT * FROM pracownik");
  13. $query->execute();
  14. $response = $query->fetchAll(PDO::FETCH_ASSOC);
  15.  
  16. } catch (PDOException $e) {
  17. $response = $e;
  18. }
  19.  
  20. return $response;
  21. }
  22.  
  23.  
  24. public function getEmployee()
  25. {
  26. $response = false;
  27. try {
  28. $pdo = new ConnectionDatabase();
  29. $db = $pdo->connect();
  30. $query = $db->prepare("SELECT * FROM pracownik WHERE id_pracownika = :id");
  31. $query->execute();
  32. $response = $query->fetchAll(PDO::FETCH_ASSOC);
  33.  
  34. } catch (PDOException $e) {
  35. $response = $e;
  36. }
  37.  
  38. return $response;
  39. }
  40.  
  41.  
  42. public function getCars()
  43. {
  44. $response = false;
  45. try {
  46. $pdo = new ConnectionDatabase();
  47. $db = $pdo->connect();
  48. $query = $db->prepare("SELECT * FROM samochod");
  49. $query->execute();
  50. $response = $query->fetchAll(PDO::FETCH_ASSOC);
  51.  
  52. } catch (PDOException $e) {
  53. $response = $e;
  54. }
  55.  
  56. return $response;
  57. }
  58.  
  59. public function getCar()
  60. {
  61. $response = false;
  62. try {
  63. $pdo = new ConnectionDatabase();
  64. $db = $pdo->connect();
  65. $query = $db->prepare("SELECT * FROM samochod WHERE id_samochodu = :id");
  66. $query->execute();
  67. $response = $query->fetchAll(PDO::FETCH_ASSOC);
  68.  
  69. } catch (PDOException $e) {
  70. $response = $e;
  71. }
  72.  
  73. return $response;
  74. }
  75. public function getOrders()
  76. {
  77. $response = false;
  78. try {
  79. $pdo = new ConnectionDatabase();
  80. $db = $pdo->connect();
  81. $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");
  82. $query->execute();
  83. $response = $query->fetchAll(PDO::FETCH_ASSOC);
  84.  
  85. } catch (PDOException $e) {
  86. $response = $e;
  87. }
  88.  
  89. return $response;
  90. }
  91.  
  92.  
  93. public function getOrder($id)
  94. {
  95. $response = false;
  96. try {
  97. $pdo = new ConnectionDatabase();
  98. $db = $pdo->connect();
  99. $query = $db->prepare("SELECT * FROM zlecenie WHERE id_zlecenia = :id");
  100. $query->bindParam(':id', $id);
  101. $query->execute();
  102. $response = $query->fetchAll(PDO::FETCH_ASSOC);
  103.  
  104. } catch (PDOException $e) {
  105. $response = $e;
  106. }
  107. return $response[0];
  108. }
  109.  
  110. public function createOrders($id_pracownika, $id_samochodu, $kilometry, $czas)
  111. {
  112. $response = false;
  113. try {
  114. $pdo = new ConnectionDatabase();
  115. $db = $pdo->connect();
  116. $query = $db->prepare("INSERT INTO zlecenie (id_pracownika, id_samochodu, kilometry, czas)
  117. VALUES (:id_pracownika, :id_samochodu, :kilometry, :czas)");
  118. $query->bindParam(':id_pracownika', $id_pracownika);
  119. $query->bindParam(':id_samochodu', $id_samochodu);
  120. $query->bindParam(':kilometry', $kilometry);
  121. $query->bindParam(':czas', $czas);
  122. $koszt = $stawka * $czas + $koszt_km * $kilometry;
  123. $query->execute();
  124. $response = true;
  125. } catch (PDOException $e) {
  126. $response = $e;
  127. }
  128. return $response;
  129. }
  130.  
  131.  
  132. }


Ten post edytował sauber94 5.02.2020, 10:45:15
Go to the top of the page
+Quote Post
nospor
post 5.02.2020, 10:25:24
Post #39





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




Nie widze wyliczen kosztu to raz
A dwa wyswietl blad bazy

  1. } catch (PDOException $e) {
  2. die($e->getMessage());
  3. $response = $e;
  4. }
  5.  


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
sauber94
post 5.02.2020, 10:40:32
Post #40





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 22.05.2015

Ostrzeżenie: (0%)
-----


Edytowałem wcześniejszy post, dodałem:
  1. $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ć?

Ten post edytował sauber94 5.02.2020, 10:44:53
Go to the top of the page
+Quote Post

4 Stron V  < 1 2 3 4 >
Closed TopicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.04.2024 - 01:43