Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] jakiego zapytania użyć?
Forum PHP.pl > Forum > Przedszkole
jar
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ę.
Black-Berry
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
Void
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 */
jar
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?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.