Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL] Jak obchodzić się z takmi danymi?, algorytm, pytanie koncepcyjne
pkr
post 29.06.2012, 08:43:06
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 13.02.2008

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


Witam,

mam dość trudne zadanie do rozwiązania, potrzebuję pomocy. Mam tabelkę z danymi o następujących kolumnach: id_field, id_column, id_row, value (coś jak układ kartezjański)

Muszę teraz te dane przedstawić w postaci podwójnej tablicy

  1. array {field1, field2, emptyfield, field3 },
  2. array {fieldnext, valueoffield, field, emptyfield}
  3. }


Istotne: jeśli jakieś pole nie istnieje (nie ma go w bazie) to aplikacja powinna stworzyć to pole w odpowiednim miejscu i wypełnić go tekstem "emptyfield"

Stworzyłem kod prawie idealny smile.gif wszystko działa dobrze, tylko właśnie nie obsługuje tych pustych pól. Każda wewnętrzna tabela musi mieć taką samą ilość pól. Nie mam specjalnie pomysłu na znajdowanie tych pól które nie istnieją. Czy ma ktoś jakiś pomysł na uzupełnienie tego kodu? Z góry dziękuję smile.gif

  1. //result to tablica stworzona z bazy danych (wszystkie pola po kolei)
  2. //rows to tabela wyjściowa
  3.  
  4. for($i=0; $i<count($result); $i++) {
  5.  
  6. if(!is_array($rows[$i2])) $rows[$i2]=array();
  7.  
  8. if($result[$i]['id_row']==$result[$i-1]['id_row'] OR $i==0) {
  9.  
  10. array_push($rows[$i2], $result[$i]['value']);
  11.  
  12. } else {
  13.  
  14. $i2++;
  15. $rows[$i2]=array();
  16.  
  17. array_push($rows[$i2], $result[$i]['value']);
  18. }
  19. }
  20.  


Z góry dziękuję, bardzo liczę na waszą pomoc smile.gif
Go to the top of the page
+Quote Post
gr56
post 29.06.2012, 15:26:45
Post #2





Grupa: Zarejestrowani
Postów: 77
Pomógł: 15
Dołączył: 19.11.2011

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


Nie dodawaj wpisów na koniec tablicy(array_push) tylko wstawiaj je na odpowiednie indexy. Tym sposobem powstanie tablica która będzie oddawała układ wartości w bazie.

  1. foreach($results as $r)
  2. {
  3. if(!isset($rows[$r['id-row']]))
  4. $rows[$r['id-row']] = array();
  5. $rows[$r['id-row']][$r['id-column']] = $r['value'];
  6. }


Ten post edytował gr56 29.06.2012, 15:39:27
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: 20.07.2025 - 10:47