Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Undefined offset... Tylko, że...
NetBeans
post
Post #1





Grupa: Zarejestrowani
Postów: 56
Pomógł: 4
Dołączył: 18.01.2012

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


Cześć. Mam strasznie dziwny, nie logiczny jak dla mnie i w ogóle chory błąd.
Otóż po eksplozji stringa (data), przykładowo 2013-11-19, otrzymuję tablicę o trzech elementach mianowicie 2013, 11 oraz 19. Potwierdza to mój debugger, jak również print_r().

  1. Array ( [0] => 2013 [1] => 11 [2] => 19 )


Jak widzimy są dokładnie trzy elementy. Gdy później chcę wykorzystać jakiś element tej tablicy dostaję undefined offset...
Oto cały mój kod, żeby nie było wątpliwości.

  1. $dateItems = explode('-', $this->date);
  2. $newDate = $dateItems[2] . '.' . $dateItems[1] . '.' . $dateItems[0];


Szczerze mówiąc, to zgłupiałem... Ma ktoś pomysł co z tym zrobić?

Ten post edytował NetBeans 19.11.2013, 18:34:19
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
Szymciosek
post
Post #2





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

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


Podaj jeszcze co trzymasz w $this->date.
Go to the top of the page
+Quote Post
NetBeans
post
Post #3





Grupa: Zarejestrowani
Postów: 56
Pomógł: 4
Dołączył: 18.01.2012

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


var_dump dla $this->date.
Jest to po prostu data, zmienia się w zależności od tego, jaką sobie ustawi użytkownik. Prosta sprawa. Pisałem to wyżej.

  1. string '2013-11-15' (length=10)
Go to the top of the page
+Quote Post
Szymciosek
post
Post #4





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

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


Szczerze nie widzę u Ciebie błędu.

zrobiłem tak:
  1. $date = '2013-11-15';
  2. $dateArr = explode('-', $date);
  3. echo $dateArr[2] . '.' . $dateArr[1] . '.' . $dateArr[0];


i działa bez problemu.

Musisz posprawdzać dla pewności, najlepiej krok po kroku jakie wartości, gdzie masz.
Go to the top of the page
+Quote Post
Turson
post
Post #5





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Cytat
Oto cały mój kod, żeby nie było wątpliwości.

Na pewno nie cały skoro używasz $this


Rzeczywiście dziwna sprawa, bo na podstawie kodu, który podałeś wszystko wygląda prawidłowo.
Może sprawdź dla pewności, czy na pewno wywala błąd w tej linii (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
NetBeans
post
Post #6





Grupa: Zarejestrowani
Postów: 56
Pomógł: 4
Dołączył: 18.01.2012

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


No oczywiście, że to nie cały kod. Po co Ci kod całego modelu (IMG:style_emoticons/default/smile.gif) Przedstawiłem kod, który jako jedyny manipuluje właściwością "date". Jasny gwint, nie wiem co jest nie tak. Właśnie dlatego, że wszystko jest tak, jak być powinno. Masakra. (IMG:style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
Mlodycompany
post
Post #7





Grupa: Zarejestrowani
Postów: 910
Pomógł: 44
Dołączył: 20.02.2008
Skąd: Łódź

Ostrzeżenie: (20%)
X----


jeśli chcesz zmienić format daty to nie baw się rozdzielaniem tylko funkcja date()

  1. date("d-m-Y", strtotime($this->date))
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




1) Jestes pewien ze blad odnosi sie do tego wlasnie kodu?
2) Jesli TAK, to zapewne kod ten odpalany jest kilkukrotnie i akurat dla ktoregos tam odpalenia zmienna $this->date nie zawiera tego co sobie myslisz. PHP nie pluje nigdy bledami bez powodu.
Go to the top of the page
+Quote Post
tomxx
post
Post #9





Grupa: Zarejestrowani
Postów: 172
Pomógł: 27
Dołączył: 5.10.2013

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


Błąd musi być gdzieś w miejscu, którego nie podałeś, bo ten kod który pokazałeś sam w sobie jest prawidłowy.
Go to the top of the page
+Quote Post
com
post
Post #10





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


dobra znawcy nospor dał jasną i klarowna odp czemu rzuca notica (IMG:style_emoticons/default/wink.gif) i tą drogą trzeba iść.. najlepiej zrób var_dump($this->date); po każdej jej zmianie wtedy dojdziesz gdzie Ci jej nie tworzy (IMG:style_emoticons/default/wink.gif)
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: 22.08.2025 - 19:26