Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Czy ten kod może być zapisany w taki sposób?
crazy_programmer
post 13.01.2011, 22:33:49
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 8.01.2011

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


Cześć wszystkim. Właśnie kończę się uczyć pierwszego rozdziału z książki "PHP I MySQL Vademecum Profesionalisty Wydanie III" i mam do was pewne pytnako. Czy ten kod może być zapisany w taki sposób?

  1. $iloscopon = (integer)$_POST['iloscopon'];
  2. $iloscoleju = (integer)$_POST['iloscoleju'];
  3. $iloscswiec = (integer)$_POST['iloscswiec'];
  4.  
  5. $ilosc = 0;
  6. $wartosc = 0;
  7. $podatekvat = 0.22;
  8.  
  9. define('CENAOPON', 250);
  10. define('CENAOLEJU', 100);
  11. define('CENASWIEC', 50);
  12.  
  13. $ilosc = $iloscopon + $iloscoleju + $iloscswiec;
  14. $wartosc = CENAOPON * $iloscopon
  15. + CENAOLEJU * $iloscoleju
  16. + CENASWIEC * $iloscswiec;
  17.  
  18. if( $ilosc > 0 && $wartosc > 0)
  19. {
  20. echo 'Zamówienie zostało przjęte o '.date('H:i, jS F').'<br />';
  21. echo 'Zostały zamówione następujące produkty: '.'<br />'
  22. $iloscopon.' opon(y)<br />'
  23. $iloscoleju.' butelki oleju<br />'
  24. $iloscswiec.' sztuk swiec<br />';
  25. echo 'Cena netto: '.number_format($wartosc, 2).'<br />';
  26. echo 'Cena brutto: '.number_format($wartosc * (1 + $podatekvat), 2);
  27. }
  28. else
  29. {
  30. echo 'Nie pwrowadziłeś żadnych danych';
  31. }


Ten post edytował crazy_programmer 13.01.2011, 22:36:44
Go to the top of the page
+Quote Post
vermis
post 13.01.2011, 22:37:09
Post #2





Grupa: Zarejestrowani
Postów: 279
Pomógł: 56
Dołączył: 3.06.2010
Skąd: Tarnowskie Góry

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


A co konkretnie masz na myśli?


--------------------
Go to the top of the page
+Quote Post
crazy_programmer
post 13.01.2011, 22:44:52
Post #3





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 8.01.2011

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


Wcześniej miałem pewien problem. Otóż gdy zmienne utworzyłem w dalszej części skryptu a na początku użyłem instrukcji warunkowej:

  1. if($ilosc>0 && $wartosc>0)
  2. echo 'Zamowienie zostało przyjęte o '.date('H:i, jS F');


Instrukcja ta była umieszczona na początku skryptu. Cały czas wywałało mi błąd. Gdy jednak przeniosłem zmienne na początek skryptu instrukcja warunkowa zaczęła działać. O co chodzi?
Go to the top of the page
+Quote Post
vermis
post 13.01.2011, 22:48:37
Post #4





Grupa: Zarejestrowani
Postów: 279
Pomógł: 56
Dołączył: 3.06.2010
Skąd: Tarnowskie Góry

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


Chodzi o to, że zmienne przed użyciem muszą zostać zainicjowane. Jeśli ta instrukcja był na początku to porównywałeś zmienne, które nie istnieją stąd błąd (pewnie że zmienna nie istnieje).


--------------------
Go to the top of the page
+Quote Post
Crozin
post 13.01.2011, 22:51:31
Post #5





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


  1. $podatekvat = 0.22;
Chciałbyś 22% co nie? smile.gif 23% mamy.
Cytat
Instrukcja ta była umieszczona na początku skryptu. Cały czas wywałało mi błąd. Gdy jednak przeniosłem zmienne na początek skryptu instrukcja warunkowa zaczęła działać. O co chodzi?
Pokaż dokładny kod jaki miałeś.

Hint:
1. Cena* nie powinna być stałą, a normalną zmienną.
2. Przestrzegaj konwencji nazewnictwa, czyli: $nazwaZmiennej, NAZWA_STAŁEJ
Go to the top of the page
+Quote Post
crazy_programmer
post 13.01.2011, 23:40:14
Post #6





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 8.01.2011

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


  1.  
  2. $iloscopon = (integer)$_POST['iloscopon'];
  3. $iloscoleju = (integer)$_POST['iloscoleju'];
  4. $iloscswiec = (integer)$_POST['iloscswiec'];
  5.  
  6. if($ilosc > 0 && $wartosc > 0)
  7. echo 'Zamówienie zostało przyjęte o '.data('H:i, jS F');
  8.  
  9. echo $iloscopon.' opon<br />';
  10. echo $iloscoleju.' oleju<br />';
  11. echo $iloscswiec.' swiec<br />';
  12.  
  13.  
  14. $ilosc = 0;
  15. $wartosc = 0.00;
  16.  
  17.  
  18. define("CENAOPON", 150);
  19. define("CENAOLEJU", 25);
  20. define("CENASWIEC", 50);
  21.  
  22. $ilosc = $iloscopon + $iloscoleju + $iloscswiec;
  23.  
  24. echo 'Zamówionych produktów: '.$ilosc.'<br />';
  25.  
  26. $wartosc = $iloscopon * CENAOPON
  27. + $iloscoleju * CENAOLEJU
  28. + $iloscswiec * CENASWIEC;
  29.  
  30. echo 'Cena Netto: '.number_format($wartosc, 2).' PLN<br />';
  31.  
  32. $podatekvat = 0.22;
  33. $wartosc = $wartosc * (1 + $podatekvat);
  34.  
  35. echo 'Cena Brutto: '.number_format($wartosc, 2).' PLN<br />';
  36.  


Wykonująć instrukcję warunkową if i używając funkcji data(), wyświetlany jest blą nieznana zmienna.
Go to the top of the page
+Quote Post
Crozin
post 13.01.2011, 23:47:11
Post #7





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


1. Używałeś zmiennych przed ich zadeklarowaniem ($ilosc i $wartosc nie istnieją w momencie ich użycia w linii #6). PHP nie traktuje tego jako błąd (a powinno) i w tle utworzy takie zmienne z wartością 0, co sprawi, że warunek nigdy nie zostanie spełniony.
2. Wszystkie instrukcje kontroler (if, else, for, while, foreach itd.) odnoszą się do dokładnie jednej instrukcji po nich lub jednego bloku kodu ( { ... } ).
Go to the top of the page
+Quote Post
potreb
post 13.01.2011, 23:50:14
Post #8





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


You are crazy_programmer. A gdzie masz wcześniej zdefiniowaną zmienną wartosc? Sprawdzasz zmienna wartosc, która nie istnieje.


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

Go to the top of the page
+Quote Post
crazy_programmer
post 13.01.2011, 23:50:29
Post #9





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 8.01.2011

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


Dzięki za wytłumaczenie smile.gif Przpraszam że zadaje takie proste pytania - dopiero się uczę smile.gif
Go to the top of the page
+Quote Post

Reply to this 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: 7.07.2025 - 16:19