Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [mysql] jakiego zapytania użyć?, pewnie banalne
jar
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 6.06.2007

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


Witam
Proszę o radę, mam w bazie tabelę zawierającą pola : id, województwo, miasto. W tabeli jest 16 województw, czyli 16 rekordów, w każdym województwie jest kilkanaście miast, czyli jeden rekord w tabeli wygląda np. tak:
id: 1
województwo: małopolskie
miasto: Kraków, Nowy Targ, Rabka, Zakopane,....... itd.
Jakiego użyć zapytania abym w wyniku otrzymał miasta z danego województwa?

Za ewentualną pomoc z góry dziękuję.
Go to the top of the page
+Quote Post
Black-Berry
post
Post #2





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

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


Nie wiem czy dobrze zrozumialem strukturę twojej tabeli ale czy chodzi Ci o coś takiego ?

  1. SELECT * FROM mytable WHERE miasto='krakow' AND wojewodztwo='malopolskie'


jak chcesz tylko jedno to sobie dodaj limit

  1. SELECT * FROM mytable WHERE miasto='krakow' AND wojewodztwo='malopolskie' LIMIT 1


Ten post edytował Black-Berry 6.06.2007, 21:18:16
Go to the top of the page
+Quote Post
Void
post
Post #3





Grupa: Zarejestrowani
Postów: 112
Pomógł: 15
Dołączył: 2.02.2007

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


Jeżeli po prostu chcesz wydobyć z bazy konkretny rekord, używasz zapytania:
  1. SELECT * FROM nazwa_tabeli WHERE id=1

To zapytanie pobierze z tabeli 'nazwa_tabeli' wartości wszystkich pól ('*' oznacza wszystkie pola) rekordu, którego pole id ma wartość 1. (w Twoim przypadku wójewództwa małopolskiego).

Zastanów się jednak nad samą konstrukcją bazy, bo z tego co widzę to nie jest ona zgodna z 1NF (pierwszą postacią normalną). 1NF mówi, że w każdej kolumnie można umieścić tylko jedną wartość (a ty umieszczasz klikanaście miast w jednym polu tabeli).
Znormalizowana baza powinna wyglądać tak:

Kod
tabela 'wojewodztwa'
- woj_id /* identyfikator danego województwa */
- nazwa /* nazwa województwa */

tabela 'miasta'
- miasto_id /* identyfikator miasta */
- woj_id /* identyfikator województwa, do którego należy to miasto */
- nazwa /* nazwa miasta */
Go to the top of the page
+Quote Post
jar
post
Post #4





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 6.06.2007

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


Dziękuję za Wasze odpowiedzi, faktycznie Void masz racje - nie przemyślałem tego. Zbuduję te tabele zgodnie z Twoją podpowiedzią. Jeśli dobrze zrozumiałem to w tabeli 'miasta' wartość w poszczególnych rekordach dla pola 'woj_id' będzie się powtarzać zgodnie z przynależnością poszczególnych miast do danego województwa.
Czyli jeśli małopolskie w tabeli województwa będzie miało woj_id = 1 to miasta które są położone na terenie tego województwa (np. Kraków, Nowy Targ, Rabka, Zakopane) w drugiej tabeli będą miały ten sam numer - identyfikator w tym przypadku 1.
Zatem abym później wyświetlił na stronie wszystkie miasta z danego województwa podam do bazy zapytanie z wartością konkretnego identyfikatora, czy tak?
Go to the top of the page
+Quote Post

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: 17.09.2025 - 18:14