Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL][OOP] Prośba o sprawdzenie metody w klasie, + ewentualnie lepsze rozwiązanie dla funkcji
Ramzaa
post
Post #1





Grupa: Zarejestrowani
Postów: 207
Pomógł: 17
Dołączył: 4.08.2009

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


Funkcja, a w zasadzie metoda, niestety nie wyświetla poprawnie danych z bazy danych mysql. Chodzi o to, że gdy wartość jakiegoś pola z tabeli == 0, to skrypt działa prawidłowo i pokazuje "Brak informacji...", ok, ale gdy wpiszę dla przykładu byle jakie dane, to wtedy skrypt działa jakby widział tam "0" i pokazuje "Brak informacji...".

Aha i jak możecie, to dajcie jakieś lepsze zapisanie tego, bo coś czuję, że da się tak.

  1. if (($this->user['user_realname']==0) && ($this->user['userlocation']==0) && ($this->user['userpage']==0) && ($this->user['userinterests']==0)) {
  2.  
  3. $this->user['displayRealName'] = '<em>Brak informacji...</em>';
  4. $this->user['displayLocation'] = '<em>Brak informacji...</em>';
  5. $this->user['displayPage'] = '<em>Brak informacji...</em>';
  6. $this->user['displayInterests'] = '<em>Brak informacji...</em>';
  7.  
  8. }
  9.  
  10. else {
  11.  
  12. $this->user['displayRealName'] = $this->user['user_realname'] ;
  13. $this->user['displayLocation'] = $this->user['userlocation'];
  14. $this->user['displayPage'] = $this->user['userpage'];
  15. $this->user['displayInterests'] = $this->user['userinterests'];
  16.  
  17. }
  18.  
  19. return $this->user;


Pozdrawiam.
Go to the top of the page
+Quote Post
outsider
post
Post #2





Grupa: Zarejestrowani
Postów: 267
Pomógł: 36
Dołączył: 8.08.2008

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


dlaczego $zmienna == 0 ? Jesli chcesz sprawdzac czy zmienna jest pusta to wystarczy:
Kod
if(empty($zmienna) ) {
    // brak informacji
}


Ten post edytował *OuTSideR* 16.08.2010, 12:57:20
Go to the top of the page
+Quote Post
Ramzaa
post
Post #3





Grupa: Zarejestrowani
Postów: 207
Pomógł: 17
Dołączył: 4.08.2009

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


Spoko, ale domyślnie do bazy zapisuje mi się zero jeśli nie wypełnione jest pole.
Funkcja empty() niestety w tej sytuacji nie pomoże.

Proszę o jakieś inne rozwiązanie.

Ten post edytował Ramzaa 16.08.2010, 13:00:18
Go to the top of the page
+Quote Post
outsider
post
Post #4





Grupa: Zarejestrowani
Postów: 267
Pomógł: 36
Dołączył: 8.08.2008

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


to moze:
Kod
if($zmienna === '0' && ... )

teraz wartosc musi byc stringiem o wartosci zero.

Ten post edytował *OuTSideR* 16.08.2010, 13:02:48
Go to the top of the page
+Quote Post
Ramzaa
post
Post #5





Grupa: Zarejestrowani
Postów: 207
Pomógł: 17
Dołączył: 4.08.2009

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


Niestety nadal skrypt szwankuje, teraz pokazuje mi jak mam np. 2 pola wypełnione, to pokazuje coś takiego:

Imię: wpisane imie
Lokalizacja: 0
Twoja strona: 0
Zainteresowania: wpisane hobby

Aktualnie skrypt wygląda tak:

  1. if (($this->user['user_realname']===0) AND ($this->user['userlocation']===0) AND ($this->user['userpage']===0) AND ($this->user['userinterests']===0)) {
  2. $this->user['displayRealName'] = '<em>Brak informacji...</em>';
  3. $this->user['displayLocation'] = '<em>Brak informacji...</em>';
  4. $this->user['displayPage'] = '<em>Brak informacji...</em>';
  5. $this->user['displayInterests'] = '<em>Brak informacji...</em>';
  6. }
  7.  
  8. else {
  9. $this->user['displayRealName'] = $this->user['user_realname'];
  10. $this->user['displayLocation'] = $this->user['userlocation'];
  11. $this->user['displayPage'] = $this->user['userpage'];
  12. $this->user['displayInterests'] = $this->user['userinterests'];
  13. }
  14.  
  15. return $this->user;
  16. }


Oczywiście wypełniłem tylko 1 i ostatnie pole.
Nadal proszę o pomoc.
Go to the top of the page
+Quote Post
outsider
post
Post #6





Grupa: Zarejestrowani
Postów: 267
Pomógł: 36
Dołączył: 8.08.2008

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


zle przepisales warunek ktory podalem: if($zmienna === '0')
Go to the top of the page
+Quote Post
Ramzaa
post
Post #7





Grupa: Zarejestrowani
Postów: 207
Pomógł: 17
Dołączył: 4.08.2009

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


OuTSideR, to nie ma nic do rzeczy :s
Problem jest banalny i tkwi na 100% w "sensie" warunku. Tylko jaki? :s
Go to the top of the page
+Quote Post
toel
post
Post #8





Grupa: Zarejestrowani
Postów: 97
Pomógł: 11
Dołączył: 2.02.2010

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


Powinieneś dla każdej zmiennej zrobić oddzielny warunek. Bo jeśli większość jest 0 ale np. zainteresowania są wypełnione to i tak wyświetli się wszystko.
Rozbij to...
Go to the top of the page
+Quote Post
Ramzaa
post
Post #9





Grupa: Zarejestrowani
Postów: 207
Pomógł: 17
Dołączył: 4.08.2009

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


Dokładnie tak biggrin.gif
Już wcześniej na to wpadłem, ale chciałem być fajniejszy i zrobić to w jednym warunku. Ok, dzięki za zainteresowanie.

Ten post edytował Ramzaa 16.08.2010, 13:24:42
Go to the top of the page
+Quote Post
Crozin
post
Post #10





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

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


btw: Jak jakaś kolumna ma być pusta to się ją NULLuje, a nie jakimiś zerami wypełnia.
Go to the top of the page
+Quote Post
outsider
post
Post #11





Grupa: Zarejestrowani
Postów: 267
Pomógł: 36
Dołączył: 8.08.2008

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


Cytat
Powinieneś dla każdej zmiennej zrobić oddzielny warunek.

tez tak na poczatku myslalem, ale zostawilem to, byc moze taki byl zamysl autora, ze gdy jakas wiadomosc jest nie wypelniona wyskakuje brak informacji smile.gif
Zmien, tak jak pisal Crozin, pola w bazie na domylsnie NULL, pozniej kazdy rekord sprawdzaj funkcja empty() czy nie jest pusty, i to wszystko.

Ten post edytował *OuTSideR* 16.08.2010, 13:44:57
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 Aktualny czas: 20.08.2025 - 11:42