Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Automatyczne kolorowanie czcionki.
Forum PHP.pl > Forum > Przedszkole
brzanek
Witam mam dane z temperaturą powietrza (pobierane z bazy danych MySQL) wyświetlane w pliku php.
  1. echo '<table>';
  2. $result = mysql_query("SELECT * FROM warunki_chojna ORDER BY id DESC LIMIT 1") or die(mysql_error());
  3. while($row = mysql_fetch_array($result)) {
  4. echo '<tr>';
  5. echo '<td>Chojna</td>';
  6. echo "<td>".$row['tempmax']."&deg;C</td>";
  7. echo '</tr>';
  8. }
  9. echo '</table>';

Chciał bym pobierana wartość z bazy danych $row['tempmax'] było odpowiednio pokolorowana. Coś na tej zasadzie

Czyli z przedziałe. Jeśli temperatura mieści się w przedziale od 16 do 18 stopni to kolor czcionki jest żółty itd.
Z góry dziękuję za pomoc i pozdrawiam.
trueblue
Najwygodniej utworzyć tabelę z zakresami i kolorami (minimum, maksimum, kolor).
Potem spiąć ją z obecną tabelą na zasadzie: WHERE warunki_chojna.tempmax>=zakres.minimum AND warunki_chojna.tempmax<zakres.maksimum i wybrać kolumnę kolor.
brzanek
A nie da się tego zrobić w pliku php gdzie wywołuję dane z bazy MySQL?
trueblue
Da się, tylko, że w tablicy jest najwygodniej.
W php musisz utworzyć tablicę z elementów składających się z trzech elementów (analogicznie).
Potem przeglądać w pętli lub użyć array_walk i porównać zmienną z minimum oraz maksimum, dla mieszczącej się w zakresie, zwrócić kolor.
phpion
Możesz też nadawać klasy CSS, np.:
  1. <div class="temp-30">30</div>

a w CSS:
  1. .temp-30 {color: red;}

Żeby stworzyć kolory dla przedziałów wypisujesz po prostu kilka klas, np:
  1. .temp-30, .temp-31, .temp-32 {color: red;}

Rozwiązanie nieco upierdliwe bo trzeba zdefiniować klasy dla każdej wartości, ale robisz to raz. Można też pokusić się o przedziały wartości w PHP co dany poziom (np. co 5 stopni). Wówczas sprawdzasz do jakiego przedziału wpada wartość, np. 32 jest w przedziale 30-35 i robisz klasę:
  1. .temp-30-35 {color: red;}
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.