Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Macierz 10x10
damianooo
post
Post #1





Grupa: Zarejestrowani
Postów: 496
Pomógł: 2
Dołączył: 15.07.2011
Skąd: Katowice

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


Potrzebuję w swojej aplikacji stworzyć macierz 10x10 wypełnioną typami użytkowników w wybranej kolejce. Przy pozycjach bez typów wstawić znak "-" .

Mam następującą strukturę bazy danych:

tabela USER,
tabela TYPE, ; join z MEET i USER
tabela MEET, ; join z MATCHDAY
tabela MATCHDAY

Co po kolei robię:

1. Pobranie typów użytkowników (jest 10 użytkowników) z wybranej kolejki.
2. Pobranie listy 10 meczy w wybranej kolejki
3. Połączenie za pomocą pętli meczy z typami użytkowników

Zapytanie jakie mam:

  1. SELECT
  2. m.matchday_id,
  3. t.meet_id,
  4. t.host_type AS hostType,
  5. t.guest_type AS guestType,
  6. u.username AS username,
  7. u.shortname
  8. FROM user u
  9. LEFT JOIN type t ON t.user_id = u.id
  10. LEFT JOIN meet m ON t.meet_id = m.id AND m.matchday_id = 1
  11. WHERE u.STATUS = 1
  12. ORDER BY u.id


Złączenie listy meczy z listą typów:

  1. foreach($meets as $meet){
  2. foreach ($usersTypes as $types){
  3. if($types['matchday_id'] != NULL){
  4. if($meet['meet_id'] == $types['meet_id']) {
  5. $result[$types['meet_id']]['types'][] = $types['hostType'].' - '.$types['guestType'];
  6. }
  7. }else{
  8. $result[$meet['meet_id']]['types'][] = '-';
  9. }
  10. }
  11.  
  12. $result[$meet['meet_id']]['meet_id'] = $meet['meet_id'];
  13. $result[$meet['meet_id']]['host'] = $meet['host'];
  14. $result[$meet['meet_id']]['guest'] = $meet['guest'];
  15. $result[$meet['meet_id']]['host_shortname'] = $meet['host_shortname'];
  16. $result[$meet['meet_id']]['guest_shortname'] = $meet['guest_shortname'];
  17. }



Niestety powyższe w przypadku typu 7 użytkowników zwraca mi 73 rekordy (3 NULL = 3 userom którzy nie typowali) dla 1 kolejki
i również 73 typy (z matchday_id = NULL) dla kolejki 2 itd.








Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 22.08.2025 - 10:44