If w echo

M7
  • Rejestracja:ponad 6 lat
  • Ostatnio:ponad 6 lat
  • Postów:7
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 :

Kopiuj
<?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
M7
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ą
0

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

Wykorzystuj nawiasy na pewno pomogą.

Kopiuj
echo '<td>'.((warunek)? 'cos' : 'cos_innego').' </td>';
no_solution_found
  • Rejestracja:prawie 18 lat
  • Ostatnio:15 dni
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.


axelbest
  • Rejestracja:ponad 17 lat
  • Ostatnio:około 7 godzin
  • Lokalizacja:Warszawa
  • Postów:2251
0

A ja bym to zrobił tak:

Kopiuj
$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?

CS
  • Rejestracja:ponad 6 lat
  • Ostatnio:około 20 godzin
  • Postów:296
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 :

Kopiuj
<?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

Kopiuj
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.

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.