Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL][OOP] Prośba o sprawdzenie metody w klasie
Forum PHP.pl > Forum > Przedszkole
Ramzaa
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.
outsider
dlaczego $zmienna == 0 ? Jesli chcesz sprawdzac czy zmienna jest pusta to wystarczy:
Kod
if(empty($zmienna) ) {
    // brak informacji
}
Ramzaa
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.
outsider
to moze:
Kod
if($zmienna === '0' && ... )

teraz wartosc musi byc stringiem o wartosci zero.
Ramzaa
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.
outsider
zle przepisales warunek ktory podalem: if($zmienna === '0')
Ramzaa
OuTSideR, to nie ma nic do rzeczy :s
Problem jest banalny i tkwi na 100% w "sensie" warunku. Tylko jaki? :s
toel
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...
Ramzaa
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.
Crozin
btw: Jak jakaś kolumna ma być pusta to się ją NULLuje, a nie jakimiś zerami wypełnia.
outsider
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.