Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Pomoc Sortowanie PHP -Dla was kałuża, dla mnie ocean nie do przebycia czyli PHP :), Sortowanie według kolumn, wczytanie z pliku CSV, PHP pomoc
khkh
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 31.10.2010

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


Witam, rejestracji na forum dokonałem dziś ponieważ uznałem że mój problem (dla was pewnie trywialny) dla mnie okazał się zbyt skomplikowany (IMG:style_emoticons/default/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ń (IMG:style_emoticons/default/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ę (IMG:style_emoticons/default/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. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Daimos
post
Post #2





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

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


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

Ten post edytował my salsa 31.10.2010, 16:58:15
Go to the top of the page
+Quote Post
khkh
post
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 31.10.2010

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


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ę (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
Daimos
post
Post #4





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

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


Po pierwsze, to php != javascript (IMG:style_emoticons/default/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
Go to the top of the page
+Quote Post

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: 22.08.2025 - 12:20