Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php]Proste Sortowanie
Krisso
post 25.12.2007, 13:00:46
Post #1





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 25.12.2007

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


Witam mam problem z poniższym kodem:

  1. <?php
  2. $plik = "baza.txt";
  3. $dane = file($plik); for($i=0;$i<count($dane);$i++) 
  4. { 
  5. list($autor[$i], $tytul[$i], $wyd[$i],$rw[$i],$isbn[$i],$gat1[$i],$gat2[$i],$opis[$i] ) = explode("`", $dane[$i]);
  6. } rsort($tytul); $i=0;
  7. while($i < count($tytul)) {
  8.  echo "Autor:  ".$autor[$i]."<br /> Tytuł:  ".$tytul[$i]."<br />Wydawnictwo:  ".$wyd[$i]. "<br /> Rok wydania:  " .$rw[$i]. "<br /> Numer ISBN:  " .$isbn[$i]. "<br />Gatunek:  ".$gat1[$i]. "<br /> Gatunek:  " .$gat2[$i]. "<br /> Opis:  ".$opis[$i]. "<hr />
  9. ";
  10.  $i++;
  11. }
  12. ?>


I z jakiegos powodu wynik nie jest taki jaki być powinien. Tzn. dane wejsciowe są następujące:

Cytat
Mickiewicz Adam`Dziady`PWN`1985`456123-987-987`powiesc`literacka`Nudna ksiazka ale co robic to lektura jest
Sienkiewicz Henryk`Potop`PWN`1992`1236-9875-4865`powiesc`historyczna`Fajna lekturka


A wyswietlając nie sortuje mi wszystkich inf o danym zbiorze tylko uklada tytuły książek, czego wynik jest następujący:

Cytat
Autor: Mickiewicz Adam
Tytuł: Potop
Wydawnictwo: PWN
Rok wydania: 1985
Numer ISBN: 456123-987-987
Gatunek: powiesc
Gatunek: literacka
Opis: Nudna ksiazka ale co robic to lektura jest Autor: Sienkiewicz Henryk
Tytuł: Dziady
Wydawnictwo: PWN
Rok wydania: 1992
Numer ISBN: 1236-9875-4865
Gatunek: powiesc
Gatunek: historyczna
Opis: Fajna lekturka


I co najważniejsze moje pytanie brzmi: Gdzie popełniłem błąd, że nie przenosi wszystkich inf tylko te co sortuje
Powód edycji: dodalem tag i bbcode (cysiaczek)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
BibDeep
post 25.12.2007, 14:34:06
Post #2





Grupa: Zarejestrowani
Postów: 13
Pomógł: 2
Dołączył: 4.01.2007
Skąd: Bydgoszcz

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


Witaj...

Błąd w twoim skrypcie polega na posortowaniu tylko tablicy tytułów, dlatego tylko to Ci prawidłowo wyświetla.
W moim rozwiązaniu skorzystałem z tego, że każdy element wpisu ma taki sam klucz w każdej z twoich tablic (autor, tytuł itp), więc najprościej wydawało mi się posegregować elementy przy zachowaniu klucza, a następnie wykorzystać te klucze przy wyświetlaniu reszty danych każdego rekordu smile.gif... dobra, dosyć gadania, pewnie i tak już za bardzo zakręciłem...

kod poniżej...

  1. <?php
  2.  
  3. $plik = "baza.txt";
  4. $dane = file($plik);
  5. for($i=0;$i<count($dane);$i++)
  6. {
  7. list($autor[$i], $tytul[$i], $wyd[$i],$rw[$i],$isbn[$i],$gat1[$i],$gat2[$i],$opis[$i] ) = explode("`", $dane[$i]);
  8. }
  9.  
  10. asort($tytul); //sortowanie z zachowaniem kluczy
  11.  
  12.  
  13. // Ponizej wykorzystanie klucza $key z posegregowanej w kolejnosci alfabetycznej e
    lementow tablicy $tytul
  14. // Tutaj zmienna $val jest niewykorzystana, ale zostawiam, zebys wiedzial jak mozn
    a jeszcze inaczej to wykorzystac
  15. // $val to oczywiscie element tablicy, ktory posiada klucz $key
  16.  
  17. while(list ($key, $val) = each ($tytul)) 
  18. {
  19. echo "Autor: ".$autor[$key]."<br /> Tytuł: ".$tytul[$key]."<br />Wydawnictwo: ".$wyd[$key]. "<br /> Rok wydania: " .$rw[$key]. "<br /> Numer ISBN: " .$isbn[$key]. "<br />Gatunek: ".$gat1[$key]. "<br /> Gatunek: " .$gat2[$key]. "<br /> Opis: ".$opis[$key]. "<hr />";
  20. }
  21.  
  22. ?>


Zrobiłem to tak na szybko, ale nie powinno być źle... a nawet jeśli to pewnie już będziesz wiedzieć gdzie szukać smile.gif

PS: używaj odpowiednich znaczników zamiast cytatu do wyświetlania kodu php smile.gif

Ten post edytował BibDeep 25.12.2007, 14:35:24


--------------------
Personal Portfolio: http://www.klodzinski.pl/
Go to the top of the page
+Quote Post
Krisso
post 26.12.2007, 14:58:05
Post #3





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 25.12.2007

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


Dzięki za pomoc.
Wcale za bardzo nie zakręciłeś, wszystko jest napisane zrozumiale.

Ps. Na przyszlość będę już używał odpowiednich znaczników.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 10:38