Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][MySQL][PHP]tabela w php, jeden do wielu? jak?
sindbad_zeglarz
post
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 18.04.2012

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


Hejka
Mam w bazie 3 tabele.
1 tabela - posiadłosci
2 tabela - dane userow
3 tabela - zlaczone id z tabela1 z id_tabela2 (jeden do wielu).

Chcialbym wyswietlić raporcik taki, aby w wyniku był następujący efekt.

Id tabela1 | id tabela 2 | imie tab2 | nazwisko tab 2
1 1 G P
tutaj nie chcę powtarzać tego samego id drugi raz tylko dać inne dane dane z id_tabeli2 , imie i nazwisko.


Przykład: DOM może mieć kilku właścicieli.
Ale jest to jeden DOM = jeden ID a kilka ID wlascicieli.

W SQL-u jakoś nie widzę żeby się to dało zrobić łatwo, chyba że ktoś coś podpowie.
A PHP jak to wyświetlić ?

Podpowiedzcie coś proszę.

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
sindbad_zeglarz
post
Post #2





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 18.04.2012

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


hejka (IMG:style_emoticons/default/smile.gif) Nospor pomocy (IMG:style_emoticons/default/smile.gif)

zamieniłem domy z działkami (IMG:style_emoticons/default/smile.gif) ale zasada taka sama. jedna dzialka wiele wlascicieli.

tablica:

  1. $dzialki = array();
  2. while ($wiersz = mysql_fetch_array($zapytanie))
  3. {
  4. $id = $wiersz['dzid'];
  5. echo $id.'.';
  6. if( !isset($dzialki[$id]) )
  7. {
  8. $dzialki[$id] = array(
  9. 'nr_dzialki' => $wiersz['nr_dzialki'],
  10. 'powierzchnia' => $wiersz['powierzchnia'],
  11. 'pow_w_pasie' => $wiersz['pow_w_pasie'],
  12. 'wlasciciele' => array(), // deklaracja jak nie ma zadnego wlasciciela
  13. 'dokumenty' => array() );
  14. }
  15.  
  16. if( !empty($wiersz['nazwisko'] ) )
  17. $dzialki[$id]['wlasciciele'][] = array( 'nazwisko' => $wiersz['nazwisko'] );
  18.  
  19. if( !empty($wiersz['nr_dokumentu'] ) )
  20. $dzialki[$id]['dokumenty'][] = array( 'nr_dokumentu' => $wiersz['nr_dokumentu'] );
  21. }


wyświetlenie tego: tutaj pojawia sie problem.
wyświetla co prawda jeden nr działki ale:
jeśli jest kilka dokumentów i do wlasciciela do jednej działki to tyle raze je dubluje ile jest dokumentów.

jesli jedna dzialka ma jednego wlasciciela - wyswietla ladnie
jesli jedna dzialka ma kilku wlascicieli to wyswietla ok.

---do tego momentu jest ok, ale jesli :
jesli jedna dzialka ma 2 wlascicieli i po 2 dokumenty sa do do wlasciciela to wyswietla zle.

przyklad:

nr dzialki| wlasciciel | dokument
10/1 | heniek 1 | dok1,dok2,dok3
------| heniek 2 | dok1,dok2,dok3
------| heniek 3 | dok1,dok2,dok3

  1. echo '<table border="1" aling=center>
  2. <td>Nr Dzialki</td>
  3. <td>Nazwisko</td>
  4. <td>Nr Dok</td>
  5. </tr>';
  6. foreach ($dzialki as $id => $dzialka)
  7. {
  8. echo '<tr><td>'.$dzialka['nr_dzialki'].'</td>';
  9. echo '<td>';
  10. foreach ( $dzialka['wlasciciele'] as $wlasciciel )
  11. {
  12. echo '<br />';
  13. echo $wlasciciel['nazwisko'].',';
  14. }
  15. echo '</td>';
  16. echo '<td>';
  17. foreach ( $dzialka['dokumenty'] as $dokument )
  18. {
  19. echo '<br />';
  20. echo $dokument['nr_dokumentu'].',';
  21. }
  22. echo '</td></tr>';
  23.  
  24. }
  25. echo '</table>';



Go to the top of the page
+Quote Post

Posty w temacie


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: 4.10.2025 - 13:47