Witam
Jak zrobić żeby tło komórki zmieniało się w zależności od czasu pozostającego do wyznaczonego terminu?
<table> <tr> <td style="width: 10%; text-align: center;">Lp</td> <td style="width: 45%; text-align: center;">Data</td> <td style="width: 45%; text-align: center;">Termin</td> </tr> <?php $czas = date("Y-m-d"); mysqli_query($connect, 'SET @i:=0'); $zapytanie = "SELECT *, @i:=@i+1 Lp FROM tabela"; $wykonaj = mysqli_query ($connect, $zapytanie); while ($wiersz=mysqli_fetch_array ($wykonaj)) function kolorczas() { if(strtotime($wiersz['termin']) <= strtotime("$czas +3 day")) echo "<td style=\"background-color:orange;\">" . $wiersz['termin'] . "</td>"; else echo "<td style=\"background-color:blue;\">" . $wiersz['termin'] . "</td>"; } { echo "<tr><td>" . $wiersz['Lp']. "</td><td>" . $czas . "</td>" . kolorczas() . "</tr>"; } ?> </table>
Pewnie nie trafię z odpowiedzią, ale może chodzi o pewną ingerencję w wygląd kodu?
<table> <tr> <td style="width: 10%; text-align: center;">Lp</td> <td style="width: 45%; text-align: center;">Data</td> <td style="width: 45%; text-align: center;">Termin</td> </tr> <?php function kolorczas($t1, $t2) { if(strtotime($t1) <= strtotime("$t2 + 3 day")) echo "<td style=\"background-color:orange;\">" . $t1 . "</td>"; else echo "<td style=\"background-color:blue;\">" . $t1 . "</td>"; } $czas = date("Y-m-d"); mysqli_query($connect, 'SET @i:=0'); $zapytanie = "SELECT *, @i:=@i+1 Lp FROM tabela"; $wykonaj = mysqli_query ($connect, $zapytanie); while ($wiersz=mysqli_fetch_array ($wykonaj)) { echo "<tr><td>" . $wiersz['Lp']. "</td><td>" . $czas . "</td>" . kolorczas($wiersz['termin'],$czas) . "</tr>"; } ?> </table>


Marcin, jest błąd w Autorze komentarza – powinienem być ja (Andrzej)

Tak, właśnie widzę. Muszę sprawdzić o co chodzi. Dzięki!

Nazwy gości przy komentarzach już działają poprawnie.

Zwykle przy “składankach” unikam funkcji echo jak ognia! Rekomenduję użyć zmiennej np $str i robić tak:
$str = ”; // inicjacja
gdzieś w kodzie kolejno:
$str .= ‘;
$str .= jakas_funkcja($par1);
i tak dalej
i na końcu wchodzi echo całe na biało !
echo $str;
W kolejnym komentarzu poprawię funkcję na taką formę.

Lp
Data
Termin
<?php
function kolorczas($t1, $t2) {
if(strtotime($t1) <= strtotime("$t2 + 3 day"))
return "” . $t1 . “”;
else
return “” . $t1 . “”;
}
$str = ”;
$czas = date(“Y-m-d”);
mysqli_query($connect, ‘SET @i:=0’);
$zapytanie = “SELECT *, @i:=@i+1 Lp FROM tabela”;
$wykonaj = mysqli_query ($connect, $zapytanie);
while ($wiersz=mysqli_fetch_array ($wykonaj)) {
$str .= “” . $wiersz[‘Lp’]. “” . $czas . “”;
$str .= kolorczas($wiersz[‘termin’],$czas);
$str .= “”;
}
//var_dump($str);
echo $str;
?>

Wielkie dzięki Jacku za pomoc i poradę! Działa elegancko 🙂
Dzięki – o to właśnie chodziło. Zastosowałem złą funkcję w złym miejscu…
Po przerobieniu na Twoją wersję działa, ale jest jeden problem.
Komórka z funkcją wyświetla się nie na swoim miejscu, tylko niejako przed tabelą.
Sprawdziłem znaczniki i ilości komórek w wierszu, ale wygląda, że wszystko jest ok.
Co może być przyczyną takiego wyświetlania?