Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Select z kilku tabel
rkuch
post 12.04.2005, 17:47:22
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 12.04.2005

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


Witam.
Mam nastepujaca strukture (tabel) w bazie (przyklad):

osoba: id_osoby(klucz), imie, nazwisko --> dane osob
zawod: id_osoby, nazwa_zawodu.

Dziala to tak, ze na stronie WWW formularz wysyla za pomoca php info o osobie i sa checkboxy z zawodami, gdzie mozna wybrac kilka jednoczesnie i w tabeli zawod dodaja sie np. id=2: 2, kominiarz; 2, nauczyciel; 2, emeryt.

Do bazy wszystko ladnie sie zapisuje, ale jak wyciagnac z bazy te informacje, zeby spowrotem w formularzu sie pojawily (chodzi o te checkboxy).
Go to the top of the page
+Quote Post
nospor
post 13.04.2005, 08:36:28
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




przy zalozeniu że już masz skądś id osoby ($idOsoby):
  1. <?php
  2.  
  3. $sql='select nazwa_zawodu from zawod where id_osoby='.$idOsoby;
  4. /*...tutaj dajesz polaczenia do bazy, query itp. W wyniku tego masz miec tabelę z
  5. zawodami danej osoby ($osobaZawody)*/
  6. /*tutaj wydorębniasz wszystkie zawody- tabela $zawody*/
  7.  
  8. //i teraz checkbox
  9. foreach ($zawody as $zawod)
  10. {
  11. echo '<input type=\"checkbox\" name=\"jakiesname\" '.(in_array($zawod,$osobaZawody)?' checked':'').' >'.$zawod;
  12. }
  13.  
  14.  
  15. ?>


mam nadzieję że pomogłem biggrin.gif

Ten post edytował nospor 13.04.2005, 08:37:34


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
rkuch
post 13.04.2005, 09:23:21
Post #3





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 12.04.2005

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


Cytat(nospor @ 2005-04-13 07:36:28)
przy zalozeniu że już masz skądś id osoby ($idOsoby):
  1. <?php
  2.  
  3. $sql='select nazwa_zawodu from zawod where id_osoby='.$idOsoby;
  4. /*...tutaj dajesz polaczenia do bazy, query itp. W wyniku tego masz miec tabelę z
  5. zawodami danej osoby ($osobaZawody)*/
  6. /*tutaj wydorębniasz wszystkie zawody- tabela $zawody*/
  7.  
  8. //i teraz checkbox
  9. foreach ($zawody as $zawod)
  10. {
  11. echo '<input type=\"checkbox\" name=\"jakiesname\" '.(in_array($zawod,$osobaZawody)?' checked':'').' >'.$zawod;
  12. }
  13.  
  14.  
  15. ?>


mam nadzieję że pomogłem  biggrin.gif

Hm... no to juz cos, ale mialem nadzieje, ze to da sie zrobic w jednym zapztaniu,
tzn. za jednym zamachem i dane osoby, czyli imie i nazwisko i do tego odpowiednie checkboxy... Mam rozumiec, ze jedno zapytanie temu nie podola? Musze do kazdej grupy checkboxow robic oddzielne zapytanie?
To bedzie zapytanie do tabeli z uzytkownikami, kolejne do zawodow, inne do kolejnej grupy checkboxow... bo mam kilka grup checkboxow.
Go to the top of the page
+Quote Post
nospor
post 13.04.2005, 09:33:38
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Możesz pobrać zawód i dane osoby w jednym zapytaniu:
  1. SELECT osoba.imie, osoba.nazwisko, zawod.nazwa_zawodu
  2. FROM osoba,zawod WHERE zawod.id_osoby=osoba.id AND osoba.id=konkretneid


tylko przy takim zapytaniu będziesz mial powtarzanie się informacji, bo dla każdego zawodu osoby będą ciągle jej dane podczepiane. Twój wybór


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
rkuch
post 13.04.2005, 09:57:35
Post #5





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 12.04.2005

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


Cytat(nospor @ 2005-04-13 08:33:38)
Możesz pobrać zawód i dane osoby w jednym zapytaniu:
  1. SELECT osoba.imie, osoba.nazwisko, zawod.nazwa_zawodu
  2.  
  3. FROM osoba,zawod WHERE zawod.id_osoby=osoba.id AND osoba.id=konkretneid


tylko przy takim zapytaniu będziesz mial powtarzanie się informacji, bo dla każdego zawodu osoby będą ciągle jej dane podczepiane. Twój wybór

A co jest bardziej optymalne/wydajniejsze: jedno takie zapytanie z mnostwem wynikow, czy kilka zapytan questionmark.gif?

Ale i tak dziex, przynajmniej juz wiem, jak do formularza dane z bazy wrzucic :-)

Pozdrowka
Go to the top of the page
+Quote Post
nospor
post 13.04.2005, 10:04:17
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Szczerze nie wiem. Kwestie wydajności rozwiązuje tak:
robię jedno rozwiązanie, mierzę czas
robię drugie rozwiązanie, mierzę czas
oba czasy porównuję i już wiem co jest wydajniejsze
biggrin.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
ebe
post 13.04.2005, 16:31:14
Post #7





Grupa: Zarejestrowani
Postów: 150
Pomógł: 1
Dołączył: 23.01.2004

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


Po to są zapytania łaczącące (powinno być JOIN) by ich używać, takie kilkukrotne łaczneie z bazą celem wykonania prostego selecta jest i kiepską praktyką programistyczną i zbytnim obciążeniem serwera.


--------------------
Słyszałem, że macie tutaj jakieś takie php... fajne to, dobre to jest?
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: 19.07.2025 - 06:34