Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]zaznaczenie takich samych wyników
ghastblood
post
Post #1





Grupa: Zarejestrowani
Postów: 360
Pomógł: 12
Dołączył: 17.09.2009
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


skrypt wyświetla mi wyniki zawodników jak mogę zaznaczyć na czerwono zawodników którzy mają takie same wyniki?

  1. <?php
  2.  
  3. require_once "core.php";
  4.  
  5. $sql_wynik = mysql_query('SELECT * FROM zawodnik AS z JOIN kuchenreuter AS k ON k.id_za = z.id_zawodnika') or die(mysql_error());
  6.  
  7. while($r = mysql_fetch_array($sql_wynik, MYSQL_ASSOC)){
  8. $tab[] = $r;
  9. }
  10.  
  11. foreach ($tab as $a => $b) {
  12. $wynik[$a] = $b['wynik'];
  13. $uwagi[$a] = $b['uwagi'];
  14. $uwagi1[$a] = $b['uwagi1'];
  15.  
  16.  
  17. }
  18. array_multisort($wynik, SORT_DESC, $uwagi, SORT_ASC, $uwagi, SORT_DESC, $tab);
  19.  
  20.  
  21. $i=1;
  22. echo '<table border="1">';
  23. echo '<tr>';
  24. echo '<td>L.P</td>';
  25. echo '<td>Nazwisko</td>';
  26. echo '<td>Imie</td>';
  27. echo '<td>Wynik</td>';
  28. echo '<td>Uwagi</td>';
  29. echo '</tr>';
  30.  
  31. foreach ($tab as $a) {
  32. echo '<tr>';
  33. echo '<td>'.$i++.'</td>';
  34. echo '<td>'.$a['nazwisko_zawodnika'].'</td>';
  35. echo '<td>'.$a['imie_zawodnika'].'</td>';
  36. echo '<td>'.$a['wynik'].'</td>';
  37. if($a['uwagi'] > 0){
  38. echo '<td>'.$a['uwagi'].'</td>';
  39. }
  40. if($a['uwagi1'] > 0){
  41. echo '<td>'.$a['uwagi1'].'</td>';
  42. }
  43.  
  44.  
  45.  
  46. }
  47.  
  48.  
  49.  
  50. ?>


Ten post edytował ghastblood 3.06.2012, 17:03:49
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
tehaha
post
Post #2





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


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 //###########

  1. <?php
  2.  
  3. require_once "core.php";
  4.  
  5.  
  6.  
  7. //###########
  8. $colors = array();
  9. //###########
  10.  
  11.  
  12. $sql_wynik = mysql_query('SELECT * FROM zawodnik AS z JOIN kuchenreuter AS k ON k.id_za = z.id_zawodnika') or die(mysql_error());
  13.  
  14. while($r = mysql_fetch_array($sql_wynik, MYSQL_ASSOC))
  15. {
  16. $tab[] = $r;
  17.  
  18.  
  19. //###########
  20. $colorKey = md5($r['wynik']);
  21. $colors[$colorKey] = '#FF0000';
  22. //###########
  23.  
  24. }
  25.  
  26. foreach ($tab as $a => $b) {
  27. $wynik[$a] = $b['wynik'];
  28. $uwagi[$a] = $b['uwagi'];
  29. $uwagi1[$a] = $b['uwagi1'];
  30.  
  31.  
  32. }
  33. array_multisort($wynik, SORT_DESC, $uwagi, SORT_ASC, $uwagi, SORT_DESC, $tab);
  34.  
  35.  
  36. $i=1;
  37. echo '<table border="1">';
  38. echo '<tr>';
  39. echo '<td>L.P</td>';
  40. echo '<td>Nazwisko</td>';
  41. echo '<td>Imie</td>';
  42. echo '<td>Wynik</td>';
  43. echo '<td>Uwagi</td>';
  44. echo '</tr>';
  45.  
  46. foreach ($tab as $a)
  47. {
  48. //###########
  49. $colorKey = md5($a['wynik']);
  50. $color = $colors[$colorKey];
  51. //###########
  52.  
  53. echo '<tr>';
  54. echo '<td>'.$i++.'</td>';
  55. echo '<td>'.$a['nazwisko_zawodnika'].'</td>';
  56. echo '<td>'.$a['imie_zawodnika'].'</td>';
  57. //###########
  58. echo '<td><span style="color:'.$color.'">'.$a['wynik'].'</span></td>';
  59. //###########
  60. if($a['uwagi'] > 0)
  61. {
  62. echo '<td>'.$a['uwagi'].'</td>';
  63. }
  64. if($a['uwagi1'] > 0){
  65. echo '<td>'.$a['uwagi1'].'</td>';
  66. }
  67.  
  68.  
  69.  
  70. }
  71.  
  72.  
  73.  
  74. ?>
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 13:22