Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Problem ze skryptem., prosze o wytlumaczenie tego błedu i poprawe kodu
tonapewno
post
Post #1





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 5.11.2009

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


  1. <?php
  2. class koszyk
  3. {
  4. var $artykuly;
  5. function dodaj($numer, $ilosc)
  6. {
  7. $this->$artykuly["$numer"] += $ilosc;
  8. }
  9. function usun($numer, $ilosc)
  10. {
  11. if($this -> $artykuly["$numer"] < $ilsoc) {
  12. $this -> $artykuly["$numer"] -= $ilosc;
  13. } else {
  14. $this -> $artykuly["$numer"] = 0;
  15. }
  16. }
  17. function wyswietl()
  18. {
  19. while(list($k,$v) = each($this -> $artykuly))
  20. if ($v > 0){
  21. echo "Artykul nr $k - $v ilosc<br />;";
  22. }
  23. }
  24. }
  25.  
  26. $koszyk = new Koszyk;
  27. $koszyk -> dodaj('20', 2);
  28. $koszyk -> dodaj('45', 4);
  29. $koszyk -> dodaj('43', 5);
  30. $koszyk -> dodaj('34', 7);
  31. $koszyk -> wyswietl();
  32. ?>


powyższy kod wywala mi błąd:

  1. Notice: Undefined variable: artykuly in /home/www/php/index.php on line 7
  2.  
  3. Fatal error: Cannot access empty property in /home/www/php/index.php on line 7


tylko nie wiem dlaczego kod przepisałem z:

http://www.egrafik.pl/kurs-php/reusage.classes.php

Przyklad 6.2

Ten post edytował tonapewno 4.12.2009, 13:43:44
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Komunikat bledu wyraźnie mowi ze odwolujesz sie do zmiennej 'artykul', której nie ma. W kodzie tutaj masz tylko 'artykuly'

Widzisz roznice?
artykul
artykuly
Go to the top of the page
+Quote Post
tonapewno
post
Post #3





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 5.11.2009

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


tak widze tylko ze zauważ że w kodzie nie ma nigdzie "artykul".
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No wlasnie do tego zmierzam... czy napewno pokazałeś nam plik o nazwie index.php ?
Go to the top of the page
+Quote Post
tonapewno
post
Post #5





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 5.11.2009

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


już poprawiłem sorka, teraz już jest index.php i taki poprawiony błąd
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
teraz już jest index.php i taki poprawiony błąd
czyli co bo nie kumam nic z tego co tu napisales
Go to the top of the page
+Quote Post
tonapewno
post
Post #7





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 5.11.2009

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


skopiowany został cały mój index.php i bład który mi wyskakuje. bo wcześniej zmieniłem index.php ale go nie zapisałem i bład mi inny wyskakiwał.
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Czyli nadal nic nie kumam (IMG:style_emoticons/default/smile.gif)
Podaj jeszcze raz kod, tym razem aktualny i pokaz dokladnie co ci tym razem wyskakuje
Go to the top of the page
+Quote Post
tonapewno
post
Post #9





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 5.11.2009

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


index.php
  1. <?php
  2. class koszyk
  3. {
  4.  
  5. var $artykuly;
  6.  
  7. function dodaj($numer, $ilosc)
  8.  
  9. {
  10.  
  11. $this->$artykuly["$numer"] += $ilosc; // to jest linijka ktora mi error wywala
  12. }
  13.  
  14. function usun($numer, $ilosc)
  15.  
  16. {
  17.  
  18. if($this -> $artykuly["$numer"] < $ilsoc) {
  19.  
  20. $this -> $artykuly["$numer"] -= $ilosc;
  21.  
  22. } else {
  23.  
  24. $this -> $artykuly["$numer"] = 0;
  25.  
  26. }
  27.  
  28. }
  29.  
  30. function wyswietl()
  31.  
  32. {
  33.  
  34. while(list($k,$v) = each($this -> $artykuly))
  35.  
  36. if ($v > 0){
  37.  
  38. echo "Artykul nr $k - $v ilosc<br />;";
  39. }
  40.  
  41. }
  42.  
  43. }
  44.  
  45.  
  46.  
  47. $koszyk = new Koszyk;
  48.  
  49. $koszyk -> dodaj('20', 2);
  50.  
  51. $koszyk -> dodaj('45', 4);
  52.  
  53. $koszyk -> dodaj('43', 5);
  54.  
  55. $koszyk -> dodaj('34', 7);
  56.  
  57. $koszyk -> wyswietl();
  58.  
  59. ?>

error
  1. Notice: Undefined variable: artykuly in /home/www/php/index.php on line 7
  2. Fatal error: Cannot access empty property in /home/www/php/index.php on line 7


Wczesniej edytowałem kod który napisałem wyżej więc jest to samo.
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




podoba mi się tekst:
"przepisałem ze strony"

A nie widzisz roznicy pomiedzy
$this->$artykuly
a
$this->artykuly
?

Teraz jedno pod drugim
$this->$artykuly
$this->artykuly

Widac roznice? Jak jest na stronie a jak jest u ciebie? Znajdz 10 roznic (IMG:style_emoticons/default/winksmiley.jpg)

To już poraz kolejny gdy cos skopiujesz skads, powstawiasz wlasne "poprawki" i mowisze ze tekst przepisales ale jest masa bledow... Kurcze chlopie, ty patrz co robisz, szczególnie gdy jest tak początkujący
Go to the top of the page
+Quote Post
tonapewno
post
Post #11





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 5.11.2009

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


sorka za wypisywanie głupot, ale teraz mam kolejny problem:
MOJ index.php
  1. <?php
  2. class koszyk
  3. {
  4. var $artykul;
  5.  
  6. function dodaj($numer, $ilosc){
  7. $this -> artykul["$numer"] += $ilosc;
  8. }
  9. function usun ($numer, $ilosc){
  10. if ($this -> artykul["$numer"] > $ilosc ){
  11. $this -> artykul["$numer"] -= $ilsoc;
  12. } else {
  13. $this -> artykul["$numer"] = 0;
  14. }
  15. }
  16. function wyswietl(){
  17. while(list($k, $v) = each($this -> artykul))
  18. if ($v > 0){
  19. echo "Artykul $k - $v sztuk<br />";
  20. }
  21. }
  22. }
  23.  
  24. $koszyk = new Koszyk;
  25. $koszyk -> dodaj("20", 4);
  26. $koszyk -> dodaj("25", 5);
  27. $koszyk -> dodaj("30", 6);
  28. $koszyk -> wyswietl();
  29. ?>
  30.  


error

  1.  
  2. Notice: Undefined index: 20 in /home/www/php/index.php on line 7
  3.  
  4. Notice: Undefined index: 25 in /home/www/php/index.php on line 7
  5.  
  6. Notice: Undefined index: 30 in /home/www/php/index.php on line 7
  7. Artykul 20 - 4 sztuk
  8. Artykul 25 - 5 sztuk
  9. Artykul 30 - 6 sztuk


o co z tym chodzi?
Go to the top of the page
+Quote Post
nospor
post
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




no tym razem ciala dal autor skryptu. Kod powinien wygladac tak:
  1. //....
  2. function dodaj($numer, $ilosc){
  3. if (!isset($this->artykul[$numer]))
  4. $this->artykul[$numer] = $ilosc;
  5. else
  6. $this->artykul[$numer] += $ilosc;
  7. }
  8. //....
Go to the top of the page
+Quote Post
tonapewno
post
Post #13





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 5.11.2009

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


dzięki ci wielkie, już działa jak należy i następnym razem napewno nie będę pisał głupich postów. To był ostatni post.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 13:12