Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Puste pola w tabeli - wyświetlanie tekstu zastępczego
arturpiotrowski
post
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 6.12.2016

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


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?

Ten post edytował arturpiotrowski 11.12.2016, 23:39:40
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Niree
post
Post #2





Grupa: Zarejestrowani
Postów: 220
Pomógł: 18
Dołączył: 5.02.2016
Skąd: Polska

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


  1. if(empty($pole1)) $text1 = 'Brak danych'; else $text1 = $pole1;
  2. if(empty($pole2)) $text2 = 'Brak danych'; else $text2 = $pole2;


itp.
Go to the top of the page
+Quote Post
emstawicki
post
Post #3





Grupa: Zarejestrowani
Postów: 207
Pomógł: 40
Dołączył: 2.06.2016
Skąd: Olsztyn

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


Może bardziej optymalnie będzie operować na tablicy / obiekcie?
Go to the top of the page
+Quote Post
Niree
post
Post #4





Grupa: Zarejestrowani
Postów: 220
Pomógł: 18
Dołączył: 5.02.2016
Skąd: Polska

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


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.
Go to the top of the page
+Quote Post
nospor
post
Post #5





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




Cytat
niczym się nie różnią, po prostu mój kod pozbawiony jest klamer
I po raz kolejny jestes na bakier ze standardami (IMG:style_emoticons/default/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 (IMG:style_emoticons/default/questionmark.gif) 'Brak danych';

Ale jak juz wspomnial emstawicki tutaj ewidentnie powinna byc tablica.

ps: (IMG:style_emoticons/default/questionmark.gif) to sa dwa znaki zapytania tylko bbcode to zamienia :/
Powód edycji: [nospor]:
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 - 16:06