If w echo

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 ?

0

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

Wykorzystuj nawiasy na pewno pomogą.

echo '<td>'.((warunek)? 'cos' : 'cos_innego').' </td>';
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.

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?

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.

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