Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Pomoc Sortowanie PHP -Dla was kałuża, dla mnie ocean nie do przebycia czyli PHP :)
Forum PHP.pl > Forum > Przedszkole
khkh
Witam, rejestracji na forum dokonałem dziś ponieważ uznałem że mój problem (dla was pewnie trywialny) dla mnie okazał się zbyt skomplikowany smile.gif wiem że wiele osób uzna iż idę na łatwiznę, szukając rozwiązania tutaj a nie próbując samemu się z tym uporać, pewnie te osoby mają sporo racji, jednak liczę że znajdę tu pomocną dłoń smile.gif

problem przedstawia się następująco, z pliku csv wczytujemy dane do tablicy która później jest wyświetlana w formie tabelki, na górze mamy klikalne nagłówki dla odpowiednich kolumny, po ich kliknięciu dane w tabeli powinny być sortowane... i tu właśnie pojawił się mój problem, wczytanie jest, tabelka także i klikalne nagłówki też ale sortowania dodać już się mi nie udało czy ktoś może spojrzeć na ten fragment kodu i poradzić mi co i jak? poradzić jak laikowi, lub jak kto woli, dać rybę a nie wędkę smile.gif (rozwiązanie)

  1. <?php
  2.  
  3. echo '<b>Nacisnij nagłówek by dokonać sortowania<b/> ';
  4.  
  5. $fh = fopen('exel.csv', 'r');
  6. if($fh !== false)
  7. { $tablica = array();
  8. while (!feof($fh)){
  9. if(!$line = fgetcsv($fh,8000,';'," "))
  10. continue;
  11. else $tablica[]=$line;
  12. }
  13. $nagl=$tablica[0];
  14. unset ($tablica[0]);
  15. }
  16.  
  17. $nagl=array('Imie','Wiek','Wzrost');
  18.  
  19. function order_2d ($a,$b)
  20. {
  21. if ($a[2]==$b[2])
  22. return 0;
  23. return ($a[2]<$b[2])?-1:1;
  24. }
  25. //usrot('$tablica', 'order_2d'); sortowanie
  26.  
  27. echo '<table>';
  28. echo '<tr>';
  29.  
  30. foreach ($nagl as $n)
  31. {
  32. echo '<th>';
  33. echo'<form action="" method="get">';
  34. echo' <input type="hidden" name="sort" value="2" >';
  35. echo' <input type="submit" value="'.$n.'">';
  36. echo' </form>';
  37. echo '</th>';
  38. }
  39. echo '</tr>';
  40.  
  41. foreach ($tablica as $wiersz)
  42. {
  43. echo '<tr>';
  44. foreach ($wiersz as $d)
  45. echo '<td>'.$d.'</td>';
  46. echo '</tr>';
  47. };
  48. echo '</table>';
  49.  
  50. ?>
Daimos
przesyłaj parametry i Twoją tablicę potraktuj jakąś funkcją do sortowania tablic na ich podstawie
sort
Po lewej masz menu ze spisem innych funkcji, aby sortować na różne sposoby
# uasort
# uksort
# usort
# rsort
# natcasesort
# natsort
# krsort
# ksort
# arsort
# asort
khkh
no ale gdzie i w jakiej formie wcisnąć to w kodzie by posortowało

np tak ?
  1. echo' <input type="submit" value="'.$n.'" onclick="usrot($tablica, order_2d);">';


bo gdy ta linia (usrot($tablica, order_2d)) występuje w kodzie przed wypisaniem danych do tej tabeli to wtedy są one posortowanie i możliwe że kliknięcie sortuje te dane ale nie ma wczytania ich na nowo posortowanych. Nie wiem jak bardziej wyoślić moją głupotę tongue.gif
Daimos
Po pierwsze, to php != javascript winksmiley.jpg nie możesz wstawiać funkcji php jak js, podstawy musisz poznać, a nie robić od razu jakieś skrypty

Musisz zrobić przeładowanie strony przy sortowaniu (chyba że chcesz wszystko załatwić js, wtedy musisz przekazać dane do tablicy js i ją sortować)
I przy takim przeładowaniu, sortujesz sobie tablicę zaraz po wygenerowaniu wedle podanego parametru
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.