![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 79 Pomógł: 1 Dołączył: 15.03.2004 Ostrzeżenie: (10%) ![]() ![]() |
... kolejny problem , mam tabelke ktora wyswietla sie z tego kodu:
[php:1:6dfd73c235]<?php ####################### config ##################################### /// 10 dat do tylu z wynikow wziette $tablica=file("wyniki.txt"); $wers= explode(';', $tablica[0]); $data1=$wers[0]; $wers= explode(';', $tablica[1]); $data2=$wers[0]; $wers= explode(';', $tablica[2]); $data3=$wers[0]; $wers= explode(';', $tablica[3]); $data4=$wers[0]; $wers= explode(';', $tablica[4]); $data5=$wers[0]; $wers= explode(';', $tablica[5]); $data6=$wers[0]; $wers= explode(';', $tablica[6]); $data7=$wers[0]; $wers= explode(';', $tablica[7]); $data8=$wers[0]; $wers= explode(';', $tablica[8]); $data9=$wers[0]; $wers= explode(';', $tablica[9]); $data10=$wers[0]; // ## nazwa pliku z wynikami ######################################## $plik_z_wynikami="wyniki.txt"; ########################################################## ## nazwa katalogu z userami ######################################## $katalog="users"; ########################################################## ## nazwa pliku z wynikami ######################################## $plik_z_typami='zzz/'.$data1.'.txt'; ########################################################## ####################### koniec config ################################# ########## FUNKCJE ################### function wyswietl_typ_usera ($user, $data) { $plik="users/$user/typy.txt"; $tablica=file($plik); for($i=0;$i<count($tablica);$i++){ $linia=explode('|**|', $tablica[$i]); if(trim($linia[0])=="$data") { $typ="$linia[1]"; } } //if ($typ=='') { $typ="-"; } else { "$typ<br>"; } echo $typ; $stan="niema"; $tablica2=file("wyniki.txt"); for($i=0;$i<count($tablica2);$i++){ $linia=explode(';', $tablica2[$i]); if(trim($linia[0])=="$data") { $liczby_przed="$linia[1]"; $stan="jest";} } $liczby_po=explode('-', $liczby_przed); $var1 = array_pop( $liczby_po ); $liczby_po[] = str_replace(array("rn", "n"), "", $var1) ; if ($typ=='') {echo "<img src='baza/img0.gif'>"; } else { if ($stan=="jest") { if (in_array ("$typ", $liczby_po)) { echo "<br><img src='baza/img2.gif'>"; $alpin="jest"; } else { echo "<br><img src='baza/img1.gif'>"; $alpin="niema"; } } } } function skutecznosc($user) { // data $tablica=file("wyniki.txt"); $wers= explode(';', $tablica[0]); $data1=$wers[0]; $wers= explode(';', $tablica[1]); $data2=$wers[0]; $wers= explode(';', $tablica[2]); $data3=$wers[0]; $wers= explode(';', $tablica[3]); $data4=$wers[0]; $wers= explode(';', $tablica[4]); $data5=$wers[0]; $wers= explode(';', $tablica[5]); $data6=$wers[0]; $wers= explode(';', $tablica[6]); $data7=$wers[0]; $wers= explode(';', $tablica[7]); $data8=$wers[0]; $wers= explode(';', $tablica[8]); $data9=$wers[0]; $wers= explode(';', $tablica[9]); $data10=$wers[0]; //data end $ile=0; $naile=0; for( $j = 0; $j <= 10; $j++) { $plik="users/$user/typy.txt"; $tablica=file($plik); for($i=0;$i<count($tablica);$i++){ $linia=explode('|**|', $tablica[$i]); if(trim($linia[0])==${"data".$j}) { $typ="$linia[1]"; } } $tablica2=file("wyniki.txt"); for($i=0;$i<count($tablica2);$i++){ $linia=explode(';', $tablica2[$i]); if(trim($linia[0])==${"data".$j}) { $liczby_przed="$linia[1]"; } } $liczby_po=explode('-', $liczby_przed); $var1 = array_pop( $liczby_po ); $liczby_po[] = str_replace(array("rn", "n"), "", $var1) ; if ($typ !='') { if (in_array ("$typ", $liczby_po)){$ile++;}else{$naile++;}} } ## $ile <= trafione, naile<= nie tradione, nie typowanie nie uwzglednione $wszystkie=$ile+$naile; $wynik=$ile/$wszystkie*100; echo "$ile/$wszystkie = "; printf('%.1f', $wynik); echo " %"; } function pokaz_punkty($user) { // data $tablica=file("wyniki.txt"); $wers= explode(';', $tablica[0]); $data10=$wers[0]; $wers= explode(';', $tablica[1]); $data9=$wers[0]; $wers= explode(';', $tablica[2]); $data8=$wers[0]; $wers= explode(';', $tablica[3]); $data7=$wers[0]; $wers= explode(';', $tablica[4]); $data6=$wers[0]; $wers= explode(';', $tablica[5]); $data5=$wers[0]; $wers= explode(';', $tablica[6]); $data4=$wers[0]; $wers= explode(';', $tablica[7]); $data3=$wers[0]; $wers= explode(';', $tablica[8]); $data2=$wers[0]; $wers= explode(';', $tablica[9]); $data1=$wers[0]; //data end $ile=0; $naile=0; for( $j = 0; $j <= 10; $j++) { $plik="users/$user/typy.txt"; $tablica=file($plik); for($i=0;$i<count($tablica);$i++){ $linia=explode('|**|', $tablica[$i]); if(trim($linia[0])==${"data".$j}) { $typ="$linia[1]"; } } $tablica2=file("wyniki.txt"); for($i=0;$i<count($tablica2);$i++){ $linia=explode(';', $tablica2[$i]); if(trim($linia[0])==${"data".$j}) { $liczby_przed="$linia[1]"; } } $liczby_po=explode('-', $liczby_przed); $var1 = array_pop( $liczby_po ); $liczby_po[] = str_replace(array("rn", "n"), "", $var1) ; if ($typ !='') { if (in_array ("$typ", $liczby_po)){ $ile++; $ile++; $ile++; }else{ if($ile!=0) {$ile--;}}} } ## $ile <= trafione, naile<= nie tradione, nie typowanie nie uwzglednione echo $ile; } ########### koniec funkcji ############# echo "<table> <tr bgcolor=#7777ee> <td align=center><b>Pozycja</b></td> <td align=center><b>Nick</b></td> <td align=center><b>Punkty</b></td> <td align=center><b>Skutecznosc</b></td> <td align=center><b>$data10</b></td> <td align=center><b>$data9</b></td> <td align=center><b>$data8</b></td> <td align=center><b>$data7</b></td> <td align=center><b>$data6</b></td> <td align=center><b>$data5</b></td> <td align=center><b>$data4</b></td> <td align=center><b>$data3</b></td> <td align=center><b>$data2</b></td> <td align=center><b>$data1</b></td> </tr>"; #pobieranie pliku w tablice $tablica=file($plik_z_typami); # wyswietlanie for ($i=0; $i<count($tablica); $i++) { $a=$i % 2; $k=$i+1; $wers=$tablica[$i]; $kawalki=explode('|**|', $wers); $user=$kawalki[0]; $typ=$kawalki[1]; if ($a==0) echo "<tr bgcolor=#bbeeaa align=center>"; else echo "<tr bgcolor="#aabb88" align="center">"; echo " <td align=center>$k</td> <td align=center>$user</td> <td align=center>"; pokaz_punkty($user); echo"</td> <td align=center>"; skutecznosc ($user); echo"</td> <td align=center>"; wyswietl_typ_usera ($user, "$data10"); echo"</td> <td align=center>"; wyswietl_typ_usera ($user, "$data9"); echo"</td> <td align=center>"; wyswietl_typ_usera ($user, "$data8"); echo"</td> <td align=center>"; wyswietl_typ_usera ($user, "$data7"); echo"</td> <td align=center>"; wyswietl_typ_usera ($user, "$data6"); echo"</td> <td align=center>"; wyswietl_typ_usera ($user, "$data5"); echo"</td> <td align=center>"; wyswietl_typ_usera ($user, "$data4"); echo"</td> <td align=center>"; wyswietl_typ_usera ($user, "$data3"); echo"</td> <td align=center>"; wyswietl_typ_usera ($user, "$data2"); echo"</td> <td align=center>"; wyswietl_typ_usera ($user, "$data1"); echo"</td> </tr>"; } echo "</table>"; ?>[/php:1:6dfd73c235] wynik mozna obejrzec tu: http://hajnowka.net/~alpin/bbb.php w czym problem ? otoz jest rubryka PUNKTY, i chcialbym posortowac wersy wzgledem tych punktow, od najwiekszej ilosci do najmniejszej , przed przerobioniem zrobilem to funkcja sortujaca tablice: array_multisort($tablica, SORT_DESC, SORT_NUMERIC); punkty mialem zapisane w pliku i jeszcze przed wyswietleniem sortowalem tablice, teraz nie wiem jak to ( czy wogole ta funkcje) zastosowac w tym przypadku, prosze o jakies podpowiedzi, dzieki z gory |
|
|
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Nie wgryzałem się w twój kod ale na pierwszy rzut oka problem sprowadza się do posortowania tablicy dwuwymiarowej.
A więc moja propozcja to skorzystać z funkcji mu_sort(), którą znajdziesz w manualu po opisem funkcji sort() w poście jednago z użytkowników. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 19:15 |