Cytat
podejrzewam że trzeba przelecieć funkcją sprawdzić jakie wyniki się powtarzają w tablicy i przy wyświetlaniu zaznaczyć na czerwono
ale jak to zrobić żeby sprawdzać wyniki z przedziału od 1 - 100 ? może if wrzucić w pętle for.
Nie zrozumiałem tego do końca, ale domyślam, się, że zawodnicy o takich samych wynikach mają być oznaczeni takim samym kolorem. Chyba najprościej będzie po prostu w pierwszej pętli dorzucić tablicę, gdzie przypiszemy kolor do wyniku. Tak więc dodajemy tablicę, gdzie wynik będzie kluczem, a kolor wartością. Kiedy już may tablicę gdzie do każdego wyniku mamy przypisany kolor to potem przy wyświetlaniu posługując się wynikem pobieramy ten kolor z tablicy. Jako klucza lepiej użyć hasz md5() z wartości wyniku, ponieważ wynik zapewne może być ułamkiem. Jeżeli chciałbyś, żeby każdy inny wynik był innym kolorem, to zamiast na sztywno przypisywać kolor w pętli while() możesz tam wstawić jakąś funkcje, która wylosuje kolor albo wygeneruje na podstawie wyniku. To co dodałem do Twojego kodu oznaczyłem //###########
<?php
require_once "core.php";
//###########
//###########
$sql_wynik = mysql_query('SELECT * FROM zawodnik AS z JOIN kuchenreuter AS k ON k.id_za = z.id_zawodnika') or
die(mysql_error());
{
$tab[] = $r;
//###########
$colorKey = md5($r['wynik']); $colors[$colorKey] = '#FF0000';
//###########
}
foreach ($tab as $a => $b) {
$wynik[$a] = $b['wynik'];
$uwagi[$a] = $b['uwagi'];
$uwagi1[$a] = $b['uwagi1'];
}
array_multisort($wynik, SORT_DESC
, $uwagi, SORT_ASC
, $uwagi, SORT_DESC
, $tab);
$i=1;
echo '<table border="1">'; echo '<td>Nazwisko</td>';
foreach ($tab as $a)
{
//###########
$colorKey = md5($a['wynik']); $color = $colors[$colorKey];
//###########
echo '<td>'.$i++.'</td>'; echo '<td>'.$a['nazwisko_zawodnika'].'</td>'; echo '<td>'.$a['imie_zawodnika'].'</td>'; //###########
echo '<td><span style="color:'.$color.'">'.$a['wynik'].'</span></td>'; //###########
if($a['uwagi'] > 0)
{
echo '<td>'.$a['uwagi'].'</td>'; }
if($a['uwagi1'] > 0){
echo '<td>'.$a['uwagi1'].'</td>'; }
}
?>