
Jestem początkujący jeżeli chodzi o PHP i MySQL. Napotkałem na problem który nie rozwiązało kilka godzin googlowania i przeglądania kursów. Mój problem polega na tym, że nie wiem jak zrobić formularz w którym będzie lista rozwijana do której dane będą pobierane z osobnej tabeli (tzw. słownikowej). Kiedy robiłem to w accessie to było proste, a tu nie potrafię.
Stworzyłem bazę danych z dwoma tabelami, w jednej są dwie kolumny (idCzlowiek i WojewodztwoCzlowiek) a w drugiej (słownikowej) też dwie (idWojewodztwo i nazwaWojewodztwo). stworzyłem między nimi relację jeden do wielu i teraz nie wiem co zrobić, aby wprowadzać dane do WojewodztwoCzlowiek za pomocą tabeli słownikowej.
Oto SQL:
Kod
-- phpMyAdmin SQL Dump
-- version 2.11.9.2
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Czas wygenerowania: 22 Gru 2008, 18:04
-- Wersja serwera: 5.0.67
-- Wersja PHP: 5.2.6
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
-- Baza danych: `przykladrelacji`
-- --------------------------------------------------------
-- Struktura tabeli dla `wojewodztwo`
CREATE TABLE IF NOT EXISTS `wojewodztwo` (
`idWojewodztwo` int(10) unsigned NOT NULL auto_increment,
`nazwaWojewodztwo` varchar(30) collate utf8_unicode_ci default NULL,
PRIMARY KEY (`idWojewodztwo`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=17;
--
-- Zrzut danych tabeli `wojewodztwo`
--
INSERT INTO `wojewodztwo` (`idWojewodztwo`, `nazwaWojewodztwo`) VALUES
(1, 'Dolnoslaskie'),
(2, 'Kujawsko-pomorskie'),
(3, 'Lubelskie'),
(4, 'Lubuskie'),
(5, 'Lodzkie'),
(6, 'Malopolskie'),
(7, 'Mazowieckie'),
(8, 'Opolskie'),
(9, 'Podkarpackie'),
(10, 'Podlaskie'),
(11, 'Pomorskie'),
(12, 'Slaskie'),
(13, 'Swietokrzyskie'),
(14, 'Warminsko-mazurskie'),
(15, 'Wielkopolskie'),
(16, 'Zachodniopomorskie');
-- version 2.11.9.2
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Czas wygenerowania: 22 Gru 2008, 18:04
-- Wersja serwera: 5.0.67
-- Wersja PHP: 5.2.6
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
-- Baza danych: `przykladrelacji`
-- --------------------------------------------------------
-- Struktura tabeli dla `wojewodztwo`
CREATE TABLE IF NOT EXISTS `wojewodztwo` (
`idWojewodztwo` int(10) unsigned NOT NULL auto_increment,
`nazwaWojewodztwo` varchar(30) collate utf8_unicode_ci default NULL,
PRIMARY KEY (`idWojewodztwo`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=17;
--
-- Zrzut danych tabeli `wojewodztwo`
--
INSERT INTO `wojewodztwo` (`idWojewodztwo`, `nazwaWojewodztwo`) VALUES
(1, 'Dolnoslaskie'),
(2, 'Kujawsko-pomorskie'),
(3, 'Lubelskie'),
(4, 'Lubuskie'),
(5, 'Lodzkie'),
(6, 'Malopolskie'),
(7, 'Mazowieckie'),
(8, 'Opolskie'),
(9, 'Podkarpackie'),
(10, 'Podlaskie'),
(11, 'Pomorskie'),
(12, 'Slaskie'),
(13, 'Swietokrzyskie'),
(14, 'Warminsko-mazurskie'),
(15, 'Wielkopolskie'),
(16, 'Zachodniopomorskie');
Na widoku projektu wygląda to tak:

Następnie napisałem skrypt wstawiający do tabeli "Człowiek" dane:
Kod
<?php
$Polaczenie = @mysql_connect('localhost', 'xxx', 'xxx')
or die('Brak połączenia z serwerem MySQL.
');
echo "Udało się połączyć z serwerem!
";
$PolaczenieBazy = @mysql_select_db('przykladrelacji', $Polaczenie)
or die('Nie mogę połączyć się z bazą danych
');
echo "Udało się połączyć z bazą dancych!";
$Zapytanie = "insert into czlowiek values ('".$idCzlowiek."', '".$WojewodztwoCzlowieka."')";
$rezultat = mysql_query($Zapytanie);
mysql_close($Polaczenie);
?>
$Polaczenie = @mysql_connect('localhost', 'xxx', 'xxx')
or die('Brak połączenia z serwerem MySQL.
');
echo "Udało się połączyć z serwerem!
";
$PolaczenieBazy = @mysql_select_db('przykladrelacji', $Polaczenie)
or die('Nie mogę połączyć się z bazą danych
');
echo "Udało się połączyć z bazą dancych!";
$Zapytanie = "insert into czlowiek values ('".$idCzlowiek."', '".$WojewodztwoCzlowieka."')";
$rezultat = mysql_query($Zapytanie);
mysql_close($Polaczenie);
?>
I formularze:
Kod
<form action="wprowadzaniedanych.php" method="post">
Numer człowieka: <input type=text name=idCzlowiek maxlength=3 size=4>
Wojewodztwo: <input type=text name=WojewodztwoCzlowieka maxlength=30 size=30>
<input type=submit value="Wstaw do bazy">
</form>
Numer człowieka: <input type=text name=idCzlowiek maxlength=3 size=4>
Wojewodztwo: <input type=text name=WojewodztwoCzlowieka maxlength=30 size=30>
<input type=submit value="Wstaw do bazy">
</form>
Skrypt działa tylko cokolwiek bym nie wprowadził w "Numer człowieka" to i tak działa autonumerowanie (I dobrze

Czy ktoś ma pojęcie jak przerobić mój skrypt tak, aby zamiast pola tekstowego w "wojewodztwo" była lista rozwijana województw?
Proszę o pomoc i z góry dziękuję.