Za darmo na e-mailPraktyczny kurs PHP (aż 200 stron!)

Krok po kroku, opanuj podstawy PHP za darmo - praktyczny kurs w formie e-booka prosto na Twój e-mail

Tło komórki w zależności od czasu

2.85K views
0
0 Comments

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>

Marcin Wesel Answered question 16 października 2020
Add a Comment
0
Jacek Kołcon (gość) 7 Komentarzy

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>

Jacek Kołcon Posted new comment 18 października 2020

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?

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 🙂

Add a Comment
You are viewing 1 out of 2 answers, click here to view all answers.
Write your answer.
Ominiesz taką okazję?Praktyczny Kurs PHP (aż 200 stron!) za darmo

Gorąco polecam, naprawdę warto skorzystać! To nic nie kosztuje. Krok po kroku, opanuj podstawy PHP za darmo - praktyczny kurs w formie e-booka prosto na Twój e-mail.