Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Puste pola w tabeli - wyświetlanie tekstu zastępczego
Forum PHP.pl > Forum > Przedszkole
arturpiotrowski
Mam w tabeli kilkanaście pól które mogą być puste albo zawierać coś, jak teraz jak jest puste pole to wyświetlić na stronie 'brak danych' czy pozostaje mi tylko dla każdego dać

  1. if($pole1==''){
  2. $text1 = 'Brak danych';
  3. } else {
  4. $text1 = $pole1;
  5. }
  6. if($pole2==''){
  7. $text2 = 'Brak danych';
  8. } else {
  9. $text2 = $pole2;
  10. }
  11. if($pole3==''){
  12. $text3 = 'Brak danych';
  13. } else {
  14. $text3 = $pole3;
  15. }
  16. ...
  17. if($pole50==''){
  18. $text50 = 'Brak danych';
  19. } else {
  20. $text50 = $pole50;
  21. }
  22. echo 'Label1: ' .$text1 . '<br>';
  23. echo 'Label2: ' .$text2 . '<br>';
  24. echo 'Label3: ' .$text3 . '<br>';
  25. ...
  26. echo 'Label50: ' .$text50 . '<br>';

czy jest jakieś lepsze rozwiązanie?
do głowy przychodzi mi jeszcze napisanie funkcji w stylu
  1. function czy_pusta($label,$pole){
  2. if($pole == ''){
  3. $out = $label . ': brak danych';
  4. } else{
  5. $out = $label . ': ' . $pole;
  6. }
  7. return $out;
  8. }
  9. // wywołanie
  10.  
  11. echo czy_pusta($label1,$pole1);
  12. echo czy_pusta($label2,$pole2);
  13. echo czy_pusta($label3,$pole3);
  14. ...
  15. echo czy_pusta($label50,$pole50);

ale nie wiem czy to najlepsze rozwiązanie?
Niree
  1. if(empty($pole1)) $text1 = 'Brak danych'; else $text1 = $pole1;
  2. if(empty($pole2)) $text2 = 'Brak danych'; else $text2 = $pole2;


itp.
emstawicki
Może bardziej optymalnie będzie operować na tablicy / obiekcie?
Niree
Generalnie funkcja, którą autor napisał, robi to samo co moje warunki (niczym się nie różnią, po prostu mój kod pozbawiony jest klamer). Jeśli będziesz miał 50. pól, to i tak funkcja wykona 50 warunków.
Już lepiej byłoby tutaj zrobić jakąś pętlę, ale to wciąż te same warunki.
nospor
Cytat
niczym się nie różnią, po prostu mój kod pozbawiony jest klamer
I po raz kolejny jestes na bakier ze standardami wink.gif
Wersja autora z klamrami jest lepsza od twojej. Jesli bardzo chcesz sie pozbyc klamer wowczas uzywasz ?:

$text1 = !empty($pole1) ? $pole1 : 'Brak danych';

albo jeszcze krocej w php7
$text1 = $pole1 questionmark.gif 'Brak danych';

Ale jak juz wspomnial emstawicki tutaj ewidentnie powinna byc tablica.

ps: questionmark.gif to sa dwa znaki zapytania tylko bbcode to zamienia :/
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.