Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z sortowaniem tabeli powstałej z wyniku pętli while.
bebzon_hc
post 5.04.2013, 08:40:46
Post #1





Grupa: Zarejestrowani
Postów: 36
Pomógł: 1
Dołączył: 10.02.2011
Skąd: Rawicz

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


Witam!
Mam mały problem.

Mam jedną pętlę while zagnieżdżoną w drugą pętlę.

Wyniki powstały chcę wrzucić do jednej tablicy i następnie chcę ją posortować według zawartości klucza 'id_orders_events'.
Poniżej kod:
  1. $newspapersByOffice = $dbh->selectNewspapersByOffice($office); // 1 ZAPYTANIE DO BAZY
  2.  
  3. while ($newspapersByOfficeArray = mysql_fetch_array($newspapersByOffice, MYSQL_BOTH))
  4. {
  5. $newspaper = $newspapersByOfficeArray['id_newspaper'];
  6. $orderEventSingle = $dbh->selectOrderEventSingle($newspaper); // 2 ZAPYTANIE DO BAZY
  7. while ($orderEventSingleArray = mysql_fetch_array($orderEventSingle, MYSQL_BOTH))
  8. {
  9. $orderEvents[] = array("date"=>$orderEventSingleArray['date'], "time"=>$orderEventSingleArray['time'], "name"=>$orderEventSingleArray['name'], "surname"=>$orderEventSingleArray['surname'], "firm_name"=>$orderEventSingleArray['firm_name'], "module_name"=>$orderEventSingleArray['module_name'], "id_orders_events"=>$orderEventSingleArray['id_orders_events'], "event_type"=>$orderEventSingleArray['event_type'], "newspaper_name"=>$orderEventSingleArray['newspaper_name']);
  10. }
  11. }
  12.  
  13. sort($orderEvents['id_orders_events'], SORT_NUMERIC);
  14.  
  15. foreach ($orderEvents as $orderEvent)
  16. { WYPLUWAM DANE }


Problem w tym, że wszystko dobrze działa z takim wyjątkiem, że kod sortuje bazę "$orderEvents" według pola "id_orders_events", ale według każdego etapu pierwszej pętli while.Wygląda to tak, że najpierw sorotuje wynik z pierwszej pętli while (1 tabela), później sortuje drugi wynik z pierwszej pętli while (2 tabele, 3, 4, n...) i wrzuca to do jeddej tabeli. ;/ zamiast sortować to jako jedną wielką tabelę to sortuje je jak dwie (3, 4, n...) osobne tabele.

Ten post edytował bebzon_hc 5.04.2013, 08:52:04
Go to the top of the page
+Quote Post
proton
post 5.04.2013, 15:00:26
Post #2





Grupa: Zarejestrowani
Postów: 88
Pomógł: 4
Dołączył: 16.08.2006

Ostrzeżenie: (20%)
X----


function.array-multisort.php

Przykład:

  1. $my_array = array();
  2. $keys = array();
  3.  
  4. $my_array[] = array('id' => 2, 'name' => 'Pies');
  5. $my_array[] = array('id' => 3, 'name' => 'Kot');
  6. $my_array[] = array('id' => 1, 'name' => 'Ryba');
  7. $my_array[] = array('id' => 5, 'name' => 'Sowa');
  8. $my_array[] = array('id' => 3, 'name' => 'Ptak');
  9.  
  10. foreach ($my_array as $array)
  11. {
  12. $keys[] = $array['id'];
  13. }
  14.  
  15. array_multisort($keys, SORT_ASC, $my_array);
  16.  
  17. echo '<pre>';
  18. print_r($my_array);
  19. echo '</pre>';


Albo w każdym przejściu tej drugiej pętli zrób tak:

  1. $orderEvents[$orderEventSingleArray['id_orders_events']] = array("date"=>$orderEventSingleArray['date'], "time"=>$orderEventSingleArray['time'], "name"=>$orderEventSingleArray['name'], "surname"=>$orderEventSingleArray['surname'], "firm_name"=>$orderEventSingleArray['firm_name'], "module_name"=>$orderEventSingleArray['module_name'], "id_orders_events"=>$orderEventSingleArray['id_orders_events'], "event_type"=>$orderEventSingleArray['event_type'], "newspaper_name"=>$orderEventSingleArray['newspaper_name']);


i sortuj tablicę $orderEvents według kluczy: function.ksort.php
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: 15.06.2025 - 23:52