If w echo

Odpowiedz Nowy wątek
2018-08-10 08:56
0

Witam panowie, mam pewien problem z konstrukcją IF w echo. Chcę aby warunek $_game['work_term'] decydował o tym czy ma wyświetlać się td .
Mam taki kod :

<?php echo '
    <tr>
        '. ($_game['work_term'] ? . '<td class="align-center schedule-datetime"><span class="schedule-date">' . (strtotime($_game['data_spotkania']) != 0 && $_game['data_spotkania'] != '0000-00-00 00:00:00' ? date('Y-m-d', strtotime($_game['data_spotkania'].'')) . '</span> <span class="schedule-hour">' . date('H:i', strtotime($_game['godz_spotkania'])) : ' - ') . '</span></td>') : " " '

Trochę się już pogubiłem w tym i nie mogę znaleźć błędu. Czy ktoś mógłby wspomóc ?

edytowany 2x, ostatnio: Mat77, 2018-08-10 08:57
Dobra, temat można uznać za zamknięty, poradziłem sobie w inny sposób - dodając klase hidden jeśli $_game['work_term'] jest prawdą - Mat77 2018-08-10 09:11

Pozostało 580 znaków

2018-08-10 09:14
Pokrzywi
0

Mało czytelny ten kod. Pomagaj sobie i innym,

Wykorzystuj nawiasy na pewno pomogą.

echo '<td>'.((warunek)? 'cos' : 'cos_innego').' </td>';

Pozostało 580 znaków

2018-08-10 09:31
0

nie powinieneś w tym miejscu wrzucać tych ifów, bo tam kompletnie nic nie widać. Zrób warunki PRZED i do echo wrzuć tylko zmienne z wynikiem tych warunków.

Pozostało 580 znaków

2018-08-10 10:45
0

A ja bym to zrobił tak:

$message = $_game['work_term'] ? "Tutaj Twój string po spełnieniu warunku" : "Tutaj Twój string niespełniąjący warunku";
echo $message;

Po co masz sobie życie utrudniać? Czy scalenie tego do jednej linijki spowoduje, że kod będzie szybszy?

Pozostało 580 znaków

2018-08-10 10:46
cs
0
Mat77 napisał(a):

Witam panowie, mam pewien problem z konstrukcją IF w echo. Chcę aby warunek $_game['work_term'] decydował o tym czy ma wyświetlać się td .
Mam taki kod :

<?php echo '
  <tr>
      '. ($_game['work_term'] ? . '<td class="align-center schedule-datetime"><span class="schedule-date">' . (strtotime($_game['data_spotkania']) != 0 && $_game['data_spotkania'] != '0000-00-00 00:00:00' ? date('Y-m-d', strtotime($_game['data_spotkania'].'')) . '</span> <span class="schedule-hour">' . date('H:i', strtotime($_game['godz_spotkania'])) : ' - ') . '</span></td>') : " " '

Trochę się już pogubiłem w tym i nie mogę znaleźć błędu. Czy ktoś mógłby wspomóc ?

Wyrażenie warunkowe

warunek?wynik-jeśli-prawda:wynik-jeśli-fałsz

u Ciebie
warunek: $_game['work_term']
wynik-jeśli-prawda: .'<td class="align-center schedule-datetime"><span class="schedule-date">' . (strtotime($_game['data_spotkania']) != 0 && $_game['data_spotkania'] != '0000-00-00 00:00:00' ? date('Y-m-d', strtotime($_game['data_spotkania'].'')) . '</span> <span class="schedule-hour">' . date('H:i', strtotime($_game['godz_spotkania']))
wynik-jeśli-fałsz: ' - '
Na samym początku wynik-jeśli-prawda masz kropkę, która tu jest niepotrzebna bo wyrażenie ma zwrócić tylko string, konkatenację masz przed nawiasem, w którym masz całe wyrażenie.
W drugim, zagnieżdżonym, wyrażeniu warunkowym:strtotime($_game['data_spotkania']) != 0 && $_game['data_spotkania'] != '0000-00-00 00:00:00' ? date('Y-m-d', strtotime($_game['data_spotkania'].''), nie widzę wyniku-jeśli-fałsz.

OP chyba zaczyna programowanie, bo porywa się z motyką na słońce :) - axelbest 2018-08-10 10:49

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0